Jump to content
Sign in to follow this  
Z   e     l      l

[Fábrica] NPC's, Sistemas e Etc...

Recommended Posts

Regras

Faça um pedido por vez, não crie um Post aqui e um fora, se decida, se você quiser um Script muito Complexo recomendo utilizar a seção de fora, caso não, poste seguindo o modelo do que precisa e iremos preparar seu Script.

Este tópico é para pedidos rápidos para usuários que não tem conhecimento para fazer tal sistema.

Se você não seguir o modelo não iremos lhe ajudar, tente ser claro no que quer e SEMPRE ao menos agradeça quem entregar seu pedido, não precisa nem "curtir", ao menos digite um thanks e aperte "ok", isso não mata.

Evite pedir coisas impossíveis, aceite as limitações da engine.

Lembre-se que não somos obrigados a lhe entregar, quando alguém da Fábrica aceitar um pedido o mesmo irá lhe falar.

Para os mesmos que forem participar da Fábrica junto comigo seguir o mesmo esquema de aceitação de pedido e mesmo se não participar da fábrica e quiser ajudar, sinta-se livre.

Este tópico será limpo todo dia primeiro do mês.

NPC's entregues serão postados no Paste do Cronus.

---

Equipe da Fábrica de Scripts

Zell

---

Modelo de Pedido

Categoria: (NPC, Sistema ou Modificação em algum script)

Descrição: (Como funcionará, restrições, localizações...)

Tipo: (Preferência em SQL,TXT, Ambos)

Versão do Emulador: (Sua versão do emulador)

---

Pedidos Entregues

Nome: [Primeiros de muitos]

Descrição: Primeiros 100 a logarem terem nome em um NPC.

Pedido por: Ragnaproxy

Executado por: Zell

Funcionalidade: Funcional

Download: http://forum.cronus-emulator.com/pastebin/1ix5gcayifzsz/

Nome: [Lista de Quebradores]

Descrição: Mostra os últimos 20 jogadores que quebraram o emperium na última Guerra.

Pedido por: Envolvents

Executado por: Zell

Funcionalidade: Em teste

Download: http://forum.cronus-emulator.com/pastebin/1dloz1ucyun3i/dl/

Nome: [Trocar Itens por Cash]

Descrição: Permite configurar uma lista de itens e pontos de cash que poderão ser trocados.

Pedido por: Envolvents

Executado por: Zell

Funcionalidade: Em teste

Download: http://forum.cronus-...hhajwrm5ybf/dl/

Nome: [Bonus para os Primeiros]

Descrição: Permite configurar dentro do jogo opções para os primeiros registrados no Servidor.

Pedido por: Animus

Executado por: Zell

Funcionalidade: Em teste

Download: http://forum.cronus-emulator.com/pastebin/ulwz0hd7h0ko/

Nome: [Buffs]

Descrição: Dá buffs

Pedido por: Holigan

Executado por: Ragnaproxy

Funcionalidade: Funcional

Download: http://forum.cronus-emulator.com/pastebin/1vw8cwvzs5xgc/

Edited by Zell

Share this post


Link to post
Share on other sites

Bela iniciativa ! :p

Categoria:SistemaDescrição:Salva o nome dos jogadores que quebraram o emperium em uma tabela SQL.Tipo:SQLVersão do Emulador: Master

Caso tenha dúvidas só perguntar. :)

Obrigado.

  • Love 2

Share this post


Link to post
Share on other sites

Categoria:
Sistema

Descrição:
Salva o nome dos 100 primeiros jogadores em uma tabela sql e mostra em um npc.

Tipo:
SQL

Versão do Emulador:
Master

Share this post


Link to post
Share on other sites

@Envolvents

Não testei, fiz de cabeça, então bem provavel que haverá um erro.

http://forum.cronus-emulator.com/pastebin/1dloz1ucyun3i/dl/

Se tiver um erro me fale qual que eu arrumo

---------------------------------------------------------------------

Categoria:
Sistema

Descrição:
Salva o nome dos 100 primeiros jogadores em uma tabela sql e mostra em um npc.

Tipo:
SQL

Versão do Emulador:
Master

Eu não entendi muito bem, você quer que ele salve os 100 jogadores em uma outra tabela ou só mostre?

Se for só mostrar dá pra fazer com isso:

http://forum.cronus-emulator.com/pastebin/735hmd9wvxg8/dl/

Edited by Zell
  • Love 1

Share this post


Link to post
Share on other sites

Categoria: NPC
Descrição: NPC que dê itens/zeny/vip/wtvr (configurável) para as 10/20/30/50 (configurável) primeiras contas, premiação por conta, não por personagem.
Tipo: SQL
Versão do Emulador: Master

Edited by Animus
  • Love 1

Share this post


Link to post
Share on other sites

Categoria: NPC

Descrição: NPC que dê itens/zeny/vip/wtvr (configurável) para as 10/20/30/50 (configurável) primeiras contas, premiação por conta, não por personagem.

Tipo: SQL

Versão do Emulador: Master

fazendo

Share this post


Link to post
Share on other sites

Vlw Zellzinho :p

Nem testei ainda mais confio na sua capacidade, caso aja algo erro eu lhe reporto. ^^

Categoria:SistemaDescrição:Faz trocas de itens por uma quantidade em ROOPS (Cash)Cada item equivale a 3 ROOPS o NPC dará 2 ROOPS por cada troca.Tipo:SQLVersão do Emulador:Master
  • Love 2

Share this post


Link to post
Share on other sites

Categoria: NPC

Descrição: NPC que dê itens/zeny/vip/wtvr (configurável) para as 10/20/30/50 (configurável) primeiras contas, premiação por conta, não por personagem.

Tipo: SQL

Versão do Emulador: Master

não testei, deve ter alguns erros de ";" em algum lugar até por que esse sistema foi grandinho e só pelo bloco de notas fica díficil não errar nada.

Configurável dentro do jogo:

http://forum.cronus-emulator.com/pastebin/ulwz0hd7h0ko/

