ganz oben wo den sonst ?
Löschen, denn der Code den ich dir geschickt habe, reicht. Den fügst du einfach ganz unten in dein Script ein, und dann kannst du problemlos mit sscanf arbeiten.
ganz oben wo den sonst ?
Löschen, denn der Code den ich dir geschickt habe, reicht. Den fügst du einfach ganz unten in dein Script ein, und dann kannst du problemlos mit sscanf arbeiten.
Du hast da irgendwie alles durcheinander, oder sehe ich das falsch, siehe hier:
SetPVarInt(pID,"Respektpunkt",playerid);
Du setzt in der Datei für den Spieler "pID" in Respektpunkt die playerid vom Spieler "playerid"?
Füg das mal richtig ein, Quellcode! So kann man doch gar nichts lesen
Nein, so:
SetTimerEx("PersoZeit",600000,0,"d",playerid);
So wird jedes mal für den Spieler "playerid" der Timer 10 Minuten laufen, wenn er sich einen Personalausweis kauft.
Es wird aber nach den 10 Minuten nicht wiederholt, da es auf 0 / false steht.
Würde es auf 1 / true stehen, würde es nach den 10 Minuten neu anfangen.
Das muss außerhalb eines Publics. Einfach ganz unten im Script einfügen, das ocmd:v...
if(strcmp(cmd, "/givesfpass", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast nicht die Rechte!");
new pID,sendernamed[MAX_PLAYER_NAME],giveplayerd[MAX_PLAYER_NAME];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1," /givesfpass [playerid / Name]");
if(IsPlayerConnected(pID))
{
GetPlayerName(playerid, sendernamed, sizeof(sendernamed));
GetPlayerName(pID, giveplayerd, sizeof(giveplayerd));
format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",giveplayerid);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendernamed);
SendClientMessage(giveplayerid, -1, string);
PlayerInfo[pID][pSFPass] = 1;
return 1;
}
return 1;
}
Versuch das mal, habe einfach "sendername" und "giveplayer" umbenannt in "sendernamed" und "giveplayerid".
/e
Zeig die anderen Zeilen mal.
Aber wenn du mal 888 Millisekunden in Minuten umrechnest, hast du als Ergebnis 0.01.
/e
Versuch das mal mit 600000 und anstatt "u" einfach ein "d" oder "i".
Ach Füg den Code mal in dein Script, und kompiliere dann noch einmal
/e
http://wiki.sa-mp.com/wiki/Sscanf_code
Ich weiß nicht, aber "888" hast du in Millisekunden angegeben.
Das sind 0,01 Minuten, kein Wunder
10 Minuten wären: 600000
Dann brauchst du das sscanf Include. Lad dir das mal runter, einfach Googeln.
Ja ich sehe da auf dem ersten Blick kein Fehler.
Scott_Mitchell: Dankeschön, passt ja gut auf
So etwas kann man mal schon übersehen, wenn man so was umschreibt.
Versuch das mal so:
if(strcmp(cmd, "/givesfpass", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast nicht die Rechte!");
new pID,sendername[MAX_PLAYER_NAME],giveplayer[MAX_PLAYER_NAME];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1," /givesfpass [playerid / Name]");
if(IsPlayerConnected(pID))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(pID, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",pID);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendername);
SendClientMessage(giveplayerid, -1, string);
PlayerInfo[pID][pSFPass] = 1;
return 1;
}
return 1;
}
Ist bisschen anders als deins, aber nun mit sscanf Abfrage, damit du die Playerid reinschreiben kannst
Kannst du uns dein Problem genauer erklären? Wie wissen ja gar nicht, was bei dir falsch ist, außer der Fehlercode.
Erstelle den bitte im Quellcode.
if(strcmp(cmd, "/givesfpass", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 4)
{
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
PlayerInfo[giveplayerid][pSFPass] = 1;
return 1;
}
}
return 1;
}
Woher bekommst du denn "giveplayer" und "sendername"?
SetTimerEx("PersoZeit",888,0,"u",playerid);
Das ist falsch, benutze "d" oder "i". Aber u ist falsch, da "playerid" eine Zahl ist.
5 Grafiken kann man ja mal umsonst vergeben...
Meinst du, wenn die aber gut aussehen sollen, dann wird da bestimmt einzige Zeit reingesteckt, und daher meine ich sollte es auch eine Gegenleistung vergeben werden.
Nach einer Abfrage, also am Ende von einer Abfrage darf nie ein Semikolon stehen.
Alles weitere über ein Semikolon kannst du hier nachlesen.
Du musst die Bank neu mappen / neu hinsetzen, da du es als Objekt brauchst, um die Textur ändern zu können.
/e
Man kann an den Objekten nur die Textur ändern, wenn es auch ein Objekt ist, also im Script als Objekt eingefügt wurde, ansonsten nicht.
Zeig mal wie du es gemacht hast, oder machen würdest.