git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@598 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
6175d34a52
commit
b9c3ccdf88
@ -1,5 +1,6 @@
|
|||||||
Date Added
|
Date Added
|
||||||
12/17
|
12/17
|
||||||
|
* Added #storagelist, removed @charstoragelist [MC Cameri]
|
||||||
* db.c: Fixed probs with OnInit, OnTime, and etc NPC probs
|
* db.c: Fixed probs with OnInit, OnTime, and etc NPC probs
|
||||||
Just reverted it back. [Lupus]
|
Just reverted it back. [Lupus]
|
||||||
* Fixed warning message in db.c line 445 [MC Cameri]
|
* Fixed warning message in db.c line 445 [MC Cameri]
|
||||||
|
@ -260,9 +260,6 @@ save: 40
|
|||||||
// Do some visual effect on your character
|
// Do some visual effect on your character
|
||||||
effect: 40
|
effect: 40
|
||||||
|
|
||||||
// Display all items of a player's storage
|
|
||||||
charstoragelist: 40
|
|
||||||
|
|
||||||
// Display all items of a player's cart
|
// Display all items of a player's cart
|
||||||
charcartlist: 40
|
charcartlist: 40
|
||||||
|
|
||||||
|
@ -19,3 +19,4 @@ statsall: 40
|
|||||||
spiritball: 60
|
spiritball: 60
|
||||||
itemlist: 40
|
itemlist: 40
|
||||||
effect: 40
|
effect: 40
|
||||||
|
storagelist: 40
|
@ -176,7 +176,6 @@ ACMD_FUNC(chardisguise); // Kalaspuff
|
|||||||
ACMD_FUNC(charundisguise); // Kalaspuff
|
ACMD_FUNC(charundisguise); // Kalaspuff
|
||||||
ACMD_FUNC(email); // by Yor
|
ACMD_FUNC(email); // by Yor
|
||||||
ACMD_FUNC(effect);//by Apple
|
ACMD_FUNC(effect);//by Apple
|
||||||
ACMD_FUNC(character_storage_list); // by Yor
|
|
||||||
ACMD_FUNC(character_cart_list); // by Yor
|
ACMD_FUNC(character_cart_list); // by Yor
|
||||||
ACMD_FUNC(addwarp); // by MouseJstr
|
ACMD_FUNC(addwarp); // by MouseJstr
|
||||||
ACMD_FUNC(follow); // by MouseJstr
|
ACMD_FUNC(follow); // by MouseJstr
|
||||||
@ -422,7 +421,7 @@ static AtCommandInfo atcommand_info[] = {
|
|||||||
{ AtCommand_EMail, "@email", 0, atcommand_email }, // by Yor
|
{ AtCommand_EMail, "@email", 0, atcommand_email }, // by Yor
|
||||||
{ AtCommand_Effect, "@effect", 40, atcommand_effect }, // by Apple
|
{ AtCommand_Effect, "@effect", 40, atcommand_effect }, // by Apple
|
||||||
// { AtCommand_Char_Item_List, "@charitemlist", 40, atcommand_character_item_list }, // by Yor, now #itemlist
|
// { AtCommand_Char_Item_List, "@charitemlist", 40, atcommand_character_item_list }, // by Yor, now #itemlist
|
||||||
{ AtCommand_Char_Storage_List, "@charstoragelist", 40, atcommand_character_storage_list }, // by Yor
|
// { AtCommand_Char_Storage_List, "@charstoragelist", 40, atcommand_character_storage_list }, // by Yor, now #storagelist
|
||||||
{ AtCommand_Char_Cart_List, "@charcartlist", 40, atcommand_character_cart_list }, // by Yor
|
{ AtCommand_Char_Cart_List, "@charcartlist", 40, atcommand_character_cart_list }, // by Yor
|
||||||
{ AtCommand_Follow, "@follow", 10, atcommand_follow }, // by MouseJstr
|
{ AtCommand_Follow, "@follow", 10, atcommand_follow }, // by MouseJstr
|
||||||
{ AtCommand_AddWarp, "@addwarp", 20, atcommand_addwarp }, // by MouseJstr
|
{ AtCommand_AddWarp, "@addwarp", 20, atcommand_addwarp }, // by MouseJstr
|
||||||
@ -6734,91 +6733,6 @@ int atcommand_effect(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==========================================
|
|
||||||
* @charstoragelist <character>: Displays the items list of a player's storage.
|
|
||||||
*------------------------------------------
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
atcommand_character_storage_list(
|
|
||||||
const int fd, struct map_session_data* sd,
|
|
||||||
const char* command, const char* message)
|
|
||||||
{
|
|
||||||
struct storage *stor;
|
|
||||||
struct map_session_data *pl_sd;
|
|
||||||
struct item_data *item_data, *item_temp;
|
|
||||||
int i, j, count, counter, counter2;
|
|
||||||
char character[100], output[200], outputtmp[200];
|
|
||||||
nullpo_retr(-1, sd);
|
|
||||||
|
|
||||||
memset(character, '\0', sizeof(character));
|
|
||||||
memset(output, '\0', sizeof(output));
|
|
||||||
memset(outputtmp, '\0', sizeof(outputtmp));
|
|
||||||
|
|
||||||
if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) {
|
|
||||||
clif_displaymessage(fd, "Please, enter a player name (usage: @charitemlist <char name>).");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((pl_sd = map_nick2sd(character)) != NULL) {
|
|
||||||
if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can look items only lower or same level
|
|
||||||
if((stor = account2storage2(pl_sd->status.account_id)) != NULL) {
|
|
||||||
counter = 0;
|
|
||||||
count = 0;
|
|
||||||
for (i = 0; i < MAX_STORAGE; i++) {
|
|
||||||
if (stor->storage[i].nameid > 0 && (item_data = itemdb_search(stor->storage[i].nameid)) != NULL) {
|
|
||||||
counter = counter + stor->storage[i].amount;
|
|
||||||
count++;
|
|
||||||
if (count == 1) {
|
|
||||||
sprintf(output, "------ Storage items list of '%s' ------", pl_sd->status.name);
|
|
||||||
clif_displaymessage(fd, output);
|
|
||||||
}
|
|
||||||
if (stor->storage[i].refine)
|
|
||||||
sprintf(output, "%d %s %+d (%s %+d, id: %d)", stor->storage[i].amount, item_data->name, stor->storage[i].refine, item_data->jname, stor->storage[i].refine, stor->storage[i].nameid);
|
|
||||||
else
|
|
||||||
sprintf(output, "%d %s (%s, id: %d)", stor->storage[i].amount, item_data->name, item_data->jname, stor->storage[i].nameid);
|
|
||||||
clif_displaymessage(fd, output);
|
|
||||||
memset(output, '\0', sizeof(output));
|
|
||||||
counter2 = 0;
|
|
||||||
for (j = 0; j < item_data->slot; j++) {
|
|
||||||
if (stor->storage[i].card[j]) {
|
|
||||||
if ((item_temp = itemdb_search(stor->storage[i].card[j])) != NULL) {
|
|
||||||
if (output[0] == '\0')
|
|
||||||
sprintf(outputtmp, " -> (card(s): #%d %s (%s), ", ++counter2, item_temp->name, item_temp->jname);
|
|
||||||
else
|
|
||||||
sprintf(outputtmp, "#%d %s (%s), ", ++counter2, item_temp->name, item_temp->jname);
|
|
||||||
strcat(output, outputtmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (output[0] != '\0') {
|
|
||||||
output[strlen(output) - 2] = ')';
|
|
||||||
output[strlen(output) - 1] = '\0';
|
|
||||||
clif_displaymessage(fd, output);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (count == 0)
|
|
||||||
clif_displaymessage(fd, "No item found in the storage of this player.");
|
|
||||||
else {
|
|
||||||
sprintf(output, "%d item(s) found in %d kind(s) of items.", counter, count);
|
|
||||||
clif_displaymessage(fd, output);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
clif_displaymessage(fd, "This player has no storage.");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
clif_displaymessage(fd, msg_table[3]); // Character not found.
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* @charcartlist <character>: Displays the items list of a player's cart.
|
* @charcartlist <character>: Displays the items list of a player's cart.
|
||||||
*------------------------------------------
|
*------------------------------------------
|
||||||
|
@ -158,7 +158,7 @@ enum AtCommandType {
|
|||||||
AtCommand_Hatch,
|
AtCommand_Hatch,
|
||||||
AtCommand_Effect, // by Apple
|
AtCommand_Effect, // by Apple
|
||||||
// AtCommand_Char_Item_List, // by Yor, now #itemlist
|
// AtCommand_Char_Item_List, // by Yor, now #itemlist
|
||||||
AtCommand_Char_Storage_List, // by Yor
|
// AtCommand_Char_Storage_List, // by Yor, now #storagelist
|
||||||
AtCommand_Char_Cart_List, // by Yor
|
AtCommand_Char_Cart_List, // by Yor
|
||||||
AtCommand_AddWarp, // by MouseJstr
|
AtCommand_AddWarp, // by MouseJstr
|
||||||
AtCommand_Follow, // by MouseJstr
|
AtCommand_Follow, // by MouseJstr
|
||||||
|
@ -45,6 +45,7 @@ CCMD_FUNC(reset);
|
|||||||
CCMD_FUNC(spiritball);
|
CCMD_FUNC(spiritball);
|
||||||
CCMD_FUNC(itemlist);
|
CCMD_FUNC(itemlist);
|
||||||
CCMD_FUNC(effect);
|
CCMD_FUNC(effect);
|
||||||
|
CCMD_FUNC(storagelist);
|
||||||
|
|
||||||
#ifdef TXT_ONLY
|
#ifdef TXT_ONLY
|
||||||
/* TXT_ONLY */
|
/* TXT_ONLY */
|
||||||
@ -76,6 +77,7 @@ static CharCommandInfo charcommand_info[] = {
|
|||||||
{ CharCommandSpiritball, "#spiritball", 40, charcommand_spiritball },
|
{ CharCommandSpiritball, "#spiritball", 40, charcommand_spiritball },
|
||||||
{ CharCommandItemList, "#itemlist", 40, charcommand_itemlist },
|
{ CharCommandItemList, "#itemlist", 40, charcommand_itemlist },
|
||||||
{ CharCommandEffect, "#effect", 40, charcommand_effect },
|
{ CharCommandEffect, "#effect", 40, charcommand_effect },
|
||||||
|
{ CharCommandStorageList, "#storagelist", 40, charcommand_storagelist },
|
||||||
|
|
||||||
#ifdef TXT_ONLY
|
#ifdef TXT_ONLY
|
||||||
/* TXT_ONLY */
|
/* TXT_ONLY */
|
||||||
@ -895,3 +897,88 @@ charcommand_effect(const int fd, struct map_session_data* sd,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*==========================================
|
||||||
|
* #storagelist <character>: Displays the items list of a player's storage.
|
||||||
|
*------------------------------------------
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
charcommand_storage_list(
|
||||||
|
const int fd, struct map_session_data* sd,
|
||||||
|
const char* command, const char* message)
|
||||||
|
{
|
||||||
|
struct storage *stor;
|
||||||
|
struct map_session_data *pl_sd;
|
||||||
|
struct item_data *item_data, *item_temp;
|
||||||
|
int i, j, count, counter, counter2;
|
||||||
|
char character[100], output[200], outputtmp[200];
|
||||||
|
nullpo_retr(-1, sd);
|
||||||
|
|
||||||
|
memset(character, '\0', sizeof(character));
|
||||||
|
memset(output, '\0', sizeof(output));
|
||||||
|
memset(outputtmp, '\0', sizeof(outputtmp));
|
||||||
|
|
||||||
|
if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) {
|
||||||
|
clif_displaymessage(fd, "Please, enter a player name (usage: #itemlist <char name>).");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((pl_sd = map_nick2sd(character)) != NULL) {
|
||||||
|
if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can look items only lower or same level
|
||||||
|
if((stor = account2storage2(pl_sd->status.account_id)) != NULL) {
|
||||||
|
counter = 0;
|
||||||
|
count = 0;
|
||||||
|
for (i = 0; i < MAX_STORAGE; i++) {
|
||||||
|
if (stor->storage[i].nameid > 0 && (item_data = itemdb_search(stor->storage[i].nameid)) != NULL) {
|
||||||
|
counter = counter + stor->storage[i].amount;
|
||||||
|
count++;
|
||||||
|
if (count == 1) {
|
||||||
|
sprintf(output, "------ Storage items list of '%s' ------", pl_sd->status.name);
|
||||||
|
clif_displaymessage(fd, output);
|
||||||
|
}
|
||||||
|
if (stor->storage[i].refine)
|
||||||
|
sprintf(output, "%d %s %+d (%s %+d, id: %d)", stor->storage[i].amount, item_data->name, stor->storage[i].refine, item_data->jname, stor->storage[i].refine, stor->storage[i].nameid);
|
||||||
|
else
|
||||||
|
sprintf(output, "%d %s (%s, id: %d)", stor->storage[i].amount, item_data->name, item_data->jname, stor->storage[i].nameid);
|
||||||
|
clif_displaymessage(fd, output);
|
||||||
|
memset(output, '\0', sizeof(output));
|
||||||
|
counter2 = 0;
|
||||||
|
for (j = 0; j < item_data->slot; j++) {
|
||||||
|
if (stor->storage[i].card[j]) {
|
||||||
|
if ((item_temp = itemdb_search(stor->storage[i].card[j])) != NULL) {
|
||||||
|
if (output[0] == '\0')
|
||||||
|
sprintf(outputtmp, " -> (card(s): #%d %s (%s), ", ++counter2, item_temp->name, item_temp->jname);
|
||||||
|
else
|
||||||
|
sprintf(outputtmp, "#%d %s (%s), ", ++counter2, item_temp->name, item_temp->jname);
|
||||||
|
strcat(output, outputtmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (output[0] != '\0') {
|
||||||
|
output[strlen(output) - 2] = ')';
|
||||||
|
output[strlen(output) - 1] = '\0';
|
||||||
|
clif_displaymessage(fd, output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (count == 0)
|
||||||
|
clif_displaymessage(fd, "No item found in the storage of this player.");
|
||||||
|
else {
|
||||||
|
sprintf(output, "%d item(s) found in %d kind(s) of items.", counter, count);
|
||||||
|
clif_displaymessage(fd, output);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
clif_displaymessage(fd, "This player has no storage.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
clif_displaymessage(fd, msg_table[3]); // Character not found.
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@ -14,6 +14,7 @@ enum CharCommandType {
|
|||||||
CharCommandSpiritball,
|
CharCommandSpiritball,
|
||||||
CharCommandItemList,
|
CharCommandItemList,
|
||||||
CharCommandEffect,
|
CharCommandEffect,
|
||||||
|
CharCommandStorageList,
|
||||||
|
|
||||||
#ifdef TXT_ONLY
|
#ifdef TXT_ONLY
|
||||||
/* TXT_ONLY */
|
/* TXT_ONLY */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user