se der alguns erros bobos acredito que voce saiba arrumar, se conseguir depois passa o script com os erros corrigidos para eu postar no main topic, se não conseguir arrumar posta aqui que eu ajeito

Vlw Zellzinho :P

Nem testei ainda mais confio na sua capacidade, caso aja algo erro eu lhe reporto. ^^

Categoria:SistemaDescrição:Faz trocas de itens por uma quantidade em ROOPS (Cash)Cada item equivale a 3 ROOPS o NPC dará 2 ROOPS por cada troca.Tipo:SQLVersão do Emulador:Master

Não entendi muito bem, o item vale 3 rops mas o npc dá 2 rops por trocar?

Categoria:

Sistema

Descrição:

Cria visuais com os itens equipados do personagem! @costumeitem

Tipo:

SQL

Versão do Emulador:

Master

Essa parte seria mais source e já existe no rathena ou brathena, só procurar :)

não tem por que eu fazer algo que já existe rs

Edited by Zell
  • Love 2

Share this post


Link to post
Share on other sites

não testei, deve ter alguns erros de ";" em algum lugar até por que esse sistema foi grandinho e só pelo bloco de notas fica díficil não errar nada.

Configurável dentro do jogo:

http://forum.cronus-emulator.com/pastebin/ulwz0hd7h0ko/

se der alguns erros bobos acredito que voce saiba arrumar, se conseguir depois passa o script com os erros corrigidos para eu postar no main topic, se não conseguir arrumar posta aqui que eu ajeito

Não entendi muito bem, o item vale 3 rops mas o npc dá 2 rops por trocar?

Essa parte seria mais source e já existe no rathena ou brathena, só procurar :)

não tem por que eu fazer algo que já existe rs

Testando, já te dou o retorno.

  • Love 1

Share this post


Link to post
Share on other sites

Não entendi muito bem, o item vale 3 rops mas o npc dá 2 rops por trocar?

Exatamente, ele aceita apenas custons e donates.

  • Love 2

Share this post


Link to post
Share on other sites

não testei, deve ter alguns erros de ";" em algum lugar até por que esse sistema foi grandinho e só pelo bloco de notas fica díficil não errar nada.

Configurável dentro do jogo:

http://forum.cronus-emulator.com/pastebin/ulwz0hd7h0ko/

se der alguns erros bobos acredito que voce saiba arrumar, se conseguir depois passa o script com os erros corrigidos para eu postar no main topic, se não conseguir arrumar posta aqui que eu ajeito

Não entendi muito bem, o item vale 3 rops mas o npc dá 2 rops por trocar?

Essa parte seria mais source e já existe no rathena ou brathena, só procurar :)

não tem por que eu fazer algo que já existe rs

me expressei errado, malz seria um npc para essa troca,

como o menu da removedora de cartas, mas ao invés de tirar carta ela retira-se o seu item equipado e lhe transformaçe ele em visual

Edited by Duex

Share this post


Link to post
Share on other sites

Exatamente, ele aceita apenas custons e donates.

http://forum.cronus-emulator.com/pastebin/14hhajwrm5ybf/dl/

Obs: Não testei, estou scriptando de cabeça e no meu tempo livre no trabalho.

Configure as Duas primeiras array com a primeira a ID do Item e na Segunda quanto vale cada item, só me de o retorno se funcionou depois para eu montar minha DB de scripts

@Animus

No aguardo se funcionou.

@Duex

Então, isso envolve a Source, existe um sistema feito do Membro Rebel para isso:

