Seite 1 von 1

Was nettes 0)

BeitragVerfasst: Di 09 Mär, 2004 12:00
von Berion
The Dynamics of a Bad Pull



Background:

So one day after a particularly bad pull and nasty wipe in a GoD Expedition I decided to set out to discover what dynamics were in place during a bad pull. After much searching and researching I finally unearthed the actual code that is called on the Sony servers during such a pull.

I am sure many of you are not programmers but Sony's code is pretty easy to follow and the developer has kindly placed comments in places to clarify things. The code gives a great insight into what goes on server side when you experience a bad pull.

The Code:

Sub Bad_Pull

Mob.Area_Effect_Agro = ON
Mob.Agro_Unrelated_Mobs = TRUE

Mob.Target = Mob.Friends(ALL)
Mob.Friends(ALL).Agro = 220%

Mobs(ALL).Rampage.Mode = ON
Mobs(ALL).Flurry.Mode = ON

Raid.Rangers.Instant_Death_Mode = ALWAYS_ON
***** Dev Note: Don't really need this line as this is the default mode for the Ranger Class.... *****

Mob.Move_Mode = FULL_TRAIN
Mob.Attack_Direction = MULTIPLE_RANDOM

Train.Destination = RAID_CAMP
Train.Wipe_Mode = ENTIRE_RAID
Train.Go

Do Until Raid.IsWiped = TRUE

Target Raid.Rangers(ALL)
Summon Raid.Rangers(ALL)
Kill Raid.Rangers(ALL)
**** Dev Note: Snicker ;-) ****

Do Until Raid.Clerics = 0
Target Raid.Cleric
Summon Raid.Cleric
Kill Raid.Cleric
Loop

If Raid.Wizard.Casting = EVAC_TYPE_SPELL then Spell.Fizzle_Mode = TRUE
Kill Raid.Wizard
If Raid.Druid.Casting = EVAC_TYPE_SPELL then Spell.Fizzle_Mode = TRUE
Kill Raid.Druid
**** Dev Note: Mwuhahaha Time to die a Dr00d! ****

If Raid.Monk.FeignDeath = TRUE Then CastSpell.Target = Raid.Monk
Kill Raid.Monk
If Raid.Necro.FeignDeath = TRUE Then CastSpell.Target = Raid.Necro
Kill Raid.Necro
If Raid.ShadowKnight.FeignDeath = TRUE Then CastSpell.Target = Raid.ShadowKnight
Kill Raid.ShadowKnight

If Rand(100) > 50 Then
Mob.Gate
Mob.HP = 100%
Mob.Buff = ALL
Mob.Agro_Unrelated_Mobs = TRUE
Mob.Destination = RAID_CAMP
Mob.Go
End If

Target Raid.Casters(ALL)
Summon Raid.Casters(ALL)
Kill Raid.Casters(ALL)

If Raid.Player.IsDead = FALSE Then Summon Raid.Player
Kill Raid.Player

Raid.IsWiped = TRUE

End Loop

**** Dev Note: All dead now! Mwuhahaha ****

Set Zone.Summon_Corpse = FALSE
Set Mobs(ALL).Corpse_Camp_Mode = ON
Set Mobs(ALL).See_Invis = TRUE
Set Mobs(ALL).See_SOS = TRUE

IF Raid.Player.Can_Rez = TRUE Then Raid.Player.Force_Link_Dead = TRUE

Tell Each Raid.Player "You have entered - " & HOME_ZONE & " LOADING PLEASE WAIT...."

Raid.Players(ALL).XP = Raid.Players(ALL).XP - (10000 * Rand(100))

Say SystemWide "Grettings Norrath! All servers will be coming down in 5 minutes for an update. The estimated downtime will be 7 hours. Please plan accordingly!"

Player.Force_Full_Repatch = TRUE
PatcherServer.Mode = OFF_LINE

Server.Players(ALL).Kick = TRUE

Goto Calculate_Profits

End Sub

BeitragVerfasst: Di 09 Mär, 2004 12:31
von Chili
Es fehlt noch:
var(Dev)=Minyatur

:twisted:

BeitragVerfasst: Di 09 Mär, 2004 12:59
von Minyatur Laurelin
pfft ... ich kanns nicht gewesen sein, ich schreib doch keine Kommentare in den code rein :)
Dann könnts ja jeder lesen :D

BeitragVerfasst: Mi 10 Mär, 2004 10:38
von Sanyarin
ach fuer nen raid whipe braucht man net mal minya ... seit ich illu human hab schaff ich das auch ganz gut :D