diff options
author | Jesusaves <cpntb1@ymail.com> | 2019-05-22 00:19:38 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2019-05-22 00:19:38 -0300 |
commit | be0f5e53ff8f5f81cf0bee0637fed4e77802f4ed (patch) | |
tree | 06dc2901768d1abc17a0143d404129a0b3f22792 /npc/003-13 | |
parent | abfa63f04a8d3fe4463c91f4cbcf7b35ac1d814c (diff) | |
download | serverdata-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.txt | 97 |
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); |