Index: atcommand.c===================================================================--- atcommand.c    (revision 17306)+++ atcommand.c    (working copy)@@ -1117,7 +1117,7 @@ ACMD_FUNC(item) {     char item_name[100];-    int number = 0, item_id, flag = 0;+    int number = 0, item_id, flag = 0, costume = 0;     struct item item_tmp;     struct item_data *item_data;     int get_count, i;@@ -1142,7 +1142,27 @@         clif_displaymessage(fd, msg_txt(sd,19)); // Invalid item ID or name.         return -1;     }-+    +    if( !strcmpi(command+1,"costumeitem") )+    {+        if( !battle_config.reserved_costume_id )+        {+            clif_displaymessage(fd, "Costume convertion is disable. Set a value for reserved_cosutme_id on your battle.conf file.");+            return -1;+        }+        if( !(item_data->equip&EQP_HEAD_LOW) &&+            !(item_data->equip&EQP_HEAD_MID) &&+            !(item_data->equip&EQP_HEAD_TOP) &&+            !(item_data->equip&EQP_COSTUME_HEAD_LOW) &&+            !(item_data->equip&EQP_COSTUME_HEAD_MID) &&+            !(item_data->equip&EQP_COSTUME_HEAD_TOP) )+        {+            clif_displaymessage(fd, "You cannot costume this item. Costume only work for headgears.");+            return -1;+        }+        costume = 1;+    }+         item_id = item_data->nameid;     get_count = number;     //Check if it's stackable.@@ -1155,7 +1175,13 @@             memset(&item_tmp, 0, sizeof(item_tmp));             item_tmp.nameid = item_id;             item_tmp.identify = 1;-+            if( costume == 1 )+            { // Costume Item+                item_tmp.card[0] = CARD0_CREATE;+                item_tmp.card[2] = GetWord(battle_config.reserved_costume_id, 0);+                item_tmp.card[3] = GetWord(battle_config.reserved_costume_id, 1);+            }+                         if ((flag = pc_additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND)))                 clif_additem(sd, 0, 0, flag);         }@@ -9251,7 +9277,9 @@         ACMD_DEF(channel),         ACMD_DEF(fontcolor),         ACMD_DEF(langtype),-        ACMD_DEF(reloadmsgconf)+        ACMD_DEF(reloadmsgconf),+        ACMD_DEF2("costumeitem", item)+             };     AtCommandInfo* atcommand;     int i;Index: battle.c===================================================================--- battle.c    (revision 17306)+++ battle.c    (working copy)@@ -5939,6 +5939,7 @@     { "item_enabled_npc",                   &battle_config.item_enabled_npc,                1,      0,      1,              },     { "item_flooritem_check",               &battle_config.item_onfloor,                    1,      0,      1,              },     { "bowling_bash_area",                  &battle_config.bowling_bash_area,               0,      0,      20,             },+    { "reserved_costume_id",                &battle_config.reserved_costume_id,             999998, 0,      INT_MAX,        }, }; #ifndef STATS_OPT_OUT /**Index: battle.h===================================================================--- battle.h    (revision 17306)+++ battle.h    (working copy)@@ -488,6 +488,10 @@     int item_enabled_npc;     int item_onfloor; // Whether to drop an undroppable item on the map or destroy it if inventory is full.     int bowling_bash_area;+    +    // Costume System+    int reserved_costume_id;+         } battle_config;  void do_init_battle(void);Index: map.c===================================================================--- map.c    (revision 17306)+++ map.c    (working copy)@@ -1537,7 +1537,13 @@     struct map_session_data* tsd;      nullpo_retv(sd);-+    +    if( battle_config.reserved_costume_id && battle_config.reserved_costume_id == charid )+    {+        clif_solved_charname(sd->fd, charid, "Costume");+        return;+    }+         tsd = map_charid2sd(charid);     if( tsd )     {Index: pc.c===================================================================--- pc.c    (revision 17306)+++ pc.c    (working copy)@@ -66,8 +66,7 @@ struct fame_list chemist_fame_list[MAX_FAME_LIST]; struct fame_list taekwon_fame_list[MAX_FAME_LIST]; -static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT,EQP_AMMO};-+static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_AMMO,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT}; #define MOTD_LINE_SIZE 128 static char motd_text[MOTD_LINE_SIZE][CHAT_SIZE_MAX]; // Message of the day buffer [Valaris] @@ -586,7 +585,7 @@  int pc_equippoint(struct map_session_data *sd,int n) {-    int ep = 0;+    int ep = 0, char_id = 0;      nullpo_ret(sd); @@ -604,6 +603,15 @@             (sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO))//Kagerou and Oboro can dual wield daggers. [Rytech]             return EQP_ARMS;     }+    +    if( battle_config.reserved_costume_id &&+        sd->status.inventory[n].card[0] == CARD0_CREATE &&+        (char_id = MakeDWord(sd->status.inventory[n].card[2],sd->status.inventory[n].card[3])) == battle_config.reserved_costume_id )+    { // Costume Item - Converted+        if( ep&EQP_HEAD_TOP ) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; }+        if( ep&EQP_HEAD_LOW ) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; }+        if( ep&EQP_HEAD_MID ) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; }+    }     return ep; } @@ -1910,8 +1918,8 @@                 if( autobonus[i].bonus_script )                 {                     int j;-                    ARR_FIND( 0, EQI_MAX-1, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus[i].pos );-                    if( j < EQI_MAX-1 )+                    ARR_FIND( 0, EQI_MAX_BONUS, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus[i].pos );+                    if( j < EQI_MAX_BONUS )                         script_run_autobonus(autobonus[i].bonus_script,sd->bl.id,sd->equip_index[j]);                 }                 continue;@@ -1941,8 +1949,8 @@     if( autobonus->other_script )     {         int j;-        ARR_FIND( 0, EQI_MAX-1, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus->pos );-        if( j < EQI_MAX-1 )+        ARR_FIND( 0, EQI_MAX_BONUS, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus->pos );+        if( j < EQI_MAX_BONUS )             script_run_autobonus(autobonus->other_script,sd->bl.id,sd->equip_index[j]);     } Index: pc.h===================================================================--- pc.h    (revision 17306)+++ pc.h    (working copy)@@ -37,11 +37,12 @@     EQI_ARMOR,     EQI_HAND_L,     EQI_HAND_R,+    EQI_AMMO,+    EQI_MAX_BONUS = 10,     EQI_COSTUME_TOP,     EQI_COSTUME_MID,     EQI_COSTUME_LOW,     EQI_COSTUME_GARMENT,-    EQI_AMMO,     EQI_MAX }; Index: script.c===================================================================--- script.c    (revision 17306)+++ script.c    (working copy)@@ -17596,6 +17596,52 @@     return 0; } +/*==========================================+ * Costume Items+ *------------------------------------------*/+BUILDIN_FUNC(costume)+{+    int i = -1, num, ep;+    TBL_PC *sd;++    num = script_getnum(st,2); // Equip Slot+    sd = script_rid2sd(st);++    if( sd == NULL )+        return 0;+    if( num > 0 && num <= ARRAYLENGTH(equip) )+        i = pc_checkequip(sd, equip[num - 1]);+    if( i < 0 )+        return 0;++    ep = sd->status.inventory[i].equip;+    if( !(ep&EQP_HEAD_LOW) && !(ep&EQP_HEAD_MID) && !(ep&EQP_HEAD_TOP) )+        return 0;++    log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->status.inventory[i]);+    pc_unequipitem(sd,i,2);+    clif_delitem(sd,i,1,3);+    // --------------------------------------------------------------------+    sd->status.inventory[i].refine = 0;+    sd->status.inventory[i].attribute = 0;+    sd->status.inventory[i].card[0] = CARD0_CREATE;+    sd->status.inventory[i].card[1] = 0;+    sd->status.inventory[i].card[2] = GetWord(battle_config.reserved_costume_id, 0);+    sd->status.inventory[i].card[3] = GetWord(battle_config.reserved_costume_id, 1);++    if( ep&EQP_HEAD_TOP ) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; }+    if( ep&EQP_HEAD_LOW ) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; }+    if( ep&EQP_HEAD_MID ) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; }+    // --------------------------------------------------------------------+    log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->status.inventory[i]);++    clif_additem(sd,i,1,0);+    pc_equipitem(sd,i,ep);+    clif_misceffect(&sd->bl,3);++    return 0;+}+ // declarations that were supposed to be exported from npc_chat.c #ifdef PCRE_SUPPORT BUILDIN_FUNC(defpattern);@@ -18060,5 +18106,9 @@     BUILDIN_DEF(checkquest, "i?"),     BUILDIN_DEF(changequest, "ii"),     BUILDIN_DEF(showevent, "ii"),+    +    // Costume System+    BUILDIN_DEF(costume,"i"),+         {NULL,NULL,NULL}, };Index: status.c===================================================================--- status.c    (revision 17306)+++ status.c    (working copy)@@ -2455,7 +2455,7 @@     pc_delautobonus(sd,sd->autobonus3,ARRAYLENGTH(sd->autobonus3),true);      // Parse equipment.-    for(i=0;i<EQI_MAX-1;i++) {+    for(i=0;i<EQI_MAX_BONUS;i++) {         current_equip_item_index = index = sd->equip_index[i]; //We pass INDEX to current_equip_item_index - for EQUIP_SCRIPT (new cards solution) [Lupus]         if(index < 0)             continue;Index: battle.conf===================================================================--- battle.conf    (revision 17306)+++ battle.conf    (working copy)@@ -141,3 +141,9 @@ // range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed. // This setting also affects autospellwhenhit. autospell_check_range: no++// ****************************************+// Reserved Costume ID's+// ****************************************+// Reserved Char ID for costume converted items.+reserved_costume_id: 999998
// -------------------------------------------------------------------------------//     Script Name : Headgear to Costume converter >> Costume to Headgear converter// -------------------------------------------------------------------------------// Description :// - Allows a user to convert the equipped headgear (on Top, Mid or Low) into a//   costume item. It will remove any card and refine of the Item.// - Allows a user to restore the equipped costume headgear (on Top, Mid or Low)     into its original form. It will not return any card or refine of the item.// --------------------------------------------------------------------------------    script    Costume Clown    -1,{    mes "[Clown]";    mes "Here you can convert your headgears into a Costume Headgear or restore to its Original form.";    switch(select("I want to convert.:I want to restore.:No thanks.")) {    case 1:            next;            mes "Please, select what to convert.";            mes "Remember, cards and refine will be removed.";            next;                setarray .@Position$[1],"Top","Mid","Low";                setarray .@Position[1],     1,    9,   10;                set .@Menu$,"";            for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )            {                if( getequipisequiped(.@Position[.@i]) )                set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";                set .@Menu$, .@Menu$ + ":";            }            set .@Part, .@Position[ select(.@Menu$) ];            if( !getequipisequiped(.@Part) )            {                mes "[Clown]";                mes "Your not wearing anything there...";                close;            }            mes "[Clown]";            mes "You want to Costume your " + getitemname(getequipid(.@Part)) + "?";            next;            if( select("Yes, proceed:No, I am sorry.") == 2 )            {                mes "[Clown]";                mes "Need some time to think about it, huh?";                mes "Alright, I can understand.";                close;            }            costume .@Part; // Convert the Headgear            mes "[Clown]";            mes "Done, enjoy your costume headgear.";            close;    case 2:            next;            mes "Please, select what to restore.";            mes "Remember, I will only restore it back without refine and cards.";            next;                setarray .@Position$[1],"Top","Mid","Low";                setarray .@Position[1],     13,    12,   11;                set .@Menu$,"";            for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )            {                if( getequipisequiped(.@Position[.@i]) )                set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";                set .@Menu$, .@Menu$ + ":";            }            set .@Part, .@Position[ select(.@Menu$) ];            if( !getequipisequiped(.@Part) )            {                mes "[Clown]";                mes "Your not wearing anything there...";                close;            }            mes "[Clown]";            mes "You want to restore your " + getitemname(getequipid(.@Part)) + "?";            next;            if( select("Yes, proceed:No, I am sorry.") == 2 )            {                mes "[Clown]";                mes "Need some time to think about it, huh?";                mes "Alright, I can understand.";                close;            }            a = getequipid(.@Part);                        delitem a,1;            getitem a,1;                        mes "[Clown]";            mes "Done, enjoy your restored headgear.";            close;    case 3:        mes "[Clown]";        mes "Very well. Return at once if you seek my services.";        close;    }}// --------------------------------------------------------------------------// Use duplicates to put your npc on different cities// --------------------------------------------------------------------------prontera,155,181,4    duplicate(Costume Clown)    Costume Clown#1    715
Edited by Zell
  • Love 1

Share this post


Link to post
Share on other sites

Então, isso envolve a Source, existe um sistema feito do Membro Rebel para isso:

Index: atcommand.c===================================================================--- atcommand.c    (revision 17306)+++ atcommand.c    (working copy)@@ -1117,7 +1117,7 @@ ACMD_FUNC(item) {     char item_name[100];-    int number = 0, item_id, flag = 0;+    int number = 0, item_id, flag = 0, costume = 0;     struct item item_tmp;     struct item_data *item_data;     int get_count, i;@@ -1142,7 +1142,27 @@         clif_displaymessage(fd, msg_txt(sd,19)); // Invalid item ID or name.         return -1;     }-+    +    if( !strcmpi(command+1,"costumeitem") )+    {+        if( !battle_config.reserved_costume_id )+        {+            clif_displaymessage(fd, "Costume convertion is disable. Set a value for reserved_cosutme_id on your battle.conf file.");+            return -1;+        }+        if( !(item_data->equip&EQP_HEAD_LOW) &&+            !(item_data->equip&EQP_HEAD_MID) &&+            !(item_data->equip&EQP_HEAD_TOP) &&+            !(item_data->equip&EQP_COSTUME_HEAD_LOW) &&+            !(item_data->equip&EQP_COSTUME_HEAD_MID) &&+            !(item_data->equip&EQP_COSTUME_HEAD_TOP) )+        {+            clif_displaymessage(fd, "You cannot costume this item. Costume only work for headgears.");+            return -1;+        }+        costume = 1;+    }+         item_id = item_data->nameid;     get_count = number;     //Check if it's stackable.@@ -1155,7 +1175,13 @@             memset(&item_tmp, 0, sizeof(item_tmp));             item_tmp.nameid = item_id;             item_tmp.identify = 1;-+            if( costume == 1 )+            { // Costume Item+                item_tmp.card[0] = CARD0_CREATE;+                item_tmp.card[2] = GetWord(battle_config.reserved_costume_id, 0);+                item_tmp.card[3] = GetWord(battle_config.reserved_costume_id, 1);+            }+                         if ((flag = pc_additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND)))                 clif_additem(sd, 0, 0, flag);         }@@ -9251,7 +9277,9 @@         ACMD_DEF(channel),         ACMD_DEF(fontcolor),         ACMD_DEF(langtype),-        ACMD_DEF(reloadmsgconf)+        ACMD_DEF(reloadmsgconf),+        ACMD_DEF2("costumeitem", item)+             };     AtCommandInfo* atcommand;     int i;Index: battle.c===================================================================--- battle.c    (revision 17306)+++ battle.c    (working copy)@@ -5939,6 +5939,7 @@     { "item_enabled_npc",                   &battle_config.item_enabled_npc,                1,      0,      1,              },     { "item_flooritem_check",               &battle_config.item_onfloor,                    1,      0,      1,              },     { "bowling_bash_area",                  &battle_config.bowling_bash_area,               0,      0,      20,             },+    { "reserved_costume_id",                &battle_config.reserved_costume_id,             999998, 0,      INT_MAX,        }, }; #ifndef STATS_OPT_OUT /**Index: battle.h===================================================================--- battle.h    (revision 17306)+++ battle.h    (working copy)@@ -488,6 +488,10 @@     int item_enabled_npc;     int item_onfloor; // Whether to drop an undroppable item on the map or destroy it if inventory is full.     int bowling_bash_area;+    +    // Costume System+    int reserved_costume_id;+         } battle_config;  void do_init_battle(void);Index: map.c===================================================================--- map.c    (revision 17306)+++ map.c    (working copy)@@ -1537,7 +1537,13 @@     struct map_session_data* tsd;      nullpo_retv(sd);-+    +    if( battle_config.reserved_costume_id && battle_config.reserved_costume_id == charid )+    {+        clif_solved_charname(sd->fd, charid, "Costume");+        return;+    }+         tsd = map_charid2sd(charid);     if( tsd )     {Index: pc.c===================================================================--- pc.c    (revision 17306)+++ pc.c    (working copy)@@ -66,8 +66,7 @@ struct fame_list chemist_fame_list[MAX_FAME_LIST]; struct fame_list taekwon_fame_list[MAX_FAME_LIST]; -static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT,EQP_AMMO};-+static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_AMMO,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT}; #define MOTD_LINE_SIZE 128 static char motd_text[MOTD_LINE_SIZE][CHAT_SIZE_MAX]; // Message of the day buffer [Valaris] @@ -586,7 +585,7 @@  int pc_equippoint(struct map_session_data *sd,int n) {-    int ep = 0;+    int ep = 0, char_id = 0;      nullpo_ret(sd); @@ -604,6 +603,15 @@             (sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO))//Kagerou and Oboro can dual wield daggers. [Rytech]             return EQP_ARMS;     }+    +    if( battle_config.reserved_costume_id &&+        sd->status.inventory[n].card[0] == CARD0_CREATE &&+        (char_id = MakeDWord(sd->status.inventory[n].card[2],sd->status.inventory[n].card[3])) == battle_config.reserved_costume_id )+    { // Costume Item - Converted+        if( ep&EQP_HEAD_TOP ) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; }+        if( ep&EQP_HEAD_LOW ) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; }+        if( ep&EQP_HEAD_MID ) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; }+    }     return ep; } @@ -1910,8 +1918,8 @@                 if( autobonus[i].bonus_script )                 {                     int j;-                    ARR_FIND( 0, EQI_MAX-1, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus[i].pos );-                    if( j < EQI_MAX-1 )+                    ARR_FIND( 0, EQI_MAX_BONUS, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus[i].pos );+                    if( j < EQI_MAX_BONUS )                         script_run_autobonus(autobonus[i].bonus_script,sd->bl.id,sd->equip_index[j]);                 }                 continue;@@ -1941,8 +1949,8 @@     if( autobonus->other_script )     {         int j;-        ARR_FIND( 0, EQI_MAX-1, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus->pos );-        if( j < EQI_MAX-1 )+        ARR_FIND( 0, EQI_MAX_BONUS, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus->pos );+        if( j < EQI_MAX_BONUS )             script_run_autobonus(autobonus->other_script,sd->bl.id,sd->equip_index[j]);     } Index: pc.h===================================================================--- pc.h    (revision 17306)+++ pc.h    (working copy)@@ -37,11 +37,12 @@     EQI_ARMOR,     EQI_HAND_L,     EQI_HAND_R,+    EQI_AMMO,+    EQI_MAX_BONUS = 10,     EQI_COSTUME_TOP,     EQI_COSTUME_MID,     EQI_COSTUME_LOW,     EQI_COSTUME_GARMENT,-    EQI_AMMO,     EQI_MAX }; Index: script.c===================================================================--- script.c    (revision 17306)+++ script.c    (working copy)@@ -17596,6 +17596,52 @@     return 0; } +/*==========================================+ * Costume Items+ *------------------------------------------*/+BUILDIN_FUNC(costume)+{+    int i = -1, num, ep;+    TBL_PC *sd;++    num = script_getnum(st,2); // Equip Slot+    sd = script_rid2sd(st);++    if( sd == NULL )+        return 0;+    if( num > 0 && num <= ARRAYLENGTH(equip) )+        i = pc_checkequip(sd, equip[num - 1]);+    if( i < 0 )+        return 0;++    ep = sd->status.inventory[i].equip;+    if( !(ep&EQP_HEAD_LOW) && !(ep&EQP_HEAD_MID) && !(ep&EQP_HEAD_TOP) )+        return 0;++    log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->status.inventory[i]);+    pc_unequipitem(sd,i,2);+    clif_delitem(sd,i,1,3);+    // --------------------------------------------------------------------+    sd->status.inventory[i].refine = 0;+    sd->status.inventory[i].attribute = 0;+    sd->status.inventory[i].card[0] = CARD0_CREATE;+    sd->status.inventory[i].card[1] = 0;+    sd->status.inventory[i].card[2] = GetWord(battle_config.reserved_costume_id, 0);+    sd->status.inventory[i].card[3] = GetWord(battle_config.reserved_costume_id, 1);++    if( ep&EQP_HEAD_TOP ) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; }+    if( ep&EQP_HEAD_LOW ) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; }+    if( ep&EQP_HEAD_MID ) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; }+    // --------------------------------------------------------------------+    log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->status.inventory[i]);++    clif_additem(sd,i,1,0);+    pc_equipitem(sd,i,ep);+    clif_misceffect(&sd->bl,3);++    return 0;+}+ // declarations that were supposed to be exported from npc_chat.c #ifdef PCRE_SUPPORT BUILDIN_FUNC(defpattern);@@ -18060,5 +18106,9 @@     BUILDIN_DEF(checkquest, "i?"),     BUILDIN_DEF(changequest, "ii"),     BUILDIN_DEF(showevent, "ii"),+    +    // Costume System+    BUILDIN_DEF(costume,"i"),+         {NULL,NULL,NULL}, };Index: status.c===================================================================--- status.c    (revision 17306)+++ status.c    (working copy)@@ -2455,7 +2455,7 @@     pc_delautobonus(sd,sd->autobonus3,ARRAYLENGTH(sd->autobonus3),true);      // Parse equipment.-    for(i=0;i<EQI_MAX-1;i++) {+    for(i=0;i<EQI_MAX_BONUS;i++) {         current_equip_item_index = index = sd->equip_index[i]; //We pass INDEX to current_equip_item_index - for EQUIP_SCRIPT (new cards solution) [Lupus]         if(index < 0)             continue;Index: battle.conf===================================================================--- battle.conf    (revision 17306)+++ battle.conf    (working copy)@@ -141,3 +141,9 @@ // range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed. // This setting also affects autospellwhenhit. autospell_check_range: no++// ****************************************+// Reserved Costume ID's+// ****************************************+// Reserved Char ID for costume converted items.+reserved_costume_id: 999998
// -------------------------------------------------------------------------------//     Script Name : Headgear to Costume converter >> Costume to Headgear converter// -------------------------------------------------------------------------------// Description :// - Allows a user to convert the equipped headgear (on Top, Mid or Low) into a//   costume item. It will remove any card and refine of the Item.// - Allows a user to restore the equipped costume headgear (on Top, Mid or Low)     into its original form. It will not return any card or refine of the item.// --------------------------------------------------------------------------------    script    Costume Clown    -1,{    mes "[Clown]";    mes "Here you can convert your headgears into a Costume Headgear or restore to its Original form.";    switch(select("I want to convert.:I want to restore.:No thanks.")) {    case 1:            next;            mes "Please, select what to convert.";            mes "Remember, cards and refine will be removed.";            next;                setarray .@Position$[1],"Top","Mid","Low";                setarray .@Position[1],     1,    9,   10;                set .@Menu$,"";            for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )            {                if( getequipisequiped(.@Position[.@i]) )                set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";                set .@Menu$, .@Menu$ + ":";            }            set .@Part, .@Position[ select(.@Menu$) ];            if( !getequipisequiped(.@Part) )            {                mes "[Clown]";                mes "Your not wearing anything there...";                close;            }            mes "[Clown]";            mes "You want to Costume your " + getitemname(getequipid(.@Part)) + "?";            next;            if( select("Yes, proceed:No, I am sorry.") == 2 )            {                mes "[Clown]";                mes "Need some time to think about it, huh?";                mes "Alright, I can understand.";                close;            }            costume .@Part; // Convert the Headgear            mes "[Clown]";            mes "Done, enjoy your costume headgear.";            close;    case 2:            next;            mes "Please, select what to restore.";            mes "Remember, I will only restore it back without refine and cards.";            next;                setarray .@Position$[1],"Top","Mid","Low";                setarray .@Position[1],     13,    12,   11;                set .@Menu$,"";            for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )            {                if( getequipisequiped(.@Position[.@i]) )                set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";                set .@Menu$, .@Menu$ + ":";            }            set .@Part, .@Position[ select(.@Menu$) ];            if( !getequipisequiped(.@Part) )            {                mes "[Clown]";                mes "Your not wearing anything there...";                close;            }            mes "[Clown]";            mes "You want to restore your " + getitemname(getequipid(.@Part)) + "?";            next;            if( select("Yes, proceed:No, I am sorry.") == 2 )            {                mes "[Clown]";                mes "Need some time to think about it, huh?";                mes "Alright, I can understand.";                close;            }            a = getequipid(.@Part);                        delitem a,1;            getitem a,1;                        mes "[Clown]";            mes "Done, enjoy your restored headgear.";            close;    case 3:        mes "[Clown]";        mes "Very well. Return at once if you seek my services.";        close;    }}// --------------------------------------------------------------------------// Use duplicates to put your npc on different cities// --------------------------------------------------------------------------prontera,155,181,4    duplicate(Costume Clown)    Costume Clown#1    715

Valeu o codigo da source eu tinha so não manjo muito de script tentei achar o npc, mas não consegui, mas obrigado pela ajuda agradeçido!

Share this post


Link to post
Share on other sites

Então, aí tem o NPC também, só traduzir ele :)

Share this post


Link to post
Share on other sites

@Animus

No aguardo se funcionou.

Desculpe, acabei ficando preso com outras coisas, acabei de testar e ele acusou a falta de alguns ";", mas tudo bem, e até agora não consegui resolver esses dois:

[size=4][Error]:  Loading NPC file: npc/personalizado/animus/conf_vip.txt[/size]script error on npc/personalizado/animus/conf_vip.txt line 89    parse_simpleexpr: unexpected character    84 :        mes .@npc$;    85 :        l_addm:    86 :        mes "Gostaria de saber a lista de itens que esses jogadores irao ganhar ao logar.";    87 :        input @id;    88 :        next;*   89 :        setarray $id,'['getarraysize($id)+1],@id;    90 :        mes .@npc$;    91 :        for (set @z,0; @z <= getarraysize($id); set@z, @z+1) {    92 :     mes "Item: "+getitemname($id,[@z])+"";    93 :        }    94 :[Error]:script error on npc/personalizado/animus/conf_vip.txt line 202    parse_simpleexpr: unmatched ')'   197 :   198 : OnPcLoginEvent:   199 : if(#jabns==1){   200 : end;   201 : }*  202 : if(getcharid(3)>2000'$'confcmaster){   203 : set #jabns,1;   204 : end;   205 : }else{   206 : mes "[Seu Servidor]";   207 : mes "Uau, vocÛ foi um dos sortudos !";
  • Love 1

Share this post


Link to post
Share on other sites

Categoria: (NPC, Sistema ou Modificação em algum script)

Descrição: Npc que vende equipes, e esse equipe so poderá usar na woe

Tipo: Ambos

Versão do Emulador: Fusion

---

Share this post


Link to post
Share on other sites

Categoria:
Evento Hit - Utimo Kill Monster

Descrição:
Evento de hit e tipo assim quando tiver tudo mundo batendo nele e quei der o utimo hit nele ganha o evento

Tipo:
SQL

Versão do Emulador:
Eathena - eAmod

Edited by AdminMorpheus

Share this post


Link to post
Share on other sites

Categoria: NPC

Descrição: NPC que dê itens/zeny/vip/wtvr (configurável) para as 10/20/30/50 (configurável) primeiras contas, premiação por conta, não por personagem.

Tipo: SQL

Versão do Emulador: Master

Categoria: NPC/Evento

Descrição: Evento Invasão Zumbi, onde só Aprendizes lvl 1 poderiam entrar. O mapa (configurável) se encheria de Zombis e o último Aprendiz sobrevivente ganharia alguns itens também configuráveis no NPC. :)

