// TMW2 Scripts
// Author:
// 4144
// Jesusalva
// Description:
// Arena for Duels and PVP (temporary map)
003-13,29,29,0 script Arnea#003-13 NPC_ELF_F,{
/*
// FIXME
warp "003-10", 22, 62;
close;
*/
if (is_staff()) {
mes "npc name: " + .name$;
mes "npc ext name: " + .extname$;
mes "npc id: " + .id;
mes "npc parent id: " + .parent;
mes "npc src id: " + .srcId;
mes "char id 3: " + getcharid(3);
mes "instance id: " + instance_id();
mes "Map ID: " + instance_mapname("003-13");
}
if (instance_id() >= 0) {
goto L_Manage;
} else {
// Non staff and on 003-13? That's a bug!
if (!is_staff()) {
atcommand "@request Hey hey hey, player found in 003-13 - regular map! Report this to Jesusalva at once!";
warp "Save", 0, 0;
close;
}
mes "npc not in instance";
}
close;
L_Manage:
mesn;
select
l("warp back"),
l("spawn challenge monster! How far can you go?"),
l("cancel");
switch (@menu)
{
case 1:
warp "003-10", 22, 62;
break;
case 2:
.@mg=monster("003-13", 38, 32, "Gladiator", TestingMob, 1);
setunitdata(.@mg, UDT_LEVEL, BaseLevel+@UDTf);
setunitdata(.@mg, UDT_HP, MaxHp+(@UDTf*45));
setunitdata(.@mg, UDT_MAXHP, MaxHp+(@UDTf*45));
setunitdata(.@mg, UDT_STR, readparam(bStr)+(@UDTf*rand(1,3)));
setunitdata(.@mg, UDT_AGI, readparam(bAgi)+(@UDTf*rand(1,3)));
setunitdata(.@mg, UDT_VIT, readparam(bVit)+(@UDTf*rand(1,3)));
setunitdata(.@mg, UDT_INT, readparam(bInt)+(@UDTf*rand(1,3)));
setunitdata(.@mg, UDT_DEX, readparam(bDex)+(@UDTf*rand(1,3)));
setunitdata(.@mg, UDT_LUK, readparam(bLuk)+(@UDTf*rand(1,3)));
// Now, I don't have this info from player, so...
// We must generate it
.@str=getunitdata(.@mg, UDT_STR);
.@agi=getunitdata(.@mg, UDT_AGI);
.@vit=getunitdata(.@mg, UDT_VIT);
.@int=getunitdata(.@mg, UDT_INT);
.@dex=getunitdata(.@mg, UDT_DEX);
.@luk=getunitdata(.@mg, UDT_LUK);
.@blv=getunitdata(.@mg, UDT_LEVEL);
// And then fill it
setunitdata(.@mg, UDT_ATKRANGE, any(1,1,1,2));
setunitdata(.@mg, UDT_ATKMIN, .@blv+.@str+(@UDTf*4));
setunitdata(.@mg, UDT_ATKMAX, .@blv+.@str+.@luk+(@UDTf*6));
setunitdata(.@mg, UDT_DEF, .@blv+.@vit+(@UDTf*2));
setunitdata(.@mg, UDT_MDEF, .@blv+.@int+(@UDTf*2));
setunitdata(.@mg, UDT_HIT, .@blv+.@dex+(@UDTf*2));
setunitdata(.@mg, UDT_FLEE, .@blv+.@agi+(@UDTf*2));
setunitdata(.@mg, UDT_PDODGE, min(30, .@luk/10+(@UDTf/3)));
setunitdata(.@mg, UDT_CRIT, (.@blv/2)+.@luk+(@UDTf*2));
@UDTf+=1;
npctalk l("UDT Challenge, wave @@! @@ spawned a fighter!", @UDTf, strcharinfo(0));
closeclientdialog;
break;
case 3:
break;
}
close;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, Darkelm);
setunitdata(.@npcId, UDT_HEADMIDDLE, CopperArmor);
setunitdata(.@npcId, UDT_HEADBOTTOM, JeansChaps);
setunitdata(.@npcId, UDT_WEAPON, RockKnife);
setunitdata(.@npcId, UDT_HAIRSTYLE, 14);
setunitdata(.@npcId, UDT_HAIRCOLOR, 18);
.sex = G_FEMALE;
.distance = 9;
end;
OnInstanceInit:
.@npcId = getnpcid(instance_npcname(.name$));
setunitdata(.@npcId, UDT_HEADTOP, Darkelm);
setunitdata(.@npcId, UDT_HEADMIDDLE, CopperArmor);
setunitdata(.@npcId, UDT_HEADBOTTOM, JeansChaps);
setunitdata(.@npcId, UDT_WEAPON, RockKnife);
setunitdata(.@npcId, UDT_HAIRSTYLE, 14);
setunitdata(.@npcId, UDT_HAIRCOLOR, 18);
end;
}