Servus Leute,
Ich habe mehrere Fragen:
1. Wie mache ich , dass mein Skin beim offline gehen gespeichert wird und wenn ich on komme er geladen wird ? hier mein Quellcode
stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Skin",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Paytime",GetPVarInt(playerid,"Paytime"));
dini_IntSet(Spielerdatei,"Wantedlevel",GetPlayerWantedLevel(playerid));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Fraktionsrang",GetPVarInt(playerid,"Fraktionsrang"));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Job",GetPVarInt(playerid,"Job"));
dini_IntSet(Spielerdatei,"JobAktiv",0);
dini_IntSet(Spielerdatei,"JobBisPayday",GetPVarInt(playerid,"JobBisPayday"));
dini_IntSet(Spielerdatei,"Knast",GetPVarInt(playerid,"Knast"));
dini_IntSet(Spielerdatei,"KnastTime",GetPVarInt(playerid,"KnastTime"));
dini_IntSet(Spielerdatei,"aKnast",GetPVarInt(playerid,"aKnast"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
}
return 1;
}
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Skin",dini_Int(Spielerdatei,"Skin")); // Wenn ich hier SetPlayerSkin mache passiert nichts ---------------------------------
SetPVarInt(playerid,"Paytime",dini_Int(Spielerdatei,"Paytime"));
SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"Wantedlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Fraktionsrang",dini_Int(Spielerdatei,"Fraktionsrang"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Knast",dini_Int(Spielerdatei,"Knast"));
SetPVarInt(playerid,"KnastTime",dini_Int(Spielerdatei,"KnastTime"));
SetPVarInt(playerid,"Job",dini_Int(Spielerdatei,"Job"));
SetPVarInt(playerid,"JobAktiv",dini_Int(Spielerdatei,"JobAktiv"));
SetPVarInt(playerid,"JobBisPayday",dini_Int(Spielerdatei,"JobBisPayday"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
Kick(playerid);
}
SetPVarInt(playerid,"aKnast",dini_Int(Spielerdatei,"aKnast"));
SetPVarInt(playerid,"loggedin",1);
return 1;
}
2. Die Fraktions ID von PD und von der Bundeswehr ist 6 wie mach ich dann zB , dass wenn ich ein befehl wie /umkleide machen kann , dass beide Fraktionen das benutzen können ?!
//FRAKBEFEHLE---------------------------------------------------------------------
ocmd:suspect(playerid,params[])
{
if(!isPlayerInFrakt(playerid,1 || 6))return SendClientMessage(playerid,ROT,"Du bist kein Beamter."); // Ich weiß , dass das an dieser Zeile Liegt hab aber kA wie man das jetzt genau macht -----------------------------------------------------------------------------------------------
new otherid,string[128],reason[64],amount;
if(sscanf(params,"uds",otherid,amount,reason))return SendClientMessage(playerid,GRÜN,"Benutzung: /suspect [ID] [Wanteds] [Grund]");
if(otherid == INVALID_PLAYER_ID)return SendClientMessage(playerid,DUNKELROT,"Der Spieler ist nicht Online.");
SetPlayerWantedLevel(otherid,GetPlayerWantedLevel(otherid)+amount);
format(string,sizeof(string),"Beamter %s hat dir %d Wanteds gegeben. Grund: %s",SpielerName(playerid),amount,reason);
SendClientMessage(otherid,DUNKELROT,string);
format(string,sizeof(string),"Du hast %s %d Wanteds gegeben. Grund: %s",SpielerName(otherid),amount,reason);
SendClientMessage(playerid,GELB,string);
return 1;
}
3. Frage
Ich benute momentan den Befehl /pddauf und /pddzu für eine tür aufzumachen wie kann ich das genau machen , dass ich nur /pdd verwende für auf und zu ?! Also dass wenn die Tür zu ist und ich /pdd sie aufgeht und wenn ich nochmal /pdd mache zu geht .
Mein jetziger Quellcode:
new pdd;
pdd = CreateObject(2945,239.6000100,117.4000000,1003.5000000,0.0000000,0.0000000,90.0000000);
if (strcmp("/pddauf", cmdtext,true) == 0)
{
if(!IsPlayerInRangeOfPoint(playerid,5,239.6000100,117.4000000,1003.5000000)) return SendClientMessage(playerid,GRAU,"Du bist nicht in Reichweite!");
if(GetPVarInt(playerid,"Fraktion")!=1)
{
SendClientMessage(playerid,ROT,"Du bist kein Cop!");
return 1;
}
else
{
SendClientMessage(playerid,GELB,"Du hast die PD-Tür geöffnet. Denk daran sie zu schließen!");
MoveObject(pdd,239.6000100,117.4000000,1003.5000000-7,2.0); //object(kmb_netting) (2)
return 1;
}
}
if (strcmp("/pddzu", cmdtext,true ) == 0)
{
if(!IsPlayerInRangeOfPoint(playerid,5,239.6000100,117.4000000,1003.5000000)) return SendClientMessage(playerid,GRAU,"Du bist nicht in Reichweite!");
if(GetPVarInt(playerid,"Fraktion")!=1)
{
SendClientMessage(playerid,ROT,"Du bist kein Cop!");
return 1;
}
else
{
SendClientMessage(playerid,GELB,"Du hast die PD-Tür geschlossen. Danke!");
MoveObject(pdd,239.6000100,117.4000000,1003.5000000,2.0); //object(kmb_netting) (2)
return 1;
}
}
Danke bin auch in Skype unter : derpr0 erreichbar