summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-05-21 10:33:04 -0300
committerJesusaves <cpntb1@ymail.com>2019-05-21 10:33:04 -0300
commita237e7499e702a63b5f3331ca2f1fe8d88d9201f (patch)
tree2c9872a2e1017e80f2fbad38bf12a91c795f00ed
parentad98ed3dc56a4e56ae928b3055a35b83f473abd6 (diff)
downloadserverdata-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.txt47
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;