Positives kann man nicht sagen.
Ein User im TS meinte zu einem Moderator (Nailu bzw. Julian) das ich Ballerspiele im Hintergrund zu hören habe, was vollkommender Quatsch war.
Danach wurde ich von dem Moderator Nailu (iwie so geschrieben) gebannt mit dem Grund Löwenkind. Dann wollte ich es Ingame klären wurde mir unterstellt das ich gesagt hätte das Frauen keine Rechte hätten.
Beiträge von justRevitox
-
-
Sorry erstmal wegen RoG. Es war ein Fehler es zu kaufen und zu releasen.
Ich bin für Las Venturas da ich dort wenige Server sehe. Eventuell neue Systeme die es nicht oft gibt z.B ein Erfolgesystem. -
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;
} -
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;
} -
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. -
-
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? -
was hast du verändert
Jeffry: -
Entweder du hast noch keinen bekommen, oder du hast es fehlerhaft formatiert (mit format).
Ich will ja haben das er für Level 2 6 Respektpunkte brauch, für Level 3 12 Respektpunkte brauch also immer 6 mehr. Und wenn er die erreichten Respektpunkte hat z.b für Level 2 6 respektpunkte hat -> Level 2 und Rp wieder auf 0 und dann brauch er 12 etc
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 OnGameModeInit()
{
SetTimer("PayDayTimer",60000,1);//60000
}
ocmd:stats(playerid)
{
if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht Eingeloggt");
new string[500] ="{00FFD2} [Allgemeines] \n\n";
format(string,sizeof string,"%sName: {FFC800}%s\n {00FFD2}Level: {FFC800}%i\n {00FFD2}Geld: {FFC800}%i\n{00FFD2}Respektpunkte: {FFC800}%d/%d\nPayDay: %i\nSpielstunden: %i\nKills: %i\nTode: %i",string,
SpielerName(playerid),sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][respektpunkte],GetPlayerScore(playerid)*6,sInfo[playerid][paydaytime],sInfo[playerid][spielstunden],sInfo[playerid][kills],sInfo[playerid][deaths]);
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistik",string,"Okay","");
return 1;
}
public PayDayTimer()
{
new rpunkte;//Hier wird eine Variable erstellt, um die Respektpunkte mit dem Level zu berechnen
new string[128],string2[128],string3[128],string4[128],string5[128]; //Für die Nachricht des Paydays
//Wir gehen eine Schleife durch alle Spieler durch
for(new i;i<MAX_PLAYERS;i++)
{
//Hier werden die Spieler "aussortiert" bzw. übersprungen, die entweder nicht mit dem Server verbunden, ein NPC oder nicht eingeloggt sind
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || sInfo[i][eingeloggt] == 0)continue;
sInfo[i][paydaytime] ++;//Hier wird die Variable paydaytime immer um eins addiert
if(sInfo[i][paydaytime] == 60)//Ist die Variable == 60 (60 Minuten), dann ist PayDay
{
format(string,sizeof string,"{FFFFFF}=========*{F5FF00}Gehaltscheck{FFFFFF}*==========");
SendClientMessage(i,COLOR_WHITE,string);
format(string2,sizeof string2,"Du hast einen Gehaltscheck von deinem Chef bekommen.");
SendClientMessage(i,COLOR_WHITE,string2);
format(string3,sizeof string3,"Respektpunkte:{05D900} +1 || Spielstunden:{05D900} +1 || Aktuelles Level:{05D900} %i",sInfo[i][level]);
SendClientMessage(i,COLOR_WHITE,string3);
sInfo[i][respektpunkte] ++;//Respektpunkte wird um eins addiert
sInfo[i][paydaytime] = 0;//paydaytime wird wieder auf 0 gesetzt, damit das ganze von vorne anfangen kann
rpunkte = GetPlayerScore(i) * 6;
sInfo[i][spielstunden] ++;
sInfo[i][gehaltschecknummer] ++;
if(sInfo[i][jobgeld] > 0)
{
format(string4,sizeof string4,"Verdientes Geld:{05D900} %i$ || Gehaltschecknummer:{05D900} %i",sInfo[i][jobgeld],sInfo[i][gehaltschecknummer]);
SendClientMessage(i, COLOR_WHITE,string4);
GivePlayerMoney(i,sInfo[i][jobgeld]);
sInfo[i][jobgeld] = 0;
}
if(sInfo[i][jobgeld] < 1 || sInfo[i][jobgeld] == 0)
{
format(string5,sizeof string5,"Arbeitslosengeld:{05D900} 400$ || Gehaltschecknummer:{05D900} %i",sInfo[i][gehaltschecknummer]);
SendClientMessage(i, COLOR_WHITE,string5);
GivePlayerMoney(i,400);
}
if(sInfo[i][respektpunkte] == rpunkte)
{
//Das Level kann um eins erhöht werden => Level Up
sInfo[i][level] ++;//Das Level wird hier um eins addiert
SetPlayerScore(i,sInfo[i][level]);//Das Level wird neu gesetzt
}
}
}
return 1;
} -
Erst wenn du bei paydaytime auf 60 kommst bekommst du einen PayDay, und damit einen Respektpunkt. Das heißt nach 60 Minuten.
Wieso steht bei mir unter /stats 0/300 Respektpunkten?
@Mencent:
Jeffry: -
Der Timer hat ja 60000 Milliseconds. Ich bin eine Minute aufm Server und hab in der Db bei paydaytime ne 24 stehen und bei /stats unter Respektpunkte 0/300
-
Hast du Skype oder so? Damit der Thread nicht so lange geht? @Mencent:
Ich habe noch eine Gehaltschecknumemr eingebaut. Sprich beim ersten Payday: Nummer 1, beim zweiten Nummer 2. Ist das dann so richtig?
public PayDayTimer()
{
new rpunkte;//Hier wird eine Variable erstellt, um die Respektpunkte mit dem Level zu berechnen
new string[128]; //Für die Nachricht des Paydays
//Wir gehen eine Schleife durch alle Spieler durch
for(new i;i<MAX_PLAYERS;i++)
{
//Hier werden die Spieler "aussortiert" bzw. übersprungen, die entweder nicht mit dem Server verbunden, ein NPC oder nicht eingeloggt sind
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || sInfo[i][eingeloggt] == 0)continue;
sInfo[i][paydaytime] ++;//Hier wird die Variable paydaytime immer um eins addiert
if(sInfo[i][paydaytime] == 60)//Ist die Variable == 60 (60 Minuten), dann ist PayDay
{
sInfo[i][respektpunkte] ++;//Respektpunkte wird um eins addiert
sInfo[i][paydaytime] = 0;//paydaytime wird wieder auf 0 gesetzt, damit das ganze von vorne anfangen kann
rpunkte = GetPlayerScore(i) * 6;
sInfo[i][spielstunden] ++;
sInfo[i][gehaltschecknummer] ++;
format(string,sizeof string,"{FFFFFF}=========*{F5FF00}Gehaltscheck{FFFFFF}*==========");
format(string,sizeof string,"Du hast einen Gehaltscheck von deinem Chef bekommen.");
format(string,sizeof string,"Respektpunkte:{05D900} +1 || Spielstunden:{05D900} +1 || Aktuelles Level:{05D900} %i",sInfo[i][level]);
SendClientMessage(i,COLOR_WHITE,string);
if(sInfo[i][jobgeld] > 0)
{
format(string,sizeof string,"Verdientes Geld:{05D900} %i || Gehaltschecknummer:{05D900} %i",sInfo[i][jobgeld],sInfo[i][gehaltschecknummer]);
SendClientMessage(i, COLOR_WHITE,string);
GivePlayerMoney(i,sInfo[i][jobgeld]);
sInfo[i][jobgeld] = 0;
}
if(sInfo[i][respektpunkte] == rpunkte)
{
//Das Level kann um eins erhöht werden => Level Up
sInfo[i][level] ++;//Das Level wird hier um eins addiert
SetPlayerScore(i,sInfo[i][level]);//Das Level wird neu gesetzt
}
}
}
return 1;
} -
Genauso, wie mit den anderen Variablen auch.
Du fügst die beiden Variablen den Enum hinzu, und machst das bei OnPlayerDeath:
if(killerid != INVALID_PLAYER_ID)//Kein Selbstmord
{
sInfo[killerid][kills] ++;
sInfo[playerid][deaths] ++:
}
else //Selbstmord begangen => Nur die Tode werden addiert
{
sInfo[playerid][deaths] ++;
}
Speichern und Laden weiß du ja selbst. Wie du das ganze bei den Stats anzeigen lässt, solltest du auch wissen. Wenn nicht, dann zeige ich dir das nochmal.Ist das so richtig? oder habe ich da was mit GetPlayerScore falsch gemacht oder an sich?
ocmd:stats(playerid)
{
if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht Eingeloggt");
new string[500] ="{00FFD2} [Allgemeines] \n\n";
format(string,sizeof string,"%sName: {FFC800}%s\n {00FFD2}Level: {FFC800}%i\n {00FFD2}Geld: {FFC800}%i\n{00FFD2}Respektpunkte: {FFC800}%d/%d\nSpielstunden: %i\nKills: %i\nTode: %i",string,
SpielerName(playerid),sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][respektpunkte],GetPlayerScore(playerid)*6,sInfo[playerid][spielstunden],sInfo[playerid][kills],sInfo[playerid][deaths]);
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistik",string,"Okay","");
return 1;
} -
Okay, danke für deine Hilfe.
Wie lasse ich die Kills & Tote speichern & bei Stats auslesen? -
Also jetzt so?
public PayDayTimer()
{
new rpunkte;//Hier wird eine Variable erstellt, um die Respektpunkte mit dem Level zu berechnen
//Wir gehen eine Schleife durch alle Spieler durch
for(new i;i<MAX_PLAYERS;i++)
{
//Hier werden die Spieler "aussortiert" bzw. übersprungen, die entweder nicht mit dem Server verbunden, ein NPC oder nicht eingeloggt sind
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || sInfo[i][eingeloggt] == 0)continue;
sInfo[i][paydaytime] ++;//Hier wird die Variable paydaytime immer um eins addiert
if(sInfo[i][paydaytime] == 60)//Ist die Variable == 60 (60 Minuten), dann ist PayDay
{
sInfo[i][respektpunkte] ++;//Respektpunkte wird um eins addiert
sInfo[i][paydaytime] = 0;//paydaytime wird wieder auf 0 gesetzt, damit das ganze von vorne anfangen kann
rpunkte = GetPlayerScore(i) * 6;
sInfo[i][spielstunden] ++;
if(sInfo[i][jobgeld] > 0)
{
GivePlayerMoney(i,sInfo[i][jobgeld]);
sInfo[i][jobgeld] = 0;
}
if(sInfo[i][respektpunkte] == rpunkte)
{
//Das Level kann um eins erhöht werden => Level Up
sInfo[i][level] ++;//Das Level wird hier um eins addiert
SetPlayerScore(i,sInfo[i][level]);//Das Level wird neu gesetzt
}
}
}
return 1;
} -
So im PayDayTimer?
public PayDayTimer()
{
new rpunkte;//Hier wird eine Variable erstellt, um die Respektpunkte mit dem Level zu berechnen
//Wir gehen eine Schleife durch alle Spieler durch
for(new i;i<MAX_PLAYERS;i++)
{
//Hier werden die Spieler "aussortiert" bzw. übersprungen, die entweder nicht mit dem Server verbunden, ein NPC oder nicht eingeloggt sind
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || sInfo[i][eingeloggt] == 0)continue;
sInfo[i][paydaytime] ++;//Hier wird die Variable paydaytime immer um eins addiert
if(sInfo[i][paydaytime] == 60)//Ist die Variable == 60 (60 Minuten), dann ist PayDay
{
sInfo[i][respektpunkte] ++;//Respektpunkte wird um eins addiert
sInfo[i][paydaytime] = 0;//paydaytime wird wieder auf 0 gesetzt, damit das ganze von vorne anfangen kann
rpunkte = GetPlayerScore(i) * 6;
sInfo[i][spielstunden] ++;
}
if(sInfo[i][jobgeld] > 0)
{
GivePlayerMoney(i,sInfo[i][jobgeld]);
sInfo[i][jobgeld] = 0;
}
if(sInfo[i][respektpunkte] == rpunkte)
{
//Das Level kann um eins erhöht werden => Level Up
sInfo[i][level] ++;//Das Level wird hier um eins addiert
SetPlayerScore(i,sInfo[i][level]);//Das Level wird neu gesetzt
}
}
return 1;
} -
Also einfach bei meinem Spielerenum eine neue Variable z.b spielstunden? Und dann beim public PayDayTimer da wo er auch das Geld ausgezahlt kriegt, um 1 hochzählen also z.b sInfo[playerid][spielstunden] ++; ?
-
Und so abspeichern und auslesen?
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[256]; //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' 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][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
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);Und wie lasse ich die Spielzeit noch iwie speichern und auslesen in Stunden?
-
Also so einfach einfügen & anpassen, okey.
Nach der Registration ist er ja Level 1. Wie mache ich es das er für Level 2 , 6 Respektpunkte braucht, für Level 3 12 Respektpunkte etc?
Und das dann noch in den Stats angezeigt wird: Respektpunkte: 2/6 z.b je nachdem?@Mencent:
ocmd:stats(playerid)
{
if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht Eingeloggt");
new string[500] ="{00FFD2} [Allgemeines] \n\n";
format(string,sizeof string,"%sName: {FFC800}%s\n {00FFD2}Level: {FFC800}%i\n {00FFD2}Geld: {FFC800}%i\n",string,
SpielerName(playerid),sInfo[playerid][level],GetPlayerMoney(playerid));
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistik",string,"Okay","");
return 1;
}Fehler bei public PayDayTimer:
undefined Symbol: playerid
if(!IsPlayerConnected(i) IsPlayerNPC(i) sInfo[playerid][eingeloggt] == 0)continue; -
Hört sich jetzt so an, als wüsstest du immer noch nicht was du machen sollst bzw. wie das funktioniert.
Falls du Hilfe brauchst, dann sage nochmal bescheid, dann erkläre ich das anhand eines Beispiels.
Wäre cool wenn du mir ein Beispiel zeigst.