Entre para seguir isso  
Seguidores 0
Vor

@whobuy

1 post neste tópico

Descrição: Ao digitar @whobuy <Nome ou ID do item> , o jogador receberá uma lista de quem está comprando (NÃO LOJAS DE VENDAS, MAS SIM DE COMPRA)

Configuração:

Index: trunk/src/map/atcommand.c
===================================================================
--- trunk/src/map/atcommand.c	(revision 515)
+++ trunk/src/map/atcommand.c	(working copy)
@@ -9492,6 +9492,69 @@
 	return true;
 }
 
+/*==========================================
+* @whobuy - Lista quem está coprando um determinado item (Quantidade, Preço, e Localização).
+* remake por VoidLess, original por zephyrus_cr
+* re-editado por Vör para funcionar no brAthena
+*------------------------------------------*/
+ACMD_FUNC(whobuy)
+{
+    char item_name[100];
+    int item_id, j, count = 0, sat_num = 0;
+    bool flag = 0; // place dot on the minimap?
+    struct map_session_data* pl_sd;
+    struct s_mapiterator* iter;
+    unsigned int MinPrice = battle_config.vending_max_value, MaxPrice = 0;
+    struct item_data *item_data;
+
+    nullpo_retr(-1, sd);
+    memset(item_name, '\0', sizeof(item_name));
+
+    if (!message || !*message || sscanf(message, "%99[^\n]", item_name) < 1) {
+        clif->message(fd, "Entre o nome do item ou ID (use: @whobuy <nome ou ID>).");
+        return -1;
+    }
+    if ((item_data = itemdb->searchname(item_name)) == NULL &&
+        (item_data = itemdb->exists(atoi(item_name))) == NULL)
+    {
+        clif->message(fd, msg_fd(fd,19)); // Item ID ou Nome Inválido
+        return -1;
+    }
+
+    item_id = item_data->nameid;
+
+    iter = mapit_getallusers();
+    for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = BL_UCCAST(BL_PC, mapit->next(iter)) )
+    {
+        if( pl_sd->buyer_id ) // Checa se o jogador está autobuying
+        {
+			for (j = 0; j < pl_sd->buyingstore.slots; j++) {
+				if(pl_sd->buyingstore.items[j].nameid == item_id) {
+					snprintf(atcmd_output, CHAT_SIZE_MAX, "Preço %d | Quantidade %d | Comprador %s | Mapa %s[%d,%d]",pl_sd->buyingstore.items[j].price,pl_sd->buyingstore.items[j].amount,pl_sd->status.name,mapindex_id2name(pl_sd->mapindex),pl_sd->bl.x, pl_sd->bl.y);
+					if(pl_sd->buyingstore.items[j].price < MinPrice) MinPrice = pl_sd->buyingstore.items[j].price;
+					if(pl_sd->buyingstore.items[j].price > MaxPrice) MaxPrice = pl_sd->buyingstore.items[j].price;
+                    clif->message(fd, atcmd_output);
+                    count++;
+                    flag = 1;
+                }
+            }
+            if(flag && pl_sd->mapindex == sd->mapindex){
+                clif->viewpoint(sd, 1, 1, pl_sd->bl.x, pl_sd->bl.y, ++sat_num, 0xFFFFFF);
+                flag = 0;
+            }
+        }
+    }
+    mapit->free(iter);
+
+    if(count > 0) {
+        snprintf(atcmd_output,CHAT_SIZE_MAX, "Encontrado %d ea. Preços de %dz até %dz", count, MinPrice, MaxPrice);
+        clif->message(fd, atcmd_output);
+    } else
+        clif->message(fd, "Ninguém comprando por agora.");
+
+    return 0;
+}
+
 /**
  * Fills the reference of available commands in atcommand DBMap
  **/
@@ -9770,6 +9833,7 @@
 		// [CarlosHenrq] Sistema de ban por mac
 		ACMD_DEF(ban_mac),
 		ACMD_DEF(unban_mac),
+		ACMD_DEF(whobuy),
 	};
 	int i;
 


Créditos:

remake por VoidLess

original por zephyrus_cr

re-editado por Vör para funcionar no brAthena =)

 

whobuy.patch

Editado por Vor
2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Entre para seguir isso  
Seguidores 0