Damit es beim Client geupdated wird, wird im Source ComputePoints und SkillLevelPacket ausgeführt.
- #ifdef ENABLE_HORSE_LEVELING
- if (item->GetVnum() == 50050)
- {
- if (number(1, 100) <= 50)
- {
- SetHorseLevel(GetHorseLevel() + 1);
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT_CONVERT_LANGUAGE(GetLanguage(), "Successfully raised your Horse Level."));
- ComputePoints(); /////
- SkillLevelPacket(); /////
- }
- else
- {
- // Failed
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT_CONVERT_LANGUAGE(GetLanguage(), "Failed, you haven't raised your Horse Level."));
- }
- }
- #endif
Alles anzeigen
Warum es beim spamen mit 'Dieser Effekt ist bereits aktiv.' zurückgegeben wird liegt höchst wahrscheinlich daran das deine Item VNUM in die Range des If Checks direkt unten drunter fällt. Anders kann ich es mir nicht erklären, da es bei mir ohne Probleme funktioniert.
Danke dir, das mit dem aktualisieren funktioniert jetzt.
'Dieser Effekt ist bereits aktiv.' - hat anscheinend mit dem SubType zu tun. Wenn ich diesen auf 10 ändere, kommt die Meldung zwar nicht mehr, aber dann verschwindet die PM nicht mehr beim lesen, eventuell eine Idee welche SubType hier passen wäre?
Des Weiteren hab ich versucht, ein Limit vom HorseLevel auf 21 zu setzen, damit man nicht PM's lesen wenn, wenn die Stufe bereits auf Max ist. Leider funktioniert das so nicht wie ich das umgesetzt habe..
Eventuell kann hier jemand kurz drüber schauen und sagen was ich falsch gemacht habe?
- #ifdef ENABLE_HORSE_LEVELING
- if (item->GetVnum() == 50050)
- {
- if ((GetHorseLevel()) <21 )
- if (number(1, 100) <= 50)
- {
- SetHorseLevel(GetHorseLevel() + 1);
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT_CONVERT_LANGUAGE(GetLanguage(), "Success, you have raised your Horse Level."));
- ComputePoints(); /////
- SkillLevelPacket(); /////
- }
- else
- {
- // Failed
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT_CONVERT_LANGUAGE(GetLanguage(), "Failed, you haven't raised your Horse Level."));
- }
- else
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT_CONVERT_LANGUAGE(GetLanguage(), "Your Horse is already on the maximum Level."));
- return false;
- }
- }
- #endif
Alles anzeigen