mir ist gerade beim Coden meines UI aufgefallen, dass jedes Gruppenmitglied in der Lage ist die EXP-Verteilung zu ändern, obwohl diese Option eigentlich nur dem Gruppenleader zur Verfügung stehen sollte.
Ist aber ganz easy behoben.
Öffnet die Datei input_main.cpp und checkt in der Methode CInputMain::PartyParameter auch danach, ob der als Argument übergebene Charakter auch der Gruppenleader ist.
Code:
void CInputMain::PartyParameter(LPCHARACTER ch, const char* c_pData) { TPacketCGPartyParameter* p = (TPacketCGPartyParameter *) c_pData; if (ch->GetParty() && ch->GetParty()->GetLeaderPID() == ch->GetPlayerID()) ch->GetParty()->SetParameter(p->bDistributeMode); }
YMIR developers forgot to check if the user that tries to change the XP distribution settings has the permission to do so (-> is the groupleader). Fix above adds a check if the users character == groupleader.
- Socialized