summaryrefslogtreecommitdiff
path: root/npc/003-13
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-05-22 00:19:38 -0300
committerJesusaves <cpntb1@ymail.com>2019-05-22 00:19:38 -0300
commitbe0f5e53ff8f5f81cf0bee0637fed4e77802f4ed (patch)
tree06dc2901768d1abc17a0143d404129a0b3f22792 /npc/003-13
parentabfa63f04a8d3fe4463c91f4cbcf7b35ac1d814c (diff)
downloadserverdata-be0f5e53ff8f5f81cf0bee0637fed4e77802f4ed.tar.gz
serverdata-be0f5e53ff8f5f81cf0bee0637fed4e77802f4ed.tar.bz2
serverdata-be0f5e53ff8f5f81cf0bee0637fed4e77802f4ed.tar.xz
serverdata-be0f5e53ff8f5f81cf0bee0637fed4e77802f4ed.zip
UDT Challenge. I got up to wave 14, and you?
Diffstat (limited to 'npc/003-13')
-rw-r--r--npc/003-13/arnea.txt97
1 files changed, 61 insertions, 36 deletions
diff --git a/npc/003-13/arnea.txt b/npc/003-13/arnea.txt
index 49f1da0c4..6ecc6710d 100644
--- a/npc/003-13/arnea.txt
+++ b/npc/003-13/arnea.txt
@@ -39,7 +39,7 @@ L_Manage:
mesn;
select
l("warp back"),
- l("spawn challenge monster! How far can you go?"),
+ rif(!'UDTf, l("begin UDT Challenge")),
l("cancel");
switch (@menu)
@@ -48,41 +48,27 @@ L_Manage:
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));
+ mesc l("spawn challenge monster! How far can you go?"), 2;
+ mesc l("The UDT Challenge will create a Gladiator Monster which should somehow emulate a PvP experience.");
+ mesc l("Defeating it will advance the round. How far can you survive?");
+ next;
+ mesc l("Really begin the UDT Challenge?");
+ if (askyesno() == ASK_NO)
+ break;
+
+ npctalk l("UDT Challenge, @@ began the fight!", strcharinfo(0));
+ // Save data
+ 'udt_blv=BaseLevel;
+ 'udt_bhp=MaxHp;
+ 'udt_Str=readparam(bStr);
+ 'udt_Agi=readparam(bAgi);
+ 'udt_Vit=readparam(bVit);
+ 'udt_Int=readparam(bInt);
+ 'udt_Dex=readparam(bDex);
+ 'udt_Luk=readparam(bLuk);
+
+ // Begin the fight
+ doevent instance_npcname(.name$)+"::OnGladius";
closeclientdialog;
break;
case 3:
@@ -90,6 +76,45 @@ L_Manage:
}
close;
+OnGladius:
+ sleep(800);
+ .@mg=monster(instance_mapname("003-13"), 38, 32, "Gladiator", TestingMob, 1, instance_npcname(.name$)+"::OnGladius");
+ setunitdata(.@mg, UDT_LEVEL, 'udt_blv+'UDTf);
+ setunitdata(.@mg, UDT_MAXHP, 'udt_bhp+('UDTf*45));
+ setunitdata(.@mg, UDT_HP, 'udt_bhp+('UDTf*45));
+
+ setunitdata(.@mg, UDT_STR, 'udt_Str+('UDTf*rand(1,3)));
+ setunitdata(.@mg, UDT_AGI, 'udt_Agi+('UDTf*rand(1,3)));
+ setunitdata(.@mg, UDT_VIT, 'udt_Vit+('UDTf*rand(1,3)));
+ setunitdata(.@mg, UDT_INT, 'udt_Int+('UDTf*rand(1,3)));
+ setunitdata(.@mg, UDT_DEX, 'udt_Dex+('UDTf*rand(1,3)));
+ setunitdata(.@mg, UDT_LUK, 'udt_Luk+('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*2)+('UDTf*4));
+ setunitdata(.@mg, UDT_ATKMAX, .@blv+(.@str*2)+.@luk+('UDTf*6));
+
+ setunitdata(.@mg, UDT_DEF, .@blv+.@vit+('UDTf*2));
+ setunitdata(.@mg, UDT_MDEF, .@blv+.@int+('UDTf*2));
+ setunitdata(.@mg, UDT_HIT, (.@blv*2)+.@dex+('UDTf*4));
+ 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 ("UDT Challenge, wave " + 'UDTf + "!");
+ end;
+
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, Darkelm);