Tipo o Novice vs Zombie, mas é uma invasão, só que com praticamente o mesmo esquema, npcs, teleportes etc. :)

- script RFYL#disable -1,{ OnInit:disablenpc "Zombie Master";disablenpc "Presente";} rachel,152,144,4 script Zombie Minion 1015,{ if (getgmlevel() >= 0) goto LMS_Admin;mes "[Minion]";mes "Olá " + strcharinfo(0) + ", Meu Chefe está ocupado.";mes "*sigh*";close; LMS_Admin:mes "[Minion]";mes "Olá " + strcharinfo(0) + ", Gostaria que eu chamase meu chefe?";mes "Ele é o unico que pode começar isso!";menu "Começar o Evento",RFYL,"Espectador",M_warp,"terminar o Evento",M_EndEvent,"Não Obrigado",leave;RFYL:next;mes "[Minion]";mes "Ok, eu irei chamar ele, aguarde um instante.";close2;set $@offvar,1;goto StartEvent; M_warp:mes "[Minion]";mes "muito bem, Eu irei te teleportar para o Mapa!";warp "quiz_01",42,369;close; leave:next;mes "[Minion]";mes "Ok " + strcharinfo(0) +", foi bom ter te conhecido.";close; M_EndEvent:mes "[Minion]";mes "Ok Chefinho, Eu irei parar o evento para o Senhor agora!";next;set $@offvar,1;disablenpc "Zombie Master";disablenpc "Presente";killmonsterall "quiz_01";areawarp "quiz_01",10,10,450,450,"rachel",120,135;stopnpctimer;disablenpc "Zombie Minion";warp "rachel",120,135;sleep 180000;enablenpc "Zombie Minion";  StartEvent:OnClock1430:OnClock1500:OnClock2200:disablenpc "Presente";announce "Zombie Vs. Novice, O evento ira iniciar em 3 minutos. Corra!",0;killmonsterall "quiz_01";sleep 55000;announce "Zombie Vs. Novice, O evento ira iniciar em 2 minutos. Corra!",0;sleep 5000;announce "Zombie Master: Opa!! CHEGUEI !!! estou em Prontera!",0;enablenpc "Zombie Master";sleep 60000;announce "Zombie Vs. Novice O evento irá ter inicio em 1 minuto!",0;sleep 30000;mapannounce "quiz_01","de 30 em 30 segundos o Zumbi irá aparecer!",0;sleep 25000;announce "Zombie Vs. Novice O evento irá ter inicio em ~5~",0;sleep 1000;announce "Zombie Vs. Novice O evento irá ter inicio em ~4~",0;sleep 1000;announce "Zombie Vs. Novice O evento irá ter inicio em ~3~",0;sleep 1000;announce "Zombie Vs. Novice O evento irá ter inicio em~2~",0;sleep 1000;announce "Zombie Vs. Novice O evento irá ter inicio em ~1~",0;sleep 1000;announce "Zombie Vs. Novice O evento Começou!!",0,0x00FF00;disablenpc "Zombie Master";sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie",1015,1;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-2",1015,1;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-3",1015,1;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 55000;if($evacabou==1){end;}mapannounce "quiz_01","Round 2!",0;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 55000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;mapannounce "quiz_01","Round 3!",0;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 55000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;mapannounce "quiz_01","Round 4!",0;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 55000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;mapannounce "quiz_01","Round 5!",0;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 55000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;mapannounce "quiz_01","Round 6!",0;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 55000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;mapannounce "quiz_01","Round 7! Final Round!",0;sleep 10000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 20000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 30000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;sleep 40000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1036,1;sleep 50000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1036,1;sleep 60000;if($evacabou==1){end;}monster "quiz_01",42,369,"Zombie-4",1015,1;initnpctimer;end; OnTimer0500:if ( getmapusers("quiz_01") == 0 ){killmonsterall "quiz_01";announce "'Zombie Vs. Novice' O evento foi interrompido. Foram Todos Mortos.. eu bem que avisei que não era fácil ...",0;stopnpctimer;end;}else if ( getmapusers("quiz_01") > 1 ){mapannounce "quiz_01",getmapusers("quiz_01") +"estão sobrevivendo no Evento.",0,0x00FF00;;initnpctimer;end;}initnpctimer;end; OnPCDieEvent:getmapxy .@mapnvz$,.@xnvz,.@ynvz,0;if ( .@mapnvz$ == "quiz_01") {sleep2 1;warp "rachel",120,135;atcommand "@alive "+ strcharinfo(0);dispbottom "Você perdeu...";}sleep2 0500;if ( .@mapnvz$ == "quiz_01" && getmapusers("quiz_01") == 1 ) {killmonsterall "quiz_01";set $evacabou,1;mapannounce "quiz_01","Você venceu, Temos um premio te esperando no NPC, por favor.",0;enablenpc "Presente";stopnpctimer;end;}end;} quiz_01,42,378,3 script Presente 72,{ mes "[Present]";mes "Por Favor me diga seu Nome.";next;input .@name$;if(.@name$ != strcharinfo(0)) {mes "[Presente]";mes "Você tem certeza que esse é seu nome?";close;}mes "[Present]";mes "Parabéns. Você é um vencedor.";close2;announce "Presente: nós temos um vencedor! "+.@name$+" venceu o evento Novice vs Zombie!",0;setarray $random[0],607,608,609,610,611,612,613;set @random, rand( 0,getarraysize( $random ) );getitem $random[@random],1;warp "rachel",120,135;disablenpc "Presente";set $evacabou,0;end;} prontera,142,174,4 script Zombie Master 1298,{if (BaseLevel > 1) goto NO;if (class == 0) goto event;if (class > 0) goto NO;event:mes "[^0000FFZombie Master^000000]";mes "Tem certeza que deseja participar do evento Zombie Vs. Novice?";next;switch(select("Yes","No")) {case 1:sc_end SC_ALL;sc_start SC_DECREASEAGI,1200000,10;percentheal 100,100;sc_start SC_STRIPSHIELD,1200000,5;sc_start SC_STRIPWEAPON,1200000,5;sc_start SC_STRIPARMOR,1200000,5;sc_start SC_STRIPHELM,1200000,5;statusup2 bStr,-999;statusup2 bAgi,-999;statusup2 bVit,-999;statusup2 bInt,-999;statusup2 bDex,-999;statusup2 bLuk,-999;warp "quiz_01",42,369;end;break;case 2:mes "[^0000FFZombie Master^000000]";mes "Volte quando estiver pronto.";close;break;NO:mes "[^0000FFZombie Master^000000]";mes "Você não é um noviço level 1.";close;}OnInit:disablenpc "Zombie Master";disablenpc "Presente";end;}  // ---- mapflag quiz_01quiz_01 mapflag nowarptoquiz_01 mapflag nowarpquiz_01 mapflag noteleportquiz_01 mapflag nomemoquiz_01 mapflag nosavequiz_01 mapflag noicewallquiz_01 mapflag nopenaltyquiz_01 mapflag nobranchquiz_01 mapflag noexpquiz_01 mapflag noreturnquiz_01 mapflag pvp_nopartyquiz_01 mapflag nocommand
  • Love 1

