Hola amigos, estuve dandole vueltas a un script que encontre en herc, y quise migrarlo a rAthena.
El script funciona hasta cierto punto:
Aparece el npc, hablas con el y corre todo normal, te pide items, pero al entregarlos el npc desaparece y ya no sucede nada. Cuando hablas con el y despues le das en cancelar, pero despues vuelves a hablar con el, dice que esta hablando con otra personas. La consola no tira ningun error. Quisiera saber si se debe a que es de herc, y si es asi podrian ayudarme a migrarlo a rAthena!
Gracias de antemano
Les dejo el Script.
prontera,150,150,0 script Thanatos Summoner#22 4W_SAILOR,{
mes .npc$;
.@party_id = getcharid(1);
.@i = strnpcinfo(2);
if (getd(".qwerty" + .@i)) {
mes "Someone is talking to me!";
emotion 23;
close;
}
setd(".qwerty" + .@i, 1);
if (.@party_id && getpartyleader(.@party_id, 2) != getcharid(0)) {
mes "Only the party leader can talk to me";
} else {
mes "Hi " + strcharinfo(0) + ", What can i do for you?";
next;
if (select("I want to summon Thanatos:Cancel") == 1 ) {
mes .npc$;
mes "You need the following items to summon thanatos";
.@a = 0;
while (.@a < .size) {
mes "> " + .fragments[.@a+1] + "x " + getitemname(.fragments[.@a]);
.@a += 2;
}
next;
if (select("Yes, I have those items and I'm ready to fight:I will think twice") == 1) {
.@a = 0;
while (.@a < .size) {
if (countitem(.fragments[.@a]) < .fragments[.@a+1]) {
mes .npc$;
mes "You lack " + getitemname(.fragments[.@a]);
setd(".qwerty" + .@i, 0);
close;
}
.@a += 2;
}
.@a = 0;
while (.@a < .size) {
delitem .fragments[.@a], .fragments[.@a+1];
.@a += 2;
}
if (getcharid(1)) {
announce "Party " + getpartyname(.@party_id) + " has initiated Thanatos Summoner", 0;
warpparty "thana_boss", 113, 165, .@party_id, true;
} else {
announce strcharinfo(0) + " has initiated Thanatos Summoner", 0;
warp "thana_boss", 113, 165;
}
monster "thana_boss", 0, 0, "--ja--", 1708, 1, strnpcinfo(3) + "::OnKill";
hideonnpc strnpcinfo(3);
}
}
}
setd(".qwerty" + .@i, 0);
close;
// 50 minutes mark
On50MinMark:
announce "Thanatos Summoner will open in 10 minutes", 0;
addtimer 300000, strnpcinfo(3) + "::On55MinMark";
end;
// 55 minutes mark
On55MinMark:
announce "Thanatos Summoner will open in 5 minutes", 0;
addtimer 240000, strnpcinfo(3) + "::On59MinMark";
end;
// 59 minutes mark
On59MinMark:
announce "Thanatos Summoner will open in 1 minute", 0;
addtimer 60000, strnpcinfo(3) + "::OnEnable";
end;
// 60 minutes mark
OnEnable:
announce "Thanatos Summoner is open", 0;
hideoffnpc strnpcinfo(3);
end;
OnKill:
.@party_id = getcharid(1);
if (!.@party_id) {
announce strcharinfo(0) + " successfully killed Thanatos", 0;
sleep2 .warp_interval * 60 * 1000;
warp "prontera", 150, 150;
} else {
announce strcharinfo(0) + " of party " + getpartyname(.@party_id) + " successfully killed Thanatos", 0;
sleep2 .warp_interval * 60 * 1000;
warpparty "prontera", 150, 150, .@party_id, true;
}
announce "Thanatos summoner will open again after " + .npc_interval + " minutes", 0;
addtimer .npc_interval * 60 * 1000, strnpcinfo(3) + "::On50MinMark";
end;
OnPCDieEvent:
if (strcharinfo(3) == "thana_boss")
warp "SavePoint", 0, 0;
if (!getmapusers("thana_boss")) {
announce "No one manage to kill Thanatos. Thanatos summoner will open again after " + .npc_interval + " minutes", 0;
killmonsterall "thana_boss";
addtimer .npc_interval * 60 * 1000, strnpcinfo(3) + "::On50MinMark";
}
end;
OnInit:
.npc$ = "[" + strnpcinfo(1) + "]";
setarray .fragments[0], 31996, 4; // <item_id>, <amount>
.size = getarraysize(.fragments);
.npc_interval = 50; // 50 minutes
.warp_interval = 3; // 3 minutes
announce "Thanatos Summoner is open", 0;
end;
}
thana_boss mapflag nowarp
thana_boss mapflag noreturn
thana_boss mapflag nowarpto
summoner.txt