Quote:
Originally Posted by x-AcT
Das Delay hat absolut nichts mit dem Einsparen von Rechenleistung zutun, sondern erzeugt sogar eine Zusatzlast...
|
Was eigentlich mit Absicht so gemacht worden ist.
Code:
// check use item multicast delay exploit cast (spam)
if (player.isCasting()) {
// PacketSendUtility.sendMessage(this.getOwner(),
// "You must wait until cast time finished to use skill again.");
player.getController().cancelCurrentSkill();
// On retail the item is cancelling the current skill and then procs normally
// return;
}
Und noch ein bisschen Dokumentation. Den es geht hier nicht um desto länger ist der Dauer von der Castingtime, desto mehr Ressource verbraucht sondern genau das Gegenteil. Desto öfters ist der/ein neues Prozess initialisiert.
Zum Beispiel:
100 Spieler enchanten. In 60 sek. werden 60 *100 Prozesse initialisiert
100 Spieler enchanten. In 60 sek. werden 30 *100 Prozesse initialisiert
The Cast Bar and Lag
The cast bar is a representation of how far along in the spell cast/channel the character is. The length of the cast bar is determined by the base cast time of the spell, flat cast time reductions and application of spell haste, (whether from talents, gear or buff/debuffs) in that order.
There are several copies of the cast bar maintained at any given time: one on the client machine which controls the caster, one on the World of Warcraft server and copies of the cast bar are distributed from the server to other clients' machines as they need.
Following is a brief nontechnical explanation of how the initiation of a cast is handled by World of Warcraft:
The client initiates an spell cast
The client locks out the majority of the actions on the character's action bars and sends a message to the server saying that a spell cast has been initiated.
The server receives the message and checks to see if another action is being performed. If not, it begins counting down the castbar; the server sends a message to the client that it has received notice of the action being taken. Otherwise, the server rejects the action
The client receives notice that the server has received its initiation of a spellcast and starts rendering the cast bar if the action has been accepted.
So, if one attempts to perform an action while casting, the client will pass that action on to the server, regardless of the casting state as registered by the client. Previously, the client could reject actions based on the state of its casting bar. This led to the filling up of macro slots with macros that altered the state of the client-side cast bar to account for latency. Currently, however, these are not necessary. However, it is important to activate your spells at the right time.
If one initiates one's casts late (that is, after the spell effect is rendered on the client) this has the same effect as adding approximately one's latency to the cast time of one's spells. This is due to the manner in which the rendered castbar lags the actual start of spell cast by one's latency. When the spell is shown to be going off on the client side, it has gone off server side earlier by the value of one's latency, so waiting for the spell effect animation will cause one to lose dps.
If one initiates an action too early, the action may be just about to complete server side, but the server will send a notice rejecting the action back to the client. This notice will take the same amount of time as one's latency to get back to the client. During this time, the action might have been completed server side but one will be unable to act until the client gets the message from the server to rescind the global cooldown and allow initiation of another action. The upshot of this is that mashing the button while you wait for the cast bar to fill up will, on average, add latency to your cast time.
Hence, it is important to initiate your next action at the right time while your client shows that you are casting. The proper method for casting would be to wait until the cast bar indicator reaches the point where the time left until completion of the cast is equal to your latency and then mash the button you use to activate your spell. A good castbar mod will tell you when that time is, which will reduce, if not eliminate, loss in dps/hps due to latency.