Share this post


Link to post
Share on other sites

Desculpe, acabei ficando preso com outras coisas, acabei de testar e ele acusou a falta de alguns ";", mas tudo bem, e até agora não consegui resolver esses dois:

[size=4][Error]:  Loading NPC file: npc/personalizado/animus/conf_vip.txt[/size]script error on npc/personalizado/animus/conf_vip.txt line 89    parse_simpleexpr: unexpected character    84 :        mes .@npc$;    85 :        l_addm:    86 :        mes "Gostaria de saber a lista de itens que esses jogadores irao ganhar ao logar.";    87 :        input @id;    88 :        next;*   89 :        setarray $id,'['getarraysize($id)+1],@id;    90 :        mes .@npc$;    91 :        for (set @z,0; @z <= getarraysize($id); set@z, @z+1) {    92 :     mes "Item: "+getitemname($id,[@z])+"";    93 :        }    94 :[Error]:script error on npc/personalizado/animus/conf_vip.txt line 202    parse_simpleexpr: unmatched ')'   197 :   198 : OnPcLoginEvent:   199 : if(#jabns==1){   200 : end;   201 : }*  202 : if(getcharid(3)>2000'$'confcmaster){   203 : set #jabns,1;   204 : end;   205 : }else{   206 : mes "[Seu Servidor]";   207 : mes "Uau, vocÛ foi um dos sortudos !";

lol, eu que coloquei esses conchetes no getarraysize? o.o

troca:

setarray $id,'['getarraysize($id)+1],@id;

por:

setarray $id,getarraysize($id),@id;

troca:

if(getcharid(3)>2000'$'confcmaster){

por:

if(getcharid(3)>"2000"+$confcmaster){

e diz se funcionou

Categoria: (NPC, Sistema ou Modificação em algum script)

Descrição: Npc que vende equipes, e esse equipe so poderá usar na woe

Tipo: Ambos

Versão do Emulador: Fusion

---

próximo da lista a ser feito

Share this post


Link to post
Share on other sites

lindão, esse aqui é bem easy.. :D

Categoria:SistemaDescrição:Mostra quantas vezes o player matou, morreu e quantos emperiuns ele quebrou.Você Matou: 100Você Morreu: 100Você quebrou: 1 EmperiumTipo:SQLVersão do Emulador:Master

Acho que é só isso. ^^

  • Love 1

Share this post


Link to post
Share on other sites
Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...