diff options
Diffstat (limited to 'npc/soren/main.txt')
-rw-r--r-- | npc/soren/main.txt | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/npc/soren/main.txt b/npc/soren/main.txt index 922c2d890..fa76cf294 100644 --- a/npc/soren/main.txt +++ b/npc/soren/main.txt @@ -71,6 +71,8 @@ soren,105,92,0 script Soren's Fountain NPC_NO_SPRITE,{ // Main menu mes col("Attempt to disarm the singularity?", 9); if (askyesno() == ASK_YES) { + if (.casterId == getcharid(3)) + @soren_penalty=@soren_penalty+rand(10, 15); .casterId=getcharid(3); .st=1; npctalk l("@@ started disarm process. Please stand by.", strcharinfo(0)); @@ -108,6 +110,8 @@ OnTimer31000: .@val=.@val-10; if (getvariableofnpc(.casterId, "Soren's Gizmo") == .casterId) .@val=.@val-10; + if (@soren_penalty > 0) // Weak protection against EXP farming. + .@val=.@val-@soren_penalty; percentheal .@val, -15; @@ -165,6 +169,7 @@ OnTimer31000: // If we're done with waves if (.st >= 7) { + getexp rand(1, 100), rand(1, 10); .lifetime=gettimetick(2)+300+rand(0, 60); npctalk l("Disarmed with success for: @@", FuzzyTime(.lifetime, 2, 2)); stopnpctimer; .st=0; @@ -212,6 +217,8 @@ soren,104,143,0 script Soren's Lake NPC_NO_SPRITE,{ // Main menu mes col("Attempt to disarm the singularity?", 9); if (askyesno() == ASK_YES) { + if (.casterId == getcharid(3)) + @soren_penalty=@soren_penalty+rand(10, 15); .casterId=getcharid(3); .st=1; npctalk l("@@ started disarm process. Please stand by.", strcharinfo(0)); @@ -249,6 +256,8 @@ OnTimer30900: .@val=.@val-10; if (getvariableofnpc(.casterId, "Soren's Gizmo") == .casterId) .@val=.@val-10; + if (@soren_penalty > 0) // Weak protection against EXP farming. + .@val=.@val-@soren_penalty; percentheal .@val, -15; @@ -351,6 +360,8 @@ soren,107,37,0 script Soren's Gizmo NPC_NO_SPRITE,{ // Main menu mes col("Attempt to disarm the singularity?", 9); if (askyesno() == ASK_YES) { + if (.casterId == getcharid(3)) + @soren_penalty=@soren_penalty+rand(10, 15); .casterId=getcharid(3); .st=1; npctalk l("@@ started disarm process. Please stand by.", strcharinfo(0)); @@ -388,6 +399,8 @@ OnTimer31200: .@val=.@val-10; if (getvariableofnpc(.casterId, "Soren's Fountain") == .casterId) .@val=.@val-10; + if (@soren_penalty > 0) // Weak protection against EXP farming. + .@val=.@val-@soren_penalty; percentheal .@val, -15; |