Jump to content

Scofield

Members
  • Posts

    265
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Scofield

  1. I wonder how I let the buttons of skills appearing on screen bottom as shown in this image.
  2. I would like a configurable npc who swapped badges bg by cash
  3. I have this wot that has the guild ranking that takes more chests ... I wanted to put another ranking of the players who caught ais chests // ===== SQL ================================ // CREATE TABLE `gdt` ( // `guild_id` int(11) unsigned NOT NULL auto_increment, // `tesouros` int(11) unsigned NOT NULL default '0', // `pontos` int(11) unsigned NOT NULL default '0', // PRIMARY KEY (`guild_id`) // ) TYPE=MyISAM // Warps arena_room,99,25,0 warp tesouro1 1,1,prt_are_in,98,23 prt_are_in,97,30,0 warp tesouro2 1,1,arena_room,99,28 prt_are_in,142,13,0 warp tesouro3 1,1,prt_are_in,177,79 prt_are_in,177,74,0 warp tesouro4 1,1,prt_are_in,138,13 prt_are_in,55,13,0 warp tesouro5 1,1,prt_are_in,125,78 prt_are_in,125,74,0 warp tesouro6 1,1,prt_are_in,60,13 arena_room,99,88,0 warp tesouro7 1,1,izlude,128,222 prt_are_in,74,127,0 warp tesouro8 1,1,prt_are_in,98,10 prt_are_in,97,7,0 warp tesouro9 1,1,prt_are_in,74,129 izlude,128,225,0 script iz431 45,1,1,{ if(getcharid(2) == 0){ mes "Desculpe, mas você precisa de um clã para poder entrar na guerra."; close; }else{ set @rand, rand(6); if(@rand == 0) warp "arena_room",120,87; if(@rand == 1) warp "arena_room",114,102; if(@rand == 2) warp "arena_room",87,102; if(@rand == 3) warp "arena_room",79,88; if(@rand == 4) warp "arena_room",113,74; if(@rand == 5) warp "arena_room",85,74; } end; } prt_are_in,0,0,0 script TesouroEvent::TesouroKill -1,{ OnKilled: Tesouro: set @check, query_sql("SELECT tesouros,pontos FROM gdt WHERE guild_id='"+getcharid(2)+"' LIMIT 1", @tesouros, @pontos); set @check_p, query_sql("SELECT charkill,pontokill FROM chargdt WHERE char_idd ='"+getcharid(0)+"' LIMIT 1", @charkill, @pontokill); if(@check == 1){ set @tesouros, @tesouros + 1; set @pontos, @pontos + 100; query_sql("UPDATE gdt SET tesouros = '"+@tesouros+"' WHERE guild_id='"+getcharid(2)+"'"); query_sql("UPDATE gdt SET pontos = '"+@pontos+"' WHERE guild_id='"+getcharid(2)+"'"); if(@check_p == 1){ set @charkill, @charkill + 1; set @pontokill, @pontokill + 10; query_sql "SELECT `char_name` FROM `chargdt` WHERE `char_idd`='"+getcharid(0)+"'",@namecheck$; if(@namecheck$=="0"){ query_sql("UPDATE chargdt SET char_name = '"+strcharinfo(0)+"' WHERE char_idd = '"+getcharid(0)+"'"); } query_sql("UPDATE chargdt SET charkill = '"+@charkill+"' WHERE char_idd = '"+getcharid(0)+"'"); query_sql("UPDATE chargdt SET pontokill = '"+@pontokill+"' WHERE char_idd = '"+getcharid(0)+"'"); } if(@check_p == 0){ query_sql("INSERT INTO chargdt (char_idd,charkill,char_name,pontokill) VALUES ('"+getcharid(0)+"','1','"+strcharinfo(0)+"','10')"); } }else{ query_sql("INSERT INTO gdt (guild_id,tesouros,pontos) VALUES ('"+getcharid(2)+"','1','100')"); if(@check_p == 1){ set @charkill, @charkill + 1; set @pontokill, @pontokill + 10; query_sql("UPDATE chargdt SET charkill = '"+@charkill+"' WHERE char_idd = '"+getcharid(0)+"'"); query_sql("UPDATE chargdt SET pontokill = '"+@pontokill+"' WHERE char_idd = '"+getcharid(0)+"'"); } if(@check_p == 0){ query_sql("INSERT INTO chargdt (char_idd,charkill,char_name,pontokill) VALUES ('"+getcharid(0)+"','1','"+strcharinfo(0)+"','10')"); } } announce "Guerra do Tesouro: " +strcharinfo(0)+ " do Clã ["+ getguildname(getcharid(2)) +"] conquistou um dos baús.",0; end; } prt_are_in,0,0,0 script TesouroEvent::TesouroEvent -1,{ end; OnHour01: OnHour03: OnHour05: OnHour07: OnHour09: OnHour11: OnHour13: OnHour15: OnHour17: OnHour19: OnHour21: OnHour23: announce "Guerra do Tesouro: Os tesouros vão surgir a qualquer momento!",0; end; OnClock0113: OnClock0313: OnClock0513: OnClock0713: OnClock0913: OnClock1113: OnClock1313: OnClock1513: OnClock1713: OnClock1913: OnClock2113: OnClock2313: announce "Guerra do Tesouro: Os tesouros surgirão em 2 minutos!",0; end; OnClock0115: OnClock0315: OnClock0515: OnClock0715: OnClock0915: OnClock1115: OnClock1315: OnClock1515: OnClock1715: OnClock1915: OnClock2115: OnClock2315: killmonsterall "prt_are_in"; set $@tesourocount, 1; announce "Guerra do Tesouro: Os tesouros acabaram de surgir!",0; set $@mob, 1324 + rand(13); monster "prt_are_in",178,88,"Baú do Tesouro",$@mob,1,"TesouroKill::OnKilled"; set $@mob, 1338 + rand(12); monster "prt_are_in",126,88,"Baú do Tesouro",$@mob,1,"TesouroKill::OnKilled"; set $@mob, 1352 + rand(11); monster "prt_are_in",74,141,"Baú do Tesouro",$@mob,1,"TesouroKill::OnKilled"; end; if(!GetCharID(2)) { mes "Desculpe, mas você precisa de um clã para poder entrar na guerra."; close; }else{ set @rand, rand(6); if(@rand == 0) warp "arena_room",120,87; if(@rand == 1) warp "arena_room",114,102; if(@rand == 2) warp "arena_room",87,102; if(@rand == 3) warp "arena_room",79,88; if(@rand == 4) warp "arena_room",113,74; if(@rand == 5) warp "arena_room",85,74; } end; } prt_are_in,0,0,0 script TesouroEvent::TesouroKill -1,{ OnKilled: Tesouro: set @check, query_sql("SELECT tesouros,pontos FROM gdt WHERE guild_id='"+getcharid(2)+"' LIMIT 1", @tesouros, @pontos); set @check_p, query_sql("SELECT charkill,pontokill FROM chargdt WHERE char_idd ='"+getcharid(0)+"' LIMIT 1", @charkill, @pontokill); if(@check == 1){ set @tesouros, @tesouros + 1; set @pontos, @pontos + 100; query_sql("UPDATE gdt SET tesouros = '"+@tesouros+"' WHERE guild_id='"+getcharid(2)+"'"); query_sql("UPDATE gdt SET pontos = '"+@pontos+"' WHERE guild_id='"+getcharid(2)+"'"); if(@check_p == 1){ set @charkill, @charkill + 1; set @pontokill, @pontokill + 10; query_sql("UPDATE chargdt SET charkill = '"+@charkill+"' WHERE char_idd = '"+getcharid(0)+"'"); query_sql("UPDATE chargdt SET pontokill = '"+@pontokill+"' WHERE char_idd = '"+getcharid(0)+"'"); } if(@check_p == 0){ query_sql("INSERT INTO chargdt (char_idd,charkill,char_name,pontokill) VALUES ('"+getcharid(0)+"','1','"+strcharinfo(0)+"','10')"); } }else{ query_sql("INSERT INTO gdt (guild_id,tesouros,pontos) VALUES ('"+getcharid(2)+"','1','100')"); if(@check_p == 1){ set @charkill, @charkill + 1; set @pontokill, @pontokill + 10; query_sql("UPDATE chargdt SET charkill = '"+@charkill+"' WHERE char_idd = '"+getcharid(0)+"'"); query_sql("UPDATE chargdt SET pontokill = '"+@pontokill+"' WHERE char_idd = '"+getcharid(0)+"'"); } if(@check_p == 0){ query_sql("INSERT INTO chargdt (char_idd,charkill,char_name,pontokill) VALUES ('"+getcharid(0)+"','1','"+strcharinfo(0)+"','10')"); } } announce "Guerra do Tesouro: " +strcharinfo(0)+ " do Clã ["+ getguildname(getcharid(2)) +"] conquistou um dos baús.",0; end; } prt_are_in,0,0,0 script TesouroEvent::TesouroEvent -1,{ end; OnClock1300: OnClock1500: OnClock1700: OnClock1900: OnClock2100: OnClock2300: OnClock0100: OnClock0300: OnClock0500: OnClock0700: OnClock0900: OnClock1100: announce "Guerra do Tesouro: Os tesouros surgirão a qualquer momento!",0; end; OnHour1313: OnHour1513: OnHour1713: OnHour1913: OnHour2113: OnHour2313: OnHour0113: OnHour0313: OnHour0513: OnHour0713: OnHour0913: OnHour1113: announce "Guerra do Tesouro: Os tesouros surgirão em 2 minutos!",0; end; OnHour1315: OnHour1515: OnHour1715: OnHour1915: OnHour2115: OnHour2315: OnHour0115: OnHour0315: OnHour0515: OnHour0715: OnHour0915: OnHour1115: killmonsterall "prt_are_in"; set $@tesourocount, 1; announce "Guerra do Tesouro: Os tesouros acabaram de surgir!",0; set $@mob, 1324 + rand(13); monster "prt_are_in",178,88,"Baú do Tesouro",$@mob,1,"TesouroKill::OnKilled"; set $@mob, 1338 + rand(12); monster "prt_are_in",126,88,"Baú do Tesouro",$@mob,1,"TesouroKill::OnKilled"; set $@mob, 1352 + rand(11); monster "prt_are_in",74,141,"Baú do Tesouro",$@mob,1,"TesouroKill::OnKilled"; end; }
  4. I want the chests appear only after 15 seconds after the last die monsters prontera,79,139,5 script Devil Square 968,{ mes "[^0000CDMensageiro Devil Square^000000]"; mes "Bem-vindo, sou o mensageiro encarregado da ^FF0000Devil Square^000000."; mes "Sou um mensageiro especial que vende convites da morte, com este convite você poderá adentrar a Devil Square."; mes "Gostaria de alguns dos meus ingressos? São totalmente grátis !"; next; menu "Aceitar o convite.",-,"Informações.",Info,"Recusar Oferta.",Cancel; if(Baselevel < 80) goto LReq; if(Zeny < 0) goto LReq; if($inf == 1) goto L_go; goto L_eror; LReq: mes "[^0000CDMensageiro Devil Square^000000]"; mes "É necessário estar no Level ^0000FF[80]^000000 para poder participar do evento."; close; L_go: if (getmapusers("force_3-3")==999) goto toomany; set Zeny,Zeny - 0; announce "Mensageiro: O jogador [ "+strcharinfo(0)+" ] aceitou o convite e adentrou a Devil Square.",8; percentheal 100,100; sc_start SC_INCREASEAGI,300000,10; sc_start SC_BLESSING,300000,10; warp "force_3-3",100,193; end; L_eror: mes "[^0000CDMensageiro Devil Square^000000]"; mes "Desculpe, os convites ainda não estão à venda."; mes "Caso deseje alguns de meus convites, estes serão os horários disponíveis:"; mes "Convite: ^0000CD08:00^000000"; mes "Convite: ^0000CD12:00^000000"; mes "Convite: ^0000CD16:00^000000"; mes "Convite: ^0000CD20:00^000000"; mes "Convite: ^0000CD00:00^000000"; close; Info: mes "[^0000CDMensageiro Devil Square^000000]"; mes "São 6 etapas no total."; mes "Cada etapa haverá monstros de raças ou elementos diferentes."; mes "1ª etapa: Inimigos Arqueiros"; mes "2ª etapa: Elemento - Gelo"; mes "3ª etapa: Elemento - Fogo"; mes "4ª etapa: Tartarugas"; mes "5ª etapa: Mortos-vivos"; mes "6ª etapa: Brutos [ 2 Chefes ]"; next; mes "[^0000CDMensageiro Devil Square^000000]"; mes "A partir da 3ª etapa, começarão a aparecer Chefes."; mes "Na última etapa, serão dois Chefes iguais."; mes "Será permitido sair da Devil Square após morrer ou passar por todas as etapas."; mes "No fim do evento, aparecerão 10 baús para os vencedores com coisas valiosas dentro !"; next; mes "[^0000CDMensageiro Devil Square^000000]"; mes "Os horários da Devil Square são:"; mes "^0000CD08:00^000000"; mes "^0000CD12:00^000000"; mes "^0000CD16:00^000000"; mes "^0000CD20:00^000000"; mes "^0000CD00:00^000000"; close; end; toomany: mes "[^0000CDMensageiro Devil Square^000000]"; mes "Desculpe, mas todos os ingressos já foram vendidos."; mes "Eu vendo até 999 ingressos por evento."; set $inf,0; close; end; Cancel: mes "[^0000CDMensageiro Devil Square^000000]"; mes "Até logo."; close; end; } ////End Of Devil Square Entrance force_3-3,90,29,5 script Cek -1,{ OnTimer30000: if($status == 1) end; if (getmapusers("force_3-3") == 0) Announce "[Devil Square] Todos os jogadores foram mortos na Devil Square.",8; if (getmapusers("force_3-3") == 0) set $status,1; if (getmapusers("force_3-3") == 0) killmonsterall "force_3-3"; if (getmapusers("force_3-3") == 0) end; Announce getmapusers("force_3-3") + " player(s) estão sobrevivendo no Devil Square",8; initnpctimer; end; } force_3-3,109,29,5 script HiddenNpc -1,{ OnClock0800: killmonsterall "force_3-3"; Announce "[Devil Square] A entrada para o evento está aberta, em 5 minutos o evento terá início.",8; atcommand "@skillon"; disablenpc "Saída"; disablenpc "DevilSquare2"; disablenpc "DevilSquare1"; disablenpc "DevilSquare23"; disablenpc "DevilSquare32"; disablenpc "DevilSquare34"; disablenpc "DevilSquare43"; disablenpc "DevilSquare45"; disablenpc "DevilSquare54"; disablenpc "DevilSquare56"; disablenpc "DevilSquare65"; initnpctimer; set $inf,1; set $status,0; end; OnClock1200: killmonsterall "force_3-3"; Announce "[Devil Square] A entrada para o evento está aberta, em 5 minutos o evento terá início.",8; atcommand "@skillon"; disablenpc "Saída"; disablenpc "DevilSquare2"; disablenpc "DevilSquare1"; disablenpc "DevilSquare23"; disablenpc "DevilSquare32"; disablenpc "DevilSquare34"; disablenpc "DevilSquare43"; disablenpc "DevilSquare45"; disablenpc "DevilSquare54"; disablenpc "DevilSquare56"; disablenpc "DevilSquare65"; initnpctimer; set $inf,1; set $status,0; end; OnClock1600: killmonsterall "force_3-3"; Announce "[Devil Square] A entrada para o evento está aberta, em 5 minutos o evento terá início.",8; atcommand "@skillon"; disablenpc "Saída"; disablenpc "DevilSquare2"; disablenpc "DevilSquare1"; disablenpc "DevilSquare23"; disablenpc "DevilSquare32"; disablenpc "DevilSquare34"; disablenpc "DevilSquare43"; disablenpc "DevilSquare45"; disablenpc "DevilSquare54"; disablenpc "DevilSquare56"; disablenpc "DevilSquare65"; initnpctimer; set $inf,1; set $status,0; end; OnClock2000: killmonsterall "force_3-3"; Announce "[Devil Square] A entrada para o evento está aberta, em 5 minutos o evento terá início.",8; atcommand "@skillon"; disablenpc "Saída"; disablenpc "DevilSquare2"; disablenpc "DevilSquare1"; disablenpc "DevilSquare23"; disablenpc "DevilSquare32"; disablenpc "DevilSquare34"; disablenpc "DevilSquare43"; disablenpc "DevilSquare45"; disablenpc "DevilSquare54"; disablenpc "DevilSquare56"; disablenpc "DevilSquare65"; initnpctimer; set $inf,1; set $status,0; end; OnClock0000: killmonsterall "force_3-3"; Announce "[Devil Square] A entrada para o evento está aberta, em 5 minutos o evento terá início.",8; atcommand "@skillon"; disablenpc "Saída"; disablenpc "DevilSquare2"; disablenpc "DevilSquare1"; disablenpc "DevilSquare23"; disablenpc "DevilSquare32"; disablenpc "DevilSquare34"; disablenpc "DevilSquare43"; disablenpc "DevilSquare45"; disablenpc "DevilSquare54"; disablenpc "DevilSquare56"; disablenpc "DevilSquare65"; initnpctimer; set $inf,1; set $status,0; end; OnTimer60000: Announce "[Devil Square] Restam 4 minutos para o início do evento.",8; end; OnTimer120000: Announce "[Devil Square] Restam 3 minutos para o início do evento.",8; end; OnTimer180000: Announce "[Devil Square] Restam 2 minutos para o início do evento.",8; end; OnTimer240000: Announce "[Devil Square] Resta apenas 1 minuto para o início do evento.",8; end; OnTimer300000: Announce "[Devil Square ] Inscrições encerradas. A 1ª etapa começou ! [Inimigos: Arqueiros]",8; initnpctimer "Cek"; if (getmapusers("force_3-3") == 0) Announce "[Devil Square] Devido à falta de jogadores, o Devil Square foi cancelado.",8; set $inf,0; set $mob,50; areamonster "force_3-3",127,180,72,180,"[DS] Cobold Arqueiro",1282,10,"HiddenNpc::Ondevildead"; areamonster "force_3-3",127,180,72,180,"[DS] Esqueleto Arqueiro",1016,8,"HiddenNpc::Ondevildead"; areamonster "force_3-3",127,180,72,180,"[DS] Goblin Arqueiro",1258,7,"HiddenNpc::Ondevildead"; areamonster "force_3-3",127,180,72,180,"[DS] Orc Arqueiro",1189,5,"HiddenNpc::Ondevildead"; areamonster "force_3-3",127,180,72,180,"[DS] Raydric Arqueiro",1276,10,"HiddenNpc::Ondevildead"; areamonster "force_3-3",127,180,72,180,"[DS] Soldado Atirador",1403,5,"HiddenNpc::Ondevildead"; areamonster "force_3-3",127,180,72,180,"[DS] Pessegueira Encantada",1410,5,"HiddenNpc::Ondevildead"; end; Ondevildead: if ($status == 1) end; set $mob,$mob-1; if ($mob == 25) Announce "[Devil Square] 25 monstros para começar a 2ª etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a 2ª etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a 2ª etapa ! [Elemento: Gelo]",8; if($mob == 0) enablenpc "DevilSquare2"; if($mob == 0) goto Ondevil2; end; Ondevil2: enablenpc "DevilSquare1"; set $mob,30; areamonster "force_3-3",109,137,90,138,"[DS] Siroma",1776,10,"HiddenNpc::Ondevildead2"; areamonster "force_3-3",109,137,90,138,"[DS] Gazeti",1778,6,"HiddenNpc::Ondevildead2"; areamonster "force_3-3",109,137,90,138,"[DS] Yeti",1775,6,"HiddenNpc::Ondevildead2"; areamonster "force_3-3",109,137,90,138,"[DS] Titã de Gelo",1777,3,"HiddenNpc::Ondevildead2"; areamonster "force_3-3",109,137,90,138,"[DS] Estalactite",1789,5,"HiddenNpc::Ondevildead2"; end; Ondevildead2: if ($status == 1) end; set $mob,$mob-1; if($mob == 25) Announce "[Devil Square] 25 monstros para começar a 3ª etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a 3ª etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a 3ª etapa ! [ Elemento: Fogo - MVP: Detardeurus ]",8; if($mob == 0) enablenpc "DevilSquare23"; if($mob == 0) goto Ondevil3; end; Ondevil3: enablenpc "DevilSquare32"; set $mob,20; areamonster "force_3-3",91,100,67,100,"[DS] Magmaring",1836,10,"HiddenNpc::Ondevildead3"; areamonster "force_3-3",91,100,67,100,"[DS] Imp",1837,3,"HiddenNpc::Ondevildead3"; areamonster "force_3-3",91,100,67,100,"[DS] Kasa",1833,2,"HiddenNpc::Ondevildead3"; areamonster "force_3-3",91,100,67,100,"[DS - MVP] Ifrit",1832,3,"HiddenNpc::Ondevildead3"; areamonster "force_3-3",50,101,50,101,"[DS - MVP] Detardeurus",1719,2,"HiddenNpc::Ondevildead3"; end; Ondevildead3: if ($status == 1) end; set $mob,$mob-1; if($mob == 10) Announce "[Devil Square] 10 monstros para começar a 4ª etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a 4ª etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a 4ª etapa. [ Raça: Tartaruga - MVP: General Tartaruga ]",8; if($mob == 0) enablenpc "DevilSquare34"; if($mob == 0) goto Ondevil4; end; Ondevildead31: if ($status == 1) end; set $mob,$mob-1; if($mob == 10) Announce "[Devil Square] 10 monstros para começar a 4ª etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a 4ª etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a 4ª etapa. [ Raça: Tartaruga - MVP: General Tartaruga]",8; if($mob == 0) enablenpc "DevilSquare34"; if($mob == 0) goto Ondevil4; end; Ondevildead32: if ($status == 1) end; set $mob,$mob-1; if($mob == 10) Announce "[Devil Square] 10 monstros para começar a 4ª etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a 4ª etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a 4ª etapa. [ Raça: Tartaruga - MVP: General Tartaruga ]",8; if($mob == 0) enablenpc "DevilSquare34"; if($mob == 0) goto Ondevil4; end; Ondevildead33: if ($status == 1) end; set $mob,$mob-1; if($mob == 10) Announce "[Devil Square] 10 monstros para começar a 4ª etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a 4ª etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a 4ª etapa. [ Raça: Tartaruga - MVP: General Tartaruga ]",8; if($mob == 0) enablenpc "DevilSquare34"; if($mob == 0) goto Ondevil4; end; Ondevil4: enablenpc "DevilSquare43"; set $mob,75; areamonster "force_3-3",20,119,20,129,"[DS] Aquecedor",1318,20,"HiddenNpc::Ondevildead4"; areamonster "force_3-3",20,119,20,129,"[DS] Agressor",1315,20,"HiddenNpc::Ondevildead4"; areamonster "force_3-3",20,119,20,129,"[DS] Congelador",1319,17,"HiddenNpc::Ondevildead4"; areamonster "force_3-3",20,119,20,129,"[DS] Batedor",1314,17,"HiddenNpc::Ondevildead4"; areamonster "force_3-3",20,147,20,147,"[DS - MVP] General Tartaruga",1312,1,"HiddenNpc::Ondevildead4"; end; Ondevildead4: if ($status == 1) end; set $mob,$mob-1; if($mob == 25) Announce "[Devil Square] 25 monstros para começar a 5ª etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a 5ª etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a 5ª etapa ! [ Raça: Morto-Vivo - MVP: Osíris ]",8; if($mob == 0) enablenpc "DevilSquare45"; if($mob == 0) goto Ondevil5; end; Ondevil5: enablenpc "DevilSquare54"; set $mob,40; areamonster "force_3-3",27,60,51,60,"[DS] Orc Zumbi",1153,10,"HiddenNpc::Ondevildead5"; areamonster "force_3-3",27,60,51,60,"[DS] Zumbi",1015,10,"HiddenNpc::Ondevildead5"; areamonster "force_3-3",27,60,51,60,"[DS] Zumbi Dilacerado",1865,9,"HiddenNpc::Ondevildead5"; areamonster "force_3-3",27,60,51,60,"[DS] Zumbi Prisioneiro",1197,4,"HiddenNpc::Ondevildead5"; areamonster "force_3-3",27,60,51,60,"[DS - MVP] Imperador Morroc",1916,3,"HiddenNpc::Ondevildead5"; areamonster "force_3-3",60,69,60,69,"[DS - MVP] Osíris",1038,4,"HiddenNpc::Ondevildead5"; end; Ondevildead5: if ($status == 1) end; set $mob,$mob-1; if($mob == 25) Announce "[Devil Square] 25 monstros para começar a última etapa.",8; if($mob == 5) Announce "[Devil Square] 5 monstros para começar a última etapa.",8; if($mob == 0) Announce "[Devil Square] Começou a última etapa !! [ Raça: Bruto - MVP: 2 Eddgas ] ",8; if($mob == 0) enablenpc "DevilSquare56"; if($mob == 0) goto Ondevil6; end; Ondevil6: enablenpc "DevilSquare65"; set $mob,17; areamonster "force_3-3",99,48,99,39,"[DS] Pé Grande",1060,5,"HiddenNpc::Ondevildead6"; areamonster "force_3-3",99,48,99,39,"[DS] Sasquatch",1243,5,"HiddenNpc::Ondevildead6"; areamonster "force_3-3",99,48,99,39,"[DS] Grizzly",1381,2,"HiddenNpc::Ondevildead6"; areamonster "force_3-3",99,48,99,39,"[DS - MVP] Belzebu",1873,3,"HiddenNpc::Ondevildead6"; areamonster "force_3-3",99,10,99,10,"[DS - MVP] Eddga",1115,2,"HiddenNpc::Ondevildead6"; end; Ondevildead6: if ($status == 1) end; set $mob,$mob-1; if($mob == 5) Announce "[Devil Square] 5 monstros para o término do evento.",8; if($mob == 2) Announce "[Devil Square] 2 monstros para o término do evento.",8; if($mob == 0) Announce "[Devil Square] O evento acabou e 10 Baús do Tesouro foram invocados no mapa.",8; if($mob == 0) atcommand "@skilloff"; if($mob == 0) goto Ondevilfinal; end; Ondevilfinal: set $mob,10; monster "force_3-3",92,24,"Baú do Tesouro",1324,1,"HiddenNpc::Onboxdead"; monster "force_3-3",92,22,"Baú do Tesouro",1328,1,"HiddenNpc::Onboxdead"; monster "force_3-3",92,20,"Baú do Tesouro",1332,1,"HiddenNpc::Onboxdead"; monster "force_3-3",92,18,"Baú do Tesouro",1336,1,"HiddenNpc::Onboxdead"; monster "force_3-3",92,16,"Baú do Tesouro",1340,1,"HiddenNpc::Onboxdead"; monster "force_3-3",107,24,"Baú do Tesouro",1344,1,"HiddenNpc::Onboxdead"; monster "force_3-3",107,22,"Baú do Tesouro",1348,1,"HiddenNpc::Onboxdead"; monster "force_3-3",107,20,"Baú do Tesouro",1352,1,"HiddenNpc::Onboxdead"; monster "force_3-3",107,18,"Baú do Tesouro",1356,1,"HiddenNpc::Onboxdead"; monster "force_3-3",107,16,"Baú do Tesouro",1360,1,"HiddenNpc::Onboxdead"; end; Onboxdead: if ($status == 1) end; set $mob, $mob -1; Announce "[Devil Square] " + strcharinfo(0) +" abriu um dos Baús do Tesouro.",8; if($mob == 0) enablenpc "Saída"; if($mob == 0) set $status,1; end; } // -- Mapflags force_3-3 mapflag nowarp force_3-3 mapflag nowarpto force_3-3 mapflag noteleport force_3-3 mapflag nosave SavePoint force_3-3 mapflag nomemo force_3-3 mapflag nobranch force_3-3 mapflag nopenalty force_3-3 mapflag monster_noteleport // -- End of Mapflags force_3-3,99,20,7 script Saída 969,{ mes "[Saída]"; mes "Você deseja realmente retornar para a cidade?"; menu "Me tire logo daqui !",sair,"Desejo ficar mais um pouco.",stay; sair: mes "Volte quando quiser se divertir novamente."; warp "prontera", 155, 171; close; stay: mes "Tudo bem, me avise quando desejar sair."; close; } force_3-3,99,164,0 warp DevilSquare2 2,2,force_3-3,99,144 force_3-3,99,147,0 warp DevilSquare1 2,2,force_3-3,99,167 force_3-3,99,128,0 warp DevilSquare23 2,2,force_3-3,106,99 force_3-3,109,99,0 warp DevilSquare32 2,2,force_3-3,99,131 force_3-3,59,90,0 warp DevilSquare34 2,2,force_3-3,26,99 force_3-3,29,99,0 warp DevilSquare43 2,2,force_3-3,59,93 force_3-3,10,99,0 warp DevilSquare45 2,2,force_3-3,19,53 force_3-3,19,50,0 warp DevilSquare54 2,2,force_3-3,13,99 force_3-3,69,59,0 warp DevilSquare56 2,2,force_3-3,93,59 force_3-3,90,59,0 warp DevilSquare65 2,2,force_3-3,66,59
  5. I'm an error that appears on the console of a npc, I would like to correct Console : DB error - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1') ON DUPLICATE KEY UPDATE mvpkills = mvpkills + '1'' at line 1 [Debug]: at script.c:14636 - INSERT INTO mvprank (id, name, mvpkills) values('150880','ParanoiD'','1') ON DUPLICATE KEY UPDATE mvpkills = mvpkills + '1' [Debug]: Source (NPC): Rank MvP#1 (invisible/not on a map) [Error]: buildin_rid2name: invalid RID [sql]: DB error - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1') ON DUPLICATE KEY UPDATE mvpkills = mvpkills + '1'' at line 1 [Debug]: at script.c:14636 - INSERT INTO mvprank (id, name, mvpkills) values('150880','ParanoiD'','1') ON DUPLICATE KEY UPDATE mvpkills = mvpkills + '1' [Debug]: Source (NPC): Rank MvP#1 (invisible/not on a map) Npc - script Rank MvP#1 -1,{ OnInit: query_sql "CREATE TABLE IF NOT EXISTS `mvprank` (`id` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0',`name` VARCHAR( 23 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,`mvpkills` BIGINT UNSIGNED NOT NULL ,UNIQUE (`id`)) ENGINE = MYISAM"; set $a, 1; set $topmvp, 5; setarray $mvpid[0],1511,1251,1734,1647,1651,1785,1873,1388,1630,1399,1039,1874,2068,1272,1719,1046,1389,1885,1876,1112,1115,1957,1418,1871,1252,1768,1086,1688,1646,1373,1147,1492,1059,1150,1956,2022,1087,1190,1038,1157,1159,1502,1623,1650,1583,1779,1708,1312,1751,1685,1648,1649,1917,1658,1832,1916,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2021,2024,2025,2026,2027,2028,2032; end; OnNPCKillEvent: for (set .@i, 0; .@i < getarraysize($mvpid); set .@i, .@i + 1) { if (killedrid == $mvpid[.@i]) set .@s,1; } if (!.@s) end; if ($a) announce "",bc_blue|bc_all; query_sql "INSERT INTO mvprank (id, name, mvpkills) values('"+getcharid(0)+"','"+strcharinfo(0)+"','1') ON DUPLICATE KEY UPDATE mvpkills = mvpkills + '1'"; end; }
  6. Na verdade eu tenho licença eamod amigo, eu quero começar a usar rathena e estou pedindo ajuda não para arrumar bugs de emulador eamod mais sim para poder converte o banco de dados que eu usava em outro emulador para ficar compatível com rathena... no mais quero usar emulador RATHENA.. Se você não sabe tirar uma DUVIDA adivinha oque você deve fazer? Ficar calado logicamente. minha conta do eamod. http://www.zephysoft.com/eamod/index.php?/user/152-mike/ Pedi ajuda a eles mais ele disseram que eu tinha que pedir ajuda no fórum do rathena
  7. Eu estou usando eamod mais agora quero usar o emulador rathena, o problema é que eu quero usar o meu banco de dados do phpmyadmin que tem as contas ee itens dos jogadores, queria saber se é compatível ou se existe alguma ferramenta que faz a convenção de banco de dados eamod para rathena.
  8. Hello, I'm wanting a system similar to this eAthena.. or if someone else has I would greatly appreciate it if you could pass me ...
  9. I would change the limiter 1x1 to 7x7 // ============================================================================== // BattleGround System - KvM 1~59 // ============================================================================== // Registration NPC's // ********************************************************************* prontera,158,208,5 script Time Guillaume::KvM04R_Guillaume 418,{ // KvM Guillaume mes "[^0000FFGuillaume^000000]"; mes "^0000FFEntre no Chat^000000 para duelar contra outro jogador."; close; OnInit: waitingroom "Duelo! [1x1]",1,"KvM04_BG::OnGuillaumeJoin",1; end; OnEnterBG: set $@KvM04BG_id1, waitingroom2bg("bat_c04",53,128,0,"KvM04_BG::OnGuillaumeQuit","KvM04_BG::OnGuillaumeDie"); end; } prontera,153,208,5 script Time Croix::KvM04R_Croix 414,{ // KvM Croix mes "[^FF0000Croix^000000]"; mes "^FF0000Entre no Chat^000000 para duelar contra outro jogador."; close; OnInit: waitingroom "Duelo! [1x1]",1,"KvM04_BG::OnCroixJoin",1; end; OnEnterBG: set $@KvM04BG_id2, waitingroom2bg("bat_c04",146,55,1,"KvM04_BG::OnCroixQuit","KvM04_BG::OnCroixDie"); end; } // Light Effects // ********************************************************************* bat_c04,54,123,0 script #bat_c04a 111,{ end; OnKvM04LightA: misceffect 54; end; OnKvM04LightB: misceffect 55; end; OnKvM04LightC: misceffect 56; end; } bat_c04,56,125,0 duplicate(#bat_c04a) #bat_c04b 111 bat_c04,58,127,0 duplicate(#bat_c04a) #bat_c04c 111 bat_c04,141,56,0 duplicate(#bat_c04a) #bat_c04d 111 bat_c04,143,58,0 duplicate(#bat_c04a) #bat_c04e 111 bat_c04,145,60,0 duplicate(#bat_c04a) #bat_c04f 111 // Battleground Engine // ********************************************************************* - script KvM04_BG -1,{ end; OnInit: setwall "bat_c04",54,122,6,7,0,"batc04wall_a"; setwall "bat_c04",55,122,5,7,0,"batc04wall_b"; setwall "bat_c04",140,56,6,7,0,"batc04wall_c"; setwall "bat_c04",140,57,5,7,0,"batc04wall_d"; disablenpc "TherapistKvM04a"; disablenpc "TherapistKvM04b"; disablenpc "VintenarKvM04a"; disablenpc "VintenarKvM04b"; end; OnGuillaumeJoin: OnCroixJoin: donpcevent "KvM04_BG::OnReadyCheck"; end; OnGuillaumeQuit: OnGuillaumeDie: if( $@KvM04BG == 2 ) { getmapxy .@m$, .@x, .@y, 0; if( .@m$ != "bat_c04" || (.@x >= 50 && .@x <= 58 && .@y >= 123 && .@y <= 131) ) end; // Killed/Logout on Cementery or outside the map? set .Guillaume_Count, .Guillaume_Count - 1; set .Croix_Score, .Croix_Score + 1; bg_updatescore "bat_c04",.Guillaume_Score,.Croix_Score; if( .Guillaume_Count < 1 ) donpcevent "KvM04_BG::OnCroixWin"; } end; OnCroixQuit: OnCroixDie: if( $@KvM04BG == 2 ) { getmapxy .@m$, .@x, .@y, 0; if( .@m$ != "bat_c04" || (.@x >= 141 && .@x <= 149 && .@y >= 52 && .@y <= 60) ) end; // Killed/Logout on Cementery or outside the map? set .Croix_Count, .Croix_Count - 1; set .Guillaume_Score, .Guillaume_Score + 1; bg_updatescore "bat_c04",.Guillaume_Score,.Croix_Score; if( .Croix_Count < 1 ) donpcevent "KvM04_BG::OnGuillaumeWin"; } end; OnReadyCheck: if( $@KvM04BG ) end; // if( gettime(3) < 16 || gettime(3) > 22 ) // end; // 4 to 11 p.m. if( set(.@Guillaume, getwaitingroomstate(6,"KvM04R_Guillaume")) > 0 ) set $@KvM04_GU$, $@waitingroommembers$[0]; if( set(.@Croix, getwaitingroomstate(6,"KvM04R_Croix")) > 0 ) set $@KvM04_CU$, $@waitingroommembers$[0]; if( .@Guillaume < 1 || .@Croix < 1 ) { // Not enough players to start set .@Announce$, "Duelo! [1x1] - "; if( .@Guillaume ) set .@Announce$, .@Announce$ + "<" + $@KvM04_GU$ + "> VS < >"; else if( .@Croix ) set .@Announce$, .@Announce$ + "< > VS <" + $@KvM04_CU$ + ">"; else set .@Announce$, .@Announce$ + "A Arena está liberada."; if( !agitcheck() && $@KvM_Flood < gettimetick(2) ) { announce .@Announce$,0,0xffff00; set $@KvM_Flood, gettimetick(2) + 15; } else mapannounce .@Announce$,1,0xffff00; end; } set $@KvM04BG, 1; // Starting donpcevent "KvM04R_Croix::OnEnterBG"; donpcevent "KvM04R_Guillaume::OnEnterBG"; donpcevent "KvM04_BG::OnStart"; end; OnStart: announce "Duelo! [1x1] <" + $@KvM04_GU$ + "> VS <" + $@KvM04_CU$ + "> começou!",0,0xffff00; enablenpc "TherapistKvM04a"; enablenpc "TherapistKvM04b"; disablenpc "VintenarKvM04a"; disablenpc "VintenarKvM04b"; set $@KvM04BG_Victory, 0; sleep 2000; // Warp Teams bg_warp $@KvM04BG_id1,"bat_c04",53,128; bg_warp $@KvM04BG_id2,"bat_c04",146,55; // ScoreBoard set .Guillaume_Score, 0; set .Croix_Score, 0; initnpctimer; end; OnTimer5000: areapercentheal "bat_c04",50,123,58,131,100,100; areapercentheal "bat_c04",141,52,149,60,100,100; mapannounce "bat_c04","Duelo! [1x1] - A Batalha começará em 25 segundos!",1,0xffff00; end; OnTimer26000: mapannounce "bat_c04","Duelo! [1x1] - A Batalha começará em 4 segundos!",1,0xffff00; end; OnTimer27000: donpcevent "::OnKvM04LightA"; end; OnTimer28000: donpcevent "::OnKvM04LightB"; end; OnTimer29000: donpcevent "::OnKvM04LightC"; end; OnTimer30000: // Team Members set .Guillaume_Count, bg_get_data($@KvM04BG_id1, 0); set .Croix_Count, bg_get_data($@KvM04BG_id2, 0); if( .Guillaume_Count < 1 || .Croix_Count < 1 ) { set $@KvM04BG_Victory, 3; set $@KvM04BG, 3; set .@Announce$, "Duelo! [1x1] - "; if( .Guillaume_Count < 1 && .Croix_Count < 1 ) set .@Announce$, "<" + $@KvM04_GU$ + "> VS <" + $@KvM04_CU$ + "> cancelado."; else if( .Guillaume_Count < 1 ) set .@Announce$, "<" + $@KvM04_CU$ + "> está com medo de <" + $@KvM04_GU$ + ">..."; else if( .Croix_Count < 1 ) set .@Announce$, "<" + $@KvM04_GU$ + "> está com medo de <" + $@KvM04_CU$ + ">..."; announce .@Announce$,0,0xffff00; stopnpctimer; sleep 2000; donpcevent "KvM04_BG::OnStop"; end; } set $@KvM04BG, 2; // Playing areapercentheal "bat_c04",50,123,58,131,100,100; bg_warp $@KvM04BG_id1,"bat_c04",62,119; areapercentheal "bat_c04",141,52,149,60,100,100; bg_warp $@KvM04BG_id2,"bat_c04",137,64; end; OnTimer32000: mapannounce "bat_c04","Duelo! [1x1] começou!!",1,0xffff00; end; OnTimer300000: mapannounce "bat_c04","Duelo! [1x1] - A Batalha acabará em 30 segundos.",1,0xffff00; end; OnTimer330000: if( .Croix_Count > .Guillaume_Count ) donpcevent "KvM04_BG::OnCroixWin"; else if( .Croix_Count < .Guillaume_Count ) donpcevent "KvM04_BG::OnGuillaumeWin"; else { // Draw Game set $@KvM04BG, 3; set $@KvM04BG_Victory, 3; stopnpctimer; sleep 2000; announce "Duelo! [1x1] - <" + $@KvM04_GU$ + "> VS <" + $@KvM04_CU$ + "> terminou em EMPATE.",0,0xffff00; donpcevent "KvM04_BG::OnStop"; } end; OnGuillaumeWin: set $@KvM04BG, 3; set $@KvM04BG_Victory, 1; stopnpctimer; sleep 2000; announce "Duelo! [1x1] - <" + $@KvM04_GU$ + "> foi o VENCEDOR! <" + $@KvM04_CU$ + "> perdeu.",0,0xffff00; donpcevent "KvM04_BG::OnStop"; end; OnCroixWin: set $@KvM04BG, 3; set $@KvM04BG_Victory, 2; stopnpctimer; sleep 2000; announce "Duelo! [1x1] - <" + $@KvM04_CU$ + "> foi o VENCEDOR! <" + $@KvM04_GU$ + "> perdeu.",0,0xffff00; donpcevent "KvM04_BG::OnStop"; end; OnStop: disablenpc "TherapistKvM04a"; disablenpc "TherapistKvM04b"; enablenpc "VintenarKvM04a"; enablenpc "VintenarKvM04b"; // Warp Teams bg_warp $@KvM04BG_id1,"bat_c04",53,128; bg_warp $@KvM04BG_id2,"bat_c04",146,55; donpcevent "KvM04_BG_Out::OnBegin"; end; OnReset: stopnpctimer; stopnpctimer "KvM04_BG_Out"; set .Croix_Count, 0; set .Guillaume_Count, 0; set .Croix_Score, 0; set .Guillaume_Score, 0; set $@KvM04_GU$, ""; set $@KvM04_CU$, ""; set $@KvM04BG_Victory, 0; if( $@KvM04BG_id1 ) { bg_destroy $@KvM04BG_id1; set $@KvM04BG_id1, 0; } if( $@KvM04BG_id2 ) { bg_destroy $@KvM04BG_id2; set $@KvM04BG_id2, 0; } disablenpc "TherapistKvM04a"; disablenpc "TherapistKvM04b"; disablenpc "VintenarKvM04a"; disablenpc "VintenarKvM04b"; sleep 1000; mapwarp "bat_c04","prontera",155,181; sleep 2000; maprespawnguildid "bat_c04",0,3; // Just in case someone else bg_updatescore "bat_c04",0,0; sleep 2000; set $@KvM04BG, 0; donpcevent "KvM04_BG::OnReadyCheck"; // Maybe a game is ready to start end; } - script KvM04_BG_Out -1,{ end; OnBegin: initnpctimer; end; OnTimer3000: mapannounce "bat_c04","Duelo! [1x1] fechará em 2 minutos!",1,0xffff00; end; OnTimer90000: mapannounce "bat_c04","Duelo! [1x1] fechará em 30 segundos!",1,0xffff00; end; OnTimer110000: mapannounce "bat_c04","Duelo! [1x1] fechará em 10 segundos!",1,0xffff00; end; OnTimer120000: OnClock1600: donpcevent "KvM04_BG::OnReset"; end; } // Battleground Therapist // ********************************************************************* bat_c04,51,130,5 script Treinador::TherapistKvM04a 95,{ mes "[Treinador]"; mes "Apenas respire fundo e lute. Você conseguirá vencer!"; specialeffect2 312; close; } bat_c04,148,53,1 script Treinador::TherapistKvM04b 95,{ mes "[Treinador]"; mes "Apenas respire fundo e lute. Você conseguirá vencer!"; specialeffect2 312; close; } // Battleground rewards // ********************************************************************* bat_c04,51,130,5 script Guillaume Vintenar::VintenarKvM04a 419,{ if( $@KvM04BG_Victory ) { if( $@KvM04BG_Victory == 3 ) { bg_leave; warp "prontera",134,120; end; } else if( $@KvM04BG_Victory == Bat_Team ) { // Victory bg_leave; warp "prontera",155,181; end; } else { // bg_leave; warp "prontera",155,181; end; } bg_leave; warp "prontera",155,181; end; } end; } bat_c04,148,53,1 script Croix Vintenar::VintenarKvM04b 415,{ if( $@KvM04BG_Victory ) { if( $@KvM04BG_Victory == 3 ) { bg_leave; warp "prontera",155,181; end; } else if( $@KvM04BG_Victory == Bat_Team ) { // Victory bg_leave; warp "prontera",155,181; end; } else { // bg_leave; warp "prontera",155,181; end; } bg_leave; warp "prontera",155,181; end; } end; } // MapFlags // ********************************************************************* bat_c04 mapflag battleground 2 bat_c04 mapflag nomemo bat_c04 mapflag nosave SavePoint bat_c04 mapflag noteleport bat_c04 mapflag nowarp bat_c04 mapflag nowarpto bat_c04 mapflag noreturn bat_c04 mapflag nobranch bat_c04 mapflag nopenalty
  10. unfortunately my host company does not give me ssh access to see the errors, I wore this npc in an old emulator and it worked well. I made a modification that said, even then when I click the npc nothing happens. healhomun : was a command to heal the homunculus do not know if there is another command that can replace him
  11. I click on that npc and nothing happens sec_in02,143,155,2 script Criador de Homunculos#hm 740,{ // Array de configurações. setarray .@hom_confing[0],0,0,100000,1,1000,100000,0,1000,25,25; mes "[Criador de Homunculos]"; mes "Hey, sou um poderoso criador"; mes "de Homunculos, consegui"; mes "desenvolver algumas poções"; mes "e grandes habilidades com"; mes "homunculos, e estou aqui em"; mes "Prontera, para ofereçer meus"; if(@hom_confing[6]) mes "serviços aos Alquimistas e Criadores que tem dificuldades para criarem um."; else mes "serviços para todas as classes, que sempre desejaram ter um homunculo."; next; if(@hom_confing[6] && Class != 18 && Class != 4019){ mes "[Criador de Homunculos]"; mes "Me desculpe, mas somente os"; mes "Alquimistas e Criadores podem"; mes "utilizar este serviço..."; mes "nínguem pode quebrar o segredo"; mes "da vida..."; close; } // Setando Menus if((gethominfo(1) >= 6009) || (gethominfo(1) >= 6000 && gethominfo(1) <= 6008 && gethominfo(6) < 99)) set @MENU$,select("","Ressucitar.","Curar","","","Informações do seu Homunculo.","","Cancelar."); else if(gethominfo(1)) set @MENU$,select("Criar Homunculo.","","","","","","Sobre Homunculos.","Cancelar."); else set @MENU$,select("","Ressucitar.","Curar","Envoluir.","Requisitos.","Informações do seu Homunculo.","","Cancelar."); switch(@MENU$){ case 1: mes "[Criador de Homunculos]"; if(.@hom_confing[1] == 1 && Zeny < .@hom_confing[2]) mes "Me desculpe, mas você não tem zeny suficiente, me traga "+.@zeny+" para eu criar seu homunculo."; else if(.@hom_confing[0] == 1 && countitem(7142) < 1) mes "Me desculpe, mas você não tem um " + getitemname(7142) + ", por favor, volte quando tiver o material nescessário."; else { if(.@hom_confing[1] == 1) set Zeny, Zeny - .@hom_confing[2]; if(.@hom_confing[0] == 1) delitem 7142,1; switch(.@hom_confing[3]){ case 1: mes "Qual homunculo você deseja criar?"; next; switch(select("- Lif:- Amistr:- Filir:- Vanilmirth")){ case 1: setarray .@type$[0],"Lif",6001,6005; break; case 2: setarray .@type$[0],"Amistr",6002,6006; break; case 3: setarray .@type$[0],"Filir",6003,6007; break; case 4: setarray .@type$[0],"Vanilmirth",6004,6008; break; } mes "[Criador de Homunculos]"; mes "Existe dois tipos de "+.@type$[0]+", qual você deseja criar?"; next; select("- "+.@type$[0]+"[1]","- "+.@type$[0]+"[2]"); mes "[Criador de Homunculos]"; set .@hom, .@type$[@menu]; break; default: set .@hom, rand(6001,6008); break; } mes "Cuide bem de seu novo amiguinho,"; mes "e se precisar de algo, fale comigo novamente..."; mes "Sou especialista em curas e ressucitações de homunculos..."; mes "E com um bom nível de base, experiência, amizade e alimentação, consigo envoluir para você!"; atcommand "@makehomun "+strcharinfo(0); } break; case 2: mes "[Criador de Homunculos]"; if(Zeny < .@hom_confing[4]) mes "Desculpe, mas você não tem zeny suficiente! Traga-me "+.@hom_confing[4]+" para eu reviver seu homunculo!"; else{ set Zeny, Zeny - .@hom_confing[4]; set .@GID,getcharid(2); getmapxy(.@map$,.@x,.@y,0); unitskillusepos .@GID,247,10,.@x,.@y; mes "Muito bem, seu amiguinho foi ressucitado!"; } break; case 3: mes "[Criador de Homunculos]"; if(Zeny < .@hom_confing[7]) mes "Desculpe, mas você não tem zeny suficiente! Traga-me "+.@hom_confing[7]+" para eu curar seu homunculo!"; else{ set Zeny, Zeny - .@hom_confing[7]; healhomun .@hom_confing[8],.@hom_confing[9]; mes "Muito bem, seu amiguinho foi curado!"; } break; case 4: mes "[Criador de Homunculos]"; if(gethominfo(6) < 99) mes "Me desculpe, mas seu homunculo precisa ter no minímo level 99!"; else if(gethominfo(3) < 100000) mes "Meu Deus, me parece que você e seu homunculos não se entendem muito bem, por favor, tente ser mais amigo dele do que meu hehehe..."; else if(gethominfo(4) < 100) mes "Me desculpe, mas você não tem alimentado seu amigo muito bem certo? Precisa de concentração da minha parte e da dele para envoluir, e ele só tem concetração em comida nesse estante hehehe..."; else if(.@hom_confing[0] == 1 && countitem(12040) < 1) mes "Me desculpe, mas você não tem uma " + getitemname(12040) + "!"; else if(Zeny < .@hom_confing[5]) mes "Me desculpe, mas você me precisa pagar "+.@hom_confing[5]+"zenys se quiser que eu ajude seu homunculo envoluir..."; else { mes "Muito bem, agora seu amiguinho tem uma nova vida..."; set Zeny, Zeny - .@hom_confing[5]; if(.@hom_confing[0]) delitem 12040,1; homevolution; } break; case 5: mes "[Criador de Homunculos]"; mes "Para envoluir seu Homunculo, ele precisa estar nesses estado:"; mes "1.: Nível 99"; mes "2.: Lealdade Alta: 1000"; mes "3.: Fome: 100"; close; case 6: mes "[Criador de Homunculos]"; mes "Informações Sobre ele:"; mes " "; mes "Nome: "+gethominfo(2)+"."; mes "Amizade: "+gethominfo(3)+"."; mes "Fome: "+gethominfo(4)+"."; mes "Level: "+gethominfo(6)+"."; break; case 7: mes "[Criador de Homunculos]"; mes "Bem, homunculos são criaturas"; mes "especiais, usada para auxiliar"; mes "em suas batalhas!"; mes "Eles é como um ser-humano,"; mes "criado por tecnologia de poções"; mes "e habilidades avançada de Alquimia."; mes "Geralmente, homunculos criado"; mes "por classes Alquimista ou sua"; mes "envolução, é criado na base de"; mes "embrião e habilidade especial"; next; mes "[Criador de Homunculos]"; mes "Esta habilidade especial"; mes "fundi seus conhecimento"; mes "e sua genética, para criar"; mes "uma criatura lendária, que"; mes "por sí própria, obedece o"; mes "seu criador, como um filhote"; mes "de galinha, assim que o ovo"; mes "choca, o pintinho pensa que a"; mes "primeira criatura viva é sua mãe..."; next; mes "[Criador de Homunculos]"; mes "Ele é um grande amigo seu,"; mes "e para você cultivar a amizade"; mes "você deve saber cultivar ela..."; mes "Bem.. bem.. vou lhe encinar como... deseja aprender mais?"; next; select("Sim... continue..."); mes "[Criador de Homunculos]"; mes "1. Você deve alimentar seu homunculo corretamente, nunca deixe utrapassar da fome, ou dar muita comida a ele."; mes "Se não alimentá-lo direito, ele morrerá, e aos poucos sua lealdade (amizade) ficará baixa e ele irá fugir."; next; mes "[Criador de Homunculos]"; mes "2. Brinque sempre com ele, não sempre, mais diáriamente, se não brincar sua lealdade (amizade) ficará baixa e ele irá fugir."; next; mes "[Criador de Homunculos]"; mes "3. Fazendo o passo 1. e 2., sempre depois, treine seu amigo, parar ele ficar forte matando alguns monstros. Para assim ele involuir."; next; mes "[Criador de Homunculos]"; mes "Bem, só isso, espero que"; mes "você entenda e crie um para você."; break; case 8: mes "[Criador de Homunculos]"; mes "Tudo bem, volte qualquer dia!"; break; } close; }
  12. This NPC does not even appear, I wonder the error // ------------------------------------------------------------------------------- // 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. // ------------------------------------------------------------------------------- quiz_00,60,27 script Converter 51,{ mes "Neste npc você poderá converte seus Equipamentos para cabeça em itens visuais."; next; mes "Por favor, selecione o que você deseja converter."; mes "Lembre-se, cartas, atributos dos equipamentos e refinamentos serão perdidos..."; next; setarray .@Position$[1],"Cima","Meio","Baixo"; setarray .@Position[1], 1, 9, 10; set .@Menu$,""; for( set .@i, 1; .@i < 4; 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 "Você não está utilizando nada lá..."; close; } mes "Você deseja transforma este item " + getitemname(getequipid(.@Part)) + " em visual?"; next; if( select("Sim, continuar com o processo.:Não, Desculpe-me.") == 2 ) { mes "Precisa de algum tempo para pensar sobre isso, hein?"; mes "Tudo bem, eu posso entender."; close; } costume .@Part; // Convert the Headgear mes "Processo finalizado com sucesso, faça um bom uso do seu equipamento visual ^^."; close; end; }
  13. I'm using eAthena and my Map server crashes when the monster is respawned... can you help me about this? or @reloadscript Index: conf/battle/monster.conf =================================================================== --- conf/battle/monster.conf (revision 15090) +++ conf/battle/monster.conf (working copy) @@ -213,3 +213,7 @@ // Should MVP slaves retain their target when summoned back to their master? mob_slave_keep_target: yes + +// Wheter or not to spawn the mvp tomb. +// See http://irowiki.org/wiki/MVP#Gravestone +mvp_tomb_enabled: yes \ No newline at end of file Index: conf/msg_athena.conf =================================================================== --- conf/msg_athena.conf (revision 15090) +++ conf/msg_athena.conf (working copy) @@ -535,5 +535,17 @@ //... 650: Unknown Job +// MvP Tomb +// Added here so it can be easily translated +656: Tomb +657: [ ^EE0000%s^000000 ] +658: Has met its demise +659: Time of death : ^EE0000%s^000000 +660: Defeated by +661: [^EE0000%s^000000] +// Added features [malufett] +900: Time of respawn: ^EE0000%s^000000 +901: Time left: %02i:%02i:%02i + //Custom translations import: conf/import/msg_conf.txt Index: src/map/battle.c =================================================================== --- src/map/battle.c (revision 15090) +++ src/map/battle.c (working copy) @@ -4023,6 +4023,7 @@ { "bg_magic_attack_damage_rate", &battle_config.bg_magic_damage_rate, 60, 0, INT_MAX, }, { "bg_misc_attack_damage_rate", &battle_config.bg_misc_damage_rate, 60, 0, INT_MAX, }, { "bg_flee_penalty", &battle_config.bg_flee_penalty, 20, 0, INT_MAX, }, + { "mvp_tomb_enabled", &battle_config.mvp_tomb_enabled, 1, 0, 1, }, }; Index: src/map/battle.h =================================================================== --- src/map/battle.h (revision 15090) +++ src/map/battle.h (working copy) @@ -497,6 +497,8 @@ int bg_magic_damage_rate; int bg_misc_damage_rate; int bg_flee_penalty; + + int mvp_tomb_enabled; } battle_config; void do_init_battle(void); Index: src/map/map.h =================================================================== --- src/map/map.h (revision 15090) +++ src/map/map.h (working copy) @@ -199,7 +199,7 @@ //For common mapforeach calls. Since pets cannot be affected, they aren't included here yet. #define BL_CHAR (BL_PC|BL_MOB|BL_HOM|BL_MER) -enum npc_subtype { WARP, SHOP, SCRIPT, CASHSHOP }; +enum npc_subtype { WARP, SHOP, SCRIPT, CASHSHOP, TOMB }; enum { RC_FORMLESS=0, Index: src/map/mob.c =================================================================== --- src/map/mob.c (revision 15090) +++ src/map/mob.c (working copy) @@ -33,6 +33,7 @@ #include "atcommand.h" #include "date.h" #include "quest.h" +#include "chat.h" #include <stdio.h> #include <stdlib.h> @@ -115,6 +116,88 @@ } /*========================================== + * MvP Tomb [GreenBox] + *------------------------------------------*/ +void mvptomb_create(struct mob_data *md, char *killer, time_t time) +{ + struct npc_data *nd; + const struct TimerData * timer_data = get_timer(md->spawn_timer); + + CREATE(nd, struct npc_data, 1); + + nd->bl.id = md->tomb_nid = npc_get_new_npc_id(); + + nd->ud.dir = md->ud.dir; + nd->bl.m = md->bl.m; + nd->bl.x = md->bl.x; + nd->bl.y = md->bl.y; + nd->bl.type = BL_NPC; + + safestrncpy(nd->name, msg_txt(656), sizeof(nd->name)); + + nd->class_ = 565; + nd->speed = 200; + nd->subtype = TOMB; + + nd->u.tomb.md = md; + nd->u.tomb.kill_time = time; + nd->u.tomb.spawn_time = nd->u.tomb.spawn_timer = (DIFF_TICK(timer_data->tick, gettick()) + 60); + + if (killer) + safestrncpy(nd->u.tomb.killer_name, killer, NAME_LENGTH); + else + nd->u.tomb.killer_name[0] = '\0'; + + map_addnpc(nd->bl.m, nd); + map_addblock(&nd->bl); + status_set_viewdata(&nd->bl, nd->class_); + status_change_init(&nd->bl); + unit_dataset(&nd->bl); + clif_spawn(&nd->bl); + + add_timer(gettick()+1000, mob_tombtimer, nd->bl.id, 0); +} + +/** + MVP Tomb Added Features + -Show time left before respawning [malufett] +**/ +int mob_tombtimer(int tid, unsigned int tick, int id, intptr_t data) +{ + struct npc_data *nd = (struct npc_data *)map_id2bl(id); + int ms = nd->u.tomb.spawn_timer, hour=0, min=0, sec=0; + + if( nd && ms > 0) + { + char w1[256]; + + hour = ms / 3600000; + min = ms % 3600000 / 60000; + sec = ms % 60000 / 1000; + + sprintf(w1, msg_txt(901), hour , min, sec); + + chat_deletenpcchat(nd); + chat_createnpcchat(nd, w1, 0, 0, 1, "", 0, 1, MAX_LEVEL); + + add_timer(gettick()+1000, mob_tombtimer, id, 0); + nd->u.tomb.spawn_timer -= 1000; + }else + chat_deletenpcchat(nd); + + return 0; +} + +void mvptomb_destroy(struct mob_data *md) +{ + struct npc_data *nd = (struct npc_data *)map_id2bl(md->tomb_nid); + if (nd) + npc_unload(nd); + + md->tomb_nid = 0; +} + +/*========================================== * Founds up to N matches. Returns number of matches [Skotlex] *------------------------------------------*/ int mobdb_searchname_array(struct mob_db** data, int size, const char *str) @@ -804,6 +887,13 @@ if( md->spawn_timer != INVALID_TIMER ) delete_timer(md->spawn_timer, mob_delayspawn); md->spawn_timer = add_timer(gettick()+spawntime, mob_delayspawn, md->bl.id, 0); + + // MvP tomb [GreenBox] + if (battle_config.mvp_tomb_enabled && md->spawn->state.boss){ + struct map_session_data *mvp_sd = map_id2sd(md->target_id); + mvptomb_create(md, mvp_sd ? mvp_sd->status.name : NULL, time(NULL)); + } + return 0; } @@ -890,6 +980,10 @@ // Added for carts, falcons and pecos for cloned monsters. [Valaris] md->sc.option = md->db->option; + // MvP tomb [GreenBox] + if (md->tomb_nid) + mvptomb_destroy(md); + map_addblock(&md->bl); clif_spawn(&md->bl); skill_unit_move(&md->bl,tick,1); @@ -2446,6 +2540,9 @@ if(!md->spawn) //Tell status_damage to remove it from memory. return 5; // Note: Actually, it's 4. Oh well... + if (battle_config.mvp_tomb_enabled && md->spawn->state.boss) + md->target_id = mvp_sd->bl.id; + if( !rebirth ) mob_setdelayspawn(md); //Set respawning. return 3; //Remove from map. @@ -4334,6 +4431,8 @@ add_timer_interval(gettick()+MIN_MOBTHINKTIME,mob_ai_hard,0,0,MIN_MOBTHINKTIME); add_timer_interval(gettick()+MIN_MOBTHINKTIME*10,mob_ai_lazy,0,0,MIN_MOBTHINKTIME*10); + add_timer_func_list(mob_tombtimer,"mob_tombtimer");// [malufett] + return 0; } @@ -4367,4 +4466,4 @@ ers_destroy(item_drop_ers); ers_destroy(item_drop_list_ers); return 0; -} +} \ No newline at end of file Index: src/map/mob.h =================================================================== --- src/map/mob.h (revision 15090) +++ src/map/mob.h (working copy) @@ -161,6 +161,8 @@ short skillidx; unsigned int skilldelay[MAX_MOBSKILL]; char npc_event[EVENT_NAME_LENGTH]; + + int tomb_nid; }; @@ -277,6 +279,11 @@ int mob_clone_spawn(struct map_session_data *sd, int m, int x, int y, const char *event, int master_id, int mode, int flag, unsigned int duration); int mob_clone_delete(struct mob_data *md); +// MvP Tomb System +void mvptomb_create(struct mob_data *md, char *killer, time_t time); +void mvptomb_destroy(struct mob_data *md); +int mob_tombtimer(int tid, unsigned int tick, int id, intptr_t data); + void mob_reload(void); #endif /* _MOB_H_ */ Index: src/map/npc.c =================================================================== --- src/map/npc.c (revision 15090) +++ src/map/npc.c (working copy) @@ -27,6 +27,7 @@ #include "unit.h" #include "npc.h" #include "chat.h" +#include "atcommand.h" #include <stdio.h> #include <stdlib.h> @@ -1087,6 +1088,8 @@ case SCRIPT: run_script(nd->u.scr.script,0,sd->bl.id,nd->bl.id); break; + case TOMB: + run_tomb(sd,nd); } return 0; @@ -2634,6 +2637,48 @@ clif_spawn(&nd->bl);// fade in } +// MvP tomb [GreenBox] +void run_tomb(struct map_session_data* sd, struct npc_data* nd) +{ + char buffer[200]; + char time[10]; + struct tm *newtime = localtime(&nd->u.tomb.kill_time); + + strftime(time, sizeof(time), "%H:%M", newtime); + + // TODO: Find exact color? + snprintf(buffer, sizeof(buffer), msg_txt(657), nd->u.tomb.md->db->name); + clif_scriptmes(sd, nd->bl.id, buffer); + + clif_scriptmes(sd, nd->bl.id, msg_txt(658)); + + snprintf(buffer, sizeof(buffer), msg_txt(659), time); + clif_scriptmes(sd, nd->bl.id, buffer); + + /** MVP Tomb added features + -Show time of respawn [malufett] + **/ + if(nd->u.tomb.spawn_time != INVALID_TIMER){ + int ms = nd->u.tomb.spawn_time; + newtime->tm_hour += ms % 86400000 / 3600000; + newtime->tm_min += ms % 3600000 / 60000 + 1; + if(newtime->tm_min>59){ + newtime->tm_hour++; + newtime->tm_min -= 60; + } + strftime(time, sizeof(time), "%H:%M", newtime); + snprintf(buffer, sizeof(buffer), msg_txt(900), time); + clif_scriptmes(sd, nd->bl.id, buffer); + } + + clif_scriptmes(sd, nd->bl.id, msg_txt(660)); + + snprintf(buffer, sizeof(buffer), msg_txt(661), nd->u.tomb.killer_name[0] ? nd->u.tomb.killer_name : "Unknown"); + clif_scriptmes(sd, nd->bl.id, buffer); + + clif_scriptclose(sd, nd->bl.id); +} + /// Parses a function. /// function%TAB%script%TAB%<function name>%TAB%{<code>} static const char* npc_parse_function(char* w1, char* w2, char* w3, char* w4, const char* start, const char* buffer, const char* filepath) Index: src/map/npc.h =================================================================== --- src/map/npc.h (revision 15090) +++ src/map/npc.h (working copy) @@ -62,6 +62,13 @@ short x,y; // destination coords unsigned short mapindex; // destination map } warp; + struct { + struct mob_data *md; + time_t kill_time; + char killer_name[NAME_LENGTH]; + int spawn_time; //malufett + int spawn_timer; + } tomb; } u; }; @@ -155,6 +162,8 @@ int npc_duplicate4instance(struct npc_data *snd, int m); int npc_cashshop_buy(struct map_session_data *sd, int nameid, int amount, int points); +void run_tomb(struct map_session_data* sd, struct npc_data* nd); + extern struct npc_data* fake_nd; #endif /* _NPC_H_ */ Index: src/map/unit.c =================================================================== --- src/map/unit.c (revision 15090) +++ src/map/unit.c (working copy) @@ -2215,6 +2215,9 @@ } if( mob_is_clone(md->class_) ) mob_clone_delete(md); + if( md->tomb_nid ) + mvptomb_destroy(md); + break; } case BL_HOM:
  14. the cast bar is not appear as if she were invisible, the character stands still as if using the skill over the bar does not appear
  15. Yes I could try but my computer is apple and I can not run a local emulator
  16. Yes it's true, my host does not give ssh access, so I can not see the errors.
  17. Hello in my emulator creators are invoking thousands of mobs in skill Follower Summons, wanted them could only summon one at a time.
×
×
  • Create New...