Da ich seid heute angefangen hab mit enum hab ich ne Frage
Wie ersetze ich z.B das GetPVarInt(playerid,"Tode") mit Enum das ich die Tode auslese bei nem Enum
Da ich seid heute angefangen hab mit enum hab ich ne Frage
Wie ersetze ich z.B das GetPVarInt(playerid,"Tode") mit Enum das ich die Tode auslese bei nem Enum
new PlayerInfo[MAX_PLAYERS][pInfo];
enum pInfo
{
pTode,
}
So oder
das kann ich aber ich meinte das ich das Auslesen kann und wiedergeben kann.
Mit SetPVarInt setze ioch das ja und mit GetPVarInt lese ich aus bei PVars aberi ch maein das mit Enum
Unter Register:
format(var, 32, "Tode=%d\n",PlayerInfo[playerid][pTode]);fwrite(hFile, var);
Unter Login:
if( strcmp( key , "Tode" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTode] = strval( val ); }
Unter Update:
format(var, 32, "Tode=%d\n",PlayerInfo[playerid][pTode]);fwrite(hFile, var);
Das meinst du oder ?
//EDIT ist ausm GF
ocmd:warn(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin.");
new pID, grund[64], string[128];
if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,HELLBLAU,"FEHLER: /warn [ID/Name] [Grund]");
format(string,sizeof(string),"Info: Spieler %s wurde verwarnt von %s | Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SendClientMessageToAll(ROT,string);
SetPVarInt(pID,"Warn",GetPVarInt(pID,"Warn")+1);
if(SpInfo[playerid][Warn] = 3)
{
Kick(pID);
}
return 1;
}
z.B Da
Ersetz mal bitte alles was da mit PVar zu tun hat in Enum halt . (P.S Das ist mein Befehl ^^)
ocmd:warn(playerid,params[])
{
new giveplayerid[MAX_PLAYERS];
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
if(PlayerInfo[playerid][pAdmin] == 1)return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin.");
new pID, grund[64], string[128];
if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,HELLBLAU,"FEHLER: /warn [ID/Name] [Grund]");
format(string,sizeof(string),"Info: Spieler %s wurde verwarnt von %s | Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SendClientMessageToAll(ROT,string);
PlayerInfo[giveplayerid][pWarns] += 1;
if(SpInfo[playerid][Warn] = 3)
{
Kick(pID);
}
return 1;
}
Einfach so machen um ein Wert zu erhöhen:
statt:
SetPVarInt(pID,"Warn",GetPVarInt(pID,"Warn")+1);
zu:
SpInfo[pID][sWarn] ++; // oder so ähnliches, variable bitte ändern ;)
Weitere funktionen:
spInfo[pID][sWarn] ++; // Variable wird um 1 erhöht
spInfo[pID][sWarn] --; // Variable wird um 1 vermehrt
spInfo[pID][sWarn] += 12; // Variable wird um 12 erhöht
spInfo[pID][sWarn] -= 15; // Variable wird um 15 vermehrt
Ahh DAnke ShoXx sehr übersichtlich also so
ocmd:warn(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin.");
new pID, grund[64], string[128];
if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,HELLBLAU,"FEHLER: /warn [ID/Name] [Grund]");
format(string,sizeof(string),"Info: Spieler %s wurde verwarnt von %s | Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SendClientMessageToAll(ROT,string);
SpInfo[playerid][Warn] += 1;
if(SpInfo[playerid][Warn] == 3)
{
Kick(pID);
}
return 1;
}
Nur ++ und -- ist doch eigt Unnötig da nehm ich doch lieber += 1 statt ++
Yoa, so gehts auch
aber hier hast du ein fehler:
if(SpInfo[playerid][Warn] == 3)
Hier fragst du ab: WENN ich (Spieler der warn befehl benutzt) 3 Warns habe, dann soll pID gekickt werden, nicht gut oder?^^
Ersetz playerid zu pID dann sollte es perfekt funk.
(Also so:)
if(SpInfo[pID][Warn] == 3)
/e noch ein fehler entdeckt
von: SpInfo[playerid][Warn] += 1;
zu:
SpInfo[pID][Warn] += 1;
// Wieder pID fehler
Ja blöde ist hab heute erst mit Enum Angefangen also richtig und habs vergessen hehe aber danke für die Aufmerksamkeit
//edit:
Und wie ersetze ich das?
ocmd:stats(playerid,params[])
{
new string[128];
format(string,sizeof(string),"Name:[%s]\nKills:[%i] | Geld:[%i]\nWarns:[%i]\nAdminlevel:[%i]\nVIP Rank:[%i]",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Geld"),GetPVarInt(playerid,"Warn"),GetPVarInt(playerid,"Adminlevel"),GetPVarInt(playerid,"VIP"));
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistiken",string,"Fertig","Beenden");
}
Hast antwort per PN bekommen
Jop und habs auch schon gemacht Danke nochmal an ShoXx
Klappt nun =)
klingt scheiße, sehr spät anzufangen auf enums umzuschreiben oder ?
Hm ne habs nun umgeschrieben waren ja nur 1,3k Zeilen ...