Er rechnet jetzt mit der Variable sInfo[i][level] anstatt mit GetPlayerLevel, das gleiche im Befehl.
Schau mal ob er es dann annimmt.
Payday & Respektpunkt System
- justRevitox
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Ich war Lvl 50 lag daran denn 50*6 = 300. xD Hab aber trzd deinen Code genommen.
Ich habe ja noch ne Frage.
Ich würde gerne in den Stats den Job als Namen anzeigen lassen z.b der Job mit der ID 1 (sInfo[playerid][job]=1) soll in den Stats nicht als Beruf: 1 sondern als Beruf: Busfahrer stehen, aber wie? -
stock GetJobName(id)
{
new jName[32];
switch(id)
{
case 1: jName = "Busfahrer";
case 2: jName = "Taxifahrer";
//...
default: jName = "Unbekannt";
}
return jName;
}Und dann eben:
GetJobName(sInfo[playerid][job])
Und im format mit %s anstatt %d. -
Hey.
Wie mache ich es das bei der Registration nach dem Pw eingabe Dialog ein Dialog kommt wo man angibt welches Geschlecht (Männlich, Weiblich) , danach ein Dialog mit dem Alter und danach eine Skinauswahl? Also das am Anfang dieses "Spawn" Button weg ist auch und das beid er Skin Auswahl der Skin ausgesucht werden kann. -
"Spawn" Button weg ist
Entweder so: http://forum.sa-mp.com/showpost.php?p=530037&postcount=16
oder so: http://forum.sa-mp.com/showpost.php?p=1654745&postcount=6 -
Kannst du mir auch bei dem Registrationswunsch dort helfen oder mir das einbauen?
Mein Code:
enum playerInfo{
eingeloggt, //Eingeloggt variable
level, //Spielerlevel
db_id, //Datenbank ID
alevel, //Adminlevel
fraktion, //Fraktion eines Spielers
rang, //fraktionsrang
spawnchange, //Deaktiviert, aber benutzbar
perso, //Personalausweis
job, //Job eines Spielers
busskill, //Bus EXP eines Spielers
busskilllevel, //Buslevel eines Spielers
pilotskill, //Pilot EXP eines Spielers
pilotskilllevel, //Pilotlevel eines Spielers
pRadio, //Radio variable
pSkin, //Skin des Spielers
paydaytime,
respektpunkte,
jobgeld,
spielstunden,
kills,
deaths,
gehaltschecknummer
}
public OnPlayerRequestClass(playerid, classid)
{
/*SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);*/
return 1;
}Hier wird gecheckt ob er registriert ist oder nicht:
public OnUserCheck(playerid) //Abfrage ob Registriert oder nicht
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)//Nicht registriert
{
SetPlayerCameraPos(playerid, 320.0, 50.0, 170.0); //Kamera Position setzen
SetPlayerCameraLookAt(playerid, 324.34, 54.122, 173.35); //Das Lookat der Kamera setzen
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen"); //Register Dialog anzeigen
}
else //Registriert
{
//Login
SetPlayerCameraPos(playerid, 320.0, 50.0, 170.0); //Kamera Position setzen
SetPlayerCameraLookAt(playerid, 324.34, 54.122, 173.35); //Das Lookat der Kamera setzen
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen"); //Login Dialog anzeigen
}
return 1;
}
savePlayer(playerid) //Spieler speichern Funktion
{
if(sInfo[playerid][eingeloggt]==0)return 1; //Wenn Spieler NICHT eingeloggt ist -> return 1; also nicht weitergehen.
//Speichern Level,geld
sInfo[playerid][pSkin] = GetPlayerSkin(playerid); //Hier wird in die Variable pSkin der Spielerskin "eingefügt"
sInfo[playerid][level] = GetPlayerScore(playerid);
new query[486]; //neuen query erstellen
format(query,sizeof(query),"UPDATE user SET level = '%i', money = '%i', alevel = '%i', fraktion = '%i', rang = '%i', spawnchange = '%i', perso = '%i', job = '%i', busskill = '%i', busskilllevel = '%i', pilotskill = '%i', pilotskilllevel = '%i', pRadio = '%i', pSkin = '%i', paydaytime = '%i', respektpunkte = '%i', jobgeld = '%i', spielstunden = '%i', kills = '%i', deaths = '%i', gehaltschecknummer = '%i' WHERE id='%i'",
sInfo[playerid][level],
GetPlayerMoney(playerid),
sInfo[playerid][alevel],
sInfo[playerid][fraktion],
sInfo[playerid][rang],
sInfo[playerid][spawnchange],
sInfo[playerid][perso],
sInfo[playerid][job],
sInfo[playerid][busskill],
sInfo[playerid][busskilllevel],
sInfo[playerid][pilotskill],
sInfo[playerid][pilotskilllevel],
sInfo[playerid][pRadio],
sInfo[playerid][pSkin],
sInfo[playerid][paydaytime],
sInfo[playerid][respektpunkte],
sInfo[playerid][jobgeld],
sInfo[playerid][spielstunden],
sInfo[playerid][kills],
sInfo[playerid][deaths],
sInfo[playerid][gehaltschecknummer],
sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
public OnPasswordResponse(playerid) //Wenn Spieler sich eingeloggt hat
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//Passwort richtig //Spieler laden
sInfo[playerid][eingeloggt] = 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
sInfo[playerid][perso] = cache_get_field_content_int(0,"perso",dbhandle);
sInfo[playerid][job] = cache_get_field_content_int(0,"job",dbhandle);
sInfo[playerid][busskill] = cache_get_field_content_int(0,"busskill",dbhandle);
sInfo[playerid][busskilllevel] = cache_get_field_content_int(0,"busskilllevel",dbhandle);
sInfo[playerid][pilotskill] = cache_get_field_content_int(0,"pilotskill",dbhandle);
sInfo[playerid][pilotskilllevel] = cache_get_field_content_int(0,"pilotskilllevel",dbhandle);
sInfo[playerid][pRadio] = cache_get_field_content_int(0,"pRadio",dbhandle);
sInfo[playerid][pSkin] = cache_get_field_content_int(0,"pSkin",dbhandle);
sInfo[playerid][paydaytime] = cache_get_field_content_int(0,"paydaytime",dbhandle);
sInfo[playerid][respektpunkte] = cache_get_field_content_int(0,"respektpunkte",dbhandle);
sInfo[playerid][jobgeld] = cache_get_field_content_int(0,"jobgeld",dbhandle);
sInfo[playerid][spielstunden] = cache_get_field_content_int(0,"spielstunden",dbhandle);
sInfo[playerid][kills] = cache_get_field_content_int(0,"kills",dbhandle);
sInfo[playerid][deaths] = cache_get_field_content_int(0,"deaths",dbhandle);
sInfo[playerid][gehaltschecknummer] = cache_get_field_content_int(0,"gehaltschecknummer",dbhandle);
SetPlayerSkin(playerid,sInfo[playerid][pSkin]);
loadSpielerAutos(playerid);
SpawnPlayer(playerid);
}
else
{
//Passwort falsch
SendClientMessage(playerid,COLOR_RED,"Das eingegebene Passwort ist falsch.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password=MD5('%s')",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
//Keine Eingabe
SendClientMessage(playerid,COLOR_RED,"Gibt bitte dein Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}
if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s',MD5('%s')) ",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,COLOR_RED,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}
return 1;
} -
Versuche es doch erst mal selbst und poste dann den Code, wenn Probleme auftreten.
Wenn ich es dir nur schreibe, dann lernst du nichts dabei, denn das sind Basics. -
Versuche es doch erst mal selbst und poste dann den Code, wenn Probleme auftreten.
Wenn ich es dir nur schreibe, dann lernst du nichts dabei, denn das sind Basics.
Ist das so bis jetzt richtig?
if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s',MD5('%s')) ",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
ShowPlayerDialog(playerid,DIALOG_REGISTERGESCHLECHT,DIALOG_STYLE_LIST,"Geschlechtsauswahl","Männlich\nWeiblich","Auswählen","Abbrechen");
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,COLOR_RED,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}
if(dialogid==DIALOG_REGISTERGESCHLECHT)
{
if(response)
{
switch (listitem)
{
case 0: sInfo[playerid][pGeschlecht] = 1;
case 1: sInfo[playerid][pGeschlecht] = 2;
}
ShowPlayerDialog(playerid,DIALOG_REGISTERALTER,DIALOG_STYLE_INPUT,"Alter Angabe","Gib bitte dein Alter an (Beispiel: 14):","Okay","Abbrechen");
}
else
{
Kick(playerid);
}
return 1;
}
if(dialogid==DIALOG_REGISTERALTER)
{
if(response)
{
if(strval(inputtext) < 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTERALTER,DIALOG_STYLE_INPUT,"Alter Angabe","Gib bitte dein Alter an (Beispiel: 14):","Okay","Abbrechen");
return SendClientMessage(playerid,COLOR_RED,"Bitte gib dein richtiges Alter ein:");
}
else
{
sInfo[playerid][pAlter] = strval(inputtext);
}
}
else
{
Kick(playerid);
}
return 1;
} -
Die Korrektheit von Codes kannst du durch ausprobieren prüfen.
Einmal drauf schauen ist keine 100%'ige Garantie, dass alles klappt. Ausprobieren, dann weißt du es. -
breadfish.de
Hat das Thema geschlossen.