From a237e7499e702a63b5f3331ca2f1fe8d88d9201f Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Tue, 21 May 2019 10:33:04 -0300 Subject: Arnea's UDT Challenge - How many rounds can you go in it? It's just an experiment with dynamic monster data changing. --- npc/003-13/arnea.txt | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) (limited to 'npc/003-13/arnea.txt') diff --git a/npc/003-13/arnea.txt b/npc/003-13/arnea.txt index 7d2ec5f42..49f1da0c4 100644 --- a/npc/003-13/arnea.txt +++ b/npc/003-13/arnea.txt @@ -37,14 +37,55 @@ L_Manage: mesn; - switch (select( - "warp back", - "cancel")) + 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; -- cgit v1.2.3-70-g09d2