SetPlayerSkin(playerid, dini_Int(Spielerdatei, "Skin"));
unter deinem Account Laden stock
Edit: Huch, das haste ja drin hmm, mom
SetPlayerSkin(playerid, dini_Int(Spielerdatei, "Skin"));
unter deinem Account Laden stock
Edit: Huch, das haste ja drin hmm, mom
Sorry wenn ich das sage, aber das habe ich bereits, und es lädt keinen Skin. Speichern tut es ihn.
Hast du das auch unter OnPlayerSpawn drin?
Ich habe es unter AccountLaden, da wo es hin gehört.
new name2[MAX_PLAYER_NAME], string[128]; // Da der Name ja ein String ist, muss auch die Länge definiert werden, in diesem Fall die maximale Namenslänge
GetPlayerName(playerid, name2, sizeof(name2)); // Namen auslesen und in name2 speichern
format(string, sizeof(string), "Beamter %s ist nun im Dienst", name2); // string formatieren
Und wie bringe ich das mit ein wenn die Farbe wieder auf die vorherige Farbe zurückgesetzt wird wenn er den selben Befehl nochmal eingibt?
Am Anfang des Scriptes die Variable
new dienst[MAX_PLAYERS];
erstellen (MAX_PLAYERS, da es für jeden Spieler einzeln gespeichert sein soll).
Bei OnPlayerConnect
dienst[playerid] = 0;
und dann bei /dienst:
if(!dienst[playerid]) // ! bedeutet, dass es gleich 0 ist
{
// Hier die Sachen schreiben, um in den Dienst zu gehen
}
else
{
// Hier die Sachen, um aus dem Dienst zu gehen
}
MfG
ATzeGER_
Danke für die Korrektur, nun wird der Name auch ausgelesen.
Im Umkleideraum bekomme ich aber 2 mal hinternander die Dienstmeldung und wenn ich den Befehl nochmal eingebe, wechselt er die Farbe und Skin nicht und ich bekomm keine Meldung das ich aus dem Dienst bin.
Bin mir relativ sicher das es an einem return 1 liegt, nur weiß ich nicht wie ich das Problem selbst beheben soll.
if (strcmp("/dienst", cmdtext, true, 10) ==0)
{
if(IsPlayerInRangeOfPoint(playerid,10,256.2878,75.3668,1003.6406))
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,PINK);
SetPlayerSkin(playerid,266);
}
else
{
SendClientMessage(playerid,PINK,"Du bist nicht im Umkleideraum");
return 1;
}
if(!dienst[playerid]) // ! bedeutet, dass es gleich 0 ist
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,PINK);
SetPlayerSkin(playerid,266);
}
else
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun nicht mehr im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,ROT);
SetPlayerSkin(playerid,0);
}
return 1;
}
So gehört es
if (strcmp("/dienst", cmdtext, true, 10) ==0)
{
if(IsPlayerInRangeOfPoint(playerid,10,256.2878,75.3668,1003.6406))
{
if(!dienst[playerid])
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,PINK);
SetPlayerSkin(playerid,266);
}
else
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun nicht mehr im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,ROT);
SetPlayerSkin(playerid,0);
}
}
else
{
SendClientMessage(playerid,PINK,"Du bist nicht im Umkleideraum");
return 1;
}
return 1;
}
Wenn ich jetzt aber nochmal /dienst eingebe, bleibt er beim Skin und der selben Farbe und wechselt sie nicht. Die Meldung das ich nicht mehr im Dienst bin kommt auch nicht.
Ich würde dass eher mit einer Variable machen.
// Oben ins Script
new Dienst[MAX_PLAYERS];
// Befehl
if (strcmp("/dienst", cmdtext, true, 10) ==0)
{
if(IsPlayerInRangeOfPoint(playerid,10,256.2878,75.3668,1003.6406))
{
if(Dienst[playerid] == 0)
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,PINK);
SetPlayerSkin(playerid,266);
}
else if(Dienst[playerid] == 1)
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun nicht mehr im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,ROT);
SetPlayerSkin(playerid,0);
}
}
SendClientMessage(playerid,PINK,"Du bist nicht im Umkleideraum.");
return 1;
}
Viel Spaß
lg
Hab das mal mit deiner Version probiert jedoch geht das auch nicht, kann immernoch nicht aus dem Dienst gehen bzw. es kommt keine Meldung und der Skin sowie die Farbe wird nicht zurückgesetzt.
Wobei ich deine Version um einiges übersichtlicher und verständlicher finde. Danke
// Oben ins Script
new Dienst[MAX_PLAYERS];
// Befehl
if (strcmp("/dienst", cmdtext, true, 10) ==0)
{
if(IsPlayerInRangeOfPoint(playerid,10,256.2878,75.3668,1003.6406))
{
if(Dienst[playerid] == 0)
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,PINK);
SetPlayerSkin(playerid,266);
Dienst[playerid] = 1;//Var auf 1 setzten
}
else if(Dienst[playerid] == 1)
{
new name2[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Beamter %s ist nun nicht mehr im Dienst", name2);
SendClientMessageToAll(ROT,string);
SetPlayerColor(playerid,ROT);
SetPlayerSkin(playerid,0);
Dienst[playerid] = 0;//Var auf 0 setzten
}
}
SendClientMessage(playerid,PINK,"Du bist nicht im Umkleideraum.");
return 1;
}
Hallo,
Ich finde gerade echt nichts dazu, sorry...
Wie kann ich per dcmd neben der üblichen playerid auch noch z.B. die vehicleid oder andere Variabeln übergeben?
Hallo,
Ich finde gerade echt nichts dazu, sorry...
Wie kann ich per dcmd neben der üblichen playerid auch noch z.B. die vehicleid oder andere Variabeln übergeben?
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(beispiel, 8, cmdtext);
return 0;
}
dcmd_beispiel(playerid, params[])
{
vehicle = GetPlayerVehicleID(playerid);
return 1;
}
Brauch mal eure hilfe
wiso ist das ein Reccourcenfresser?
wenn ich das anwende wird die AMX 20 mal so groß als normal
stock RJ_GivePlayerMoney(playerid,money)
{
PlayerInfo[playerid][pMoney]=money;
GivePlayerMoney(playerid,money);
return 1;
}
Hi,
ich habe diesen Streamer hier http://forum.sa-mp.com/showthread.php?t=102865
und wollte wissen wo ich da was einstellen kann.
Ich möchte diese Sachen verändern:
native Streamer_TickRate(rate);
native Streamer_VisibleItems(type, items);
native Streamer_CellDistance(Float:distance);
Wo muss ich das verändern?
In der include?
Funktioniert nicht:
COMMAND:blitzer(playerid,params[])
{
new blitzerstr[64];
if(IsPlayerAnAdmin(playerid,3))
{
if(sscanf(params,"s",blitzerstr))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /blitzer [create / remove / removeall (Ab Rank 3)]");//Hier wird überprüft ob der Befehl richtig eingegeben wurde und der String wird ausgelesen was von dir eingegeben wurden ist...
{
if(strcmp(blitzerstr,"create",true)==0)
{
new geschw,bestrafung;
if(sscanf(params,"sdd",////WAS MUSS ICH HIER HIN SCHREIBEN ( MAN SOLL /blitzer create geschwindigkeit bestrafung eintippen können!) ,geschw,bestrafung))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /blitzer create [Geschwindigkeit] [Strafe]");
SendClientMessage(playerid,COLOR_GREY,"Funkt");
return 1;
}
return 1;
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht nutzen.");
return 1;
}
}
COMMAND:blitzer(playerid,params[])
{
new blitzerstr[64];
if(IsPlayerAnAdmin(playerid,3))
{
if(sscanf(params,"s",blitzerstr))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /blitzer [create / remove / removeall (Ab Rank 3)]");
{
if(strcmp(blitzerstr,"create",true)==0)
{
new geschw,bestrafung, Float:y,Float:x,Float:z;
if(sscanf(params,"ii",geschw,bestrafung))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /blitzer create [Geschwindigkeit] [Strafe($)]");
CreateBlitzer(x,y,z,geschw,bestrafung);
SendClientMessage(playerid,COLOR_GREY,"Blitzer aufgestellt!");
return 1;
}
return 1;
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht nutzen.");
return 1;
}
}
stock CreateBlitzer(Float:x,Float:y,Float:z,speed,bestrafung)
{
// Hier alles rein was passieren soll.
return 1;
}
Machs mal so.
Die Function "CreateBlitzer" musst du nur noch füllen.
lg
Alles anzeigen
COMMAND:blitzer(playerid,params[])
{
new blitzerstr[64];
if(IsPlayerAnAdmin(playerid,3))
{
if(sscanf(params,"s",blitzerstr))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /blitzer [create / remove / removeall (Ab Rank 3)]");
{
if(strcmp(blitzerstr,"create",true)==0)
{
new geschw,bestrafung, Float:y,Float:x,Float:z;
if(sscanf(params,"ii",geschw,bestrafung))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /blitzer create [Geschwindigkeit] [Strafe($)]");
CreateBlitzer(x,y,z,geschw,bestrafung);
SendClientMessage(playerid,COLOR_GREY,"Blitzer aufgestellt!");
return 1;
}
return 1;
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht nutzen.");
return 1;
}
}
stock CreateBlitzer(Float:x,Float:y,Float:z,speed,bestrafung)
{
// Hier alles rein was passieren soll.
return 1;
}
Machs mal so.
Die Function "CreateBlitzer" musst du nur noch füllen.
lg
Funktioniert leider InGame nicht
Du sollst den stock ja auch ausfüllen. xD
Sprich mti CreateObject etc, ansonsten gibt es genug Blitzer Includes bzw. Filterscripts.
lg
Tag, habe gestern aus Zufall bemerkt das mein Login System eine kleine Macke hat, als ich ein falsches Passwort eingegeben habe, aber trotzdem gespawnt bin? :o
stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
if(gettime()<dini_Int(Spielerdatei,"timeban"))
{
SendClientMessage(playerid,ROT,"Du bist noch gebannt. Komm später wieder.");
Kick(playerid);
return 1;
}
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort")))
{
AccountLaden(playerid);
SendClientMessage(playerid,HBLAU,"Erfolgreich eingeloggt.");
return 1;
}
else
{
SendClientMessage(playerid,Rot,"Falsches Passwort.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
return 1;
}
}
Ich weiß das es auf jeden Fall etwas mit dieser Zeile zutun hat:
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort")))
Probiere ich da aus das dahinter "false" oder "true" steht, kommt zwar dass das Passwort falsch ist, aber dann funktioniert selbst das richtige Passwort nicht... Was ich auch komisch finde ist das Zeichen vor meinem Passwort in der Datei:
ZitatÿPasswort=test123
Das "ÿ" kommt manchmal auch mehrmals vor, z.B. "ÿÿ", "ÿÿÿ" oder "ÿÿÿÿ".
War zumindest bis jetzt so .. woran liegt das denn? (ÿ)