diff options
author | Jesusaves <cpntb1@ymail.com> | 2019-05-21 10:33:04 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2019-05-21 10:33:04 -0300 |
commit | a237e7499e702a63b5f3331ca2f1fe8d88d9201f (patch) | |
tree | 2c9872a2e1017e80f2fbad38bf12a91c795f00ed | |
parent | ad98ed3dc56a4e56ae928b3055a35b83f473abd6 (diff) | |
download | serverdata-a237e7499e702a63b5f3331ca2f1fe8d88d9201f.tar.gz serverdata-a237e7499e702a63b5f3331ca2f1fe8d88d9201f.tar.bz2 serverdata-a237e7499e702a63b5f3331ca2f1fe8d88d9201f.tar.xz serverdata-a237e7499e702a63b5f3331ca2f1fe8d88d9201f.zip |
Arnea's UDT Challenge - How many rounds can you go in it?
It's just an experiment with dynamic monster data changing.
-rw-r--r-- | npc/003-13/arnea.txt | 47 |
1 files changed, 44 insertions, 3 deletions
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; |