hey ich hab schon suche genutzt aba nix passendes Gefunden
wie kann ich mein Score so machen das er die Spielstunden zählt und auch gespeichert werden ?
lg kifkat
Spielstunden in Score
- Kevin B.
- 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
-
-
Mit einem Timer, und der dazugehörigen Public
die dann alle 60 Min. einen Score an den Spieler Gibt.MFG airstylzz
-
hey kannst mir da eventuell nen TUT schreiben ?
muss ich da ihren was aus der Abteilung Spieler speichern oda ihren wie so was machen ? -
Du machst das mit SetPlayerScore(...)
-> http://wiki.sa-mp.com/wiki/SetPlayerScore -
muss der das aba nicht ihren wo speichern ?
damit kann ich ihren wei nix so ganz anfangen -
Hast du ein Login/Register System? Wenn nicht dann Arbeite mit dini. Ist ganz einfach
-
Speichern musst du gucken
entwerder per MySQL Datenbank oder mit dini..Das bleibt dir Überlassen
-
ja hab ein Login/Register
das von MrMonat
stock Register(playerid,key[])
{new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
GivePlayerMoney(playerid, 20000);
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
SetPlayerScore(playerid,0);
SetPVarInt(playerid,"loggedin",1);
return 1;
}stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
{
LoadAccount(playerid);
SendClientMessage(playerid,BLAU,"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;
}
}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,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
SetPVarInt(playerid,"Autoschein",dini_Int(Spielerdatei,"Autoschein"));
pInfo[playerid][Bank] = dini_Int(Spielerdatei, "Bank");
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
Kick(playerid);
}
SetPVarInt(playerid,"loggedin",1);
return 1;
}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,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
dini_IntSet(Spielerdatei,"Autoschein",GetPVarInt(playerid,"Autoschein"));
dini_IntSet(Spielerdatei,"Motorradschein",GetPVarInt(playerid,"Motorradschein"));
dini_IntSet(Spielerdatei,"Bank",pInfo[playerid][Bank]);
}
return 1;
} -
Lesen Bildet oO
-> SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
hast du schon -
ja aba das bleibt auf null und ja es wirt ja nix Stündlich Gezählt
-
Mit einem Timer, und der dazugehörigen Public
die dann alle 60 Min. einen Score an den Spieler Gibt.MFG airstylzz
Vielleicht hilft dir das weiter.. -
so viel Erfahrung hab ich noch nicht Mit Skripten
könntest mir das vielleicht erklären -
-
Erstmal dort oben:
forward score();//Den public für timerDanach bei ongamemode init damit er gleich beim Server start Passiert:
// Don't use these lines if it's a filterscript
SetTimer("score",1000*60*60,true);
//Score ist der name den wir oben definiert haben!
//1000*60*60 Das sind 60 Minuten kannst auch 10 Machen wie du willst!
//true fals es sich wieder holen soll!Und danach ein public um dies auszuführen:
public score(playerid)
{
SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
SendClientMessage(playerid,0xFFFFFFFF,"Dein Level würde erhöht");
return 1;
}Ich hoffe ich konnte dir helfen.
MFG K44n
-
hey da erhalte ich fehle Meldung
C:\Users\kifkat\Documents\[POD]\gamemodes\pod.pwn(701) : error 025: function heading differs from prototype -
Hmm weis nicht wieso kann mir das jemand sagen habs da einfach nur so hin ohne zu compilieren sry.
MFG K44n
-
forward score(playerid);
// Unter OnPlayerConnect:
SetTimerEx("score",1000*60*60,true,"i",playerid);// Weiter unten:
public score(playerid)
{
SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
SendClientMessage(playerid,0xFFFFFFFF,"Dein Level würde erhöht");
return 1;
}
So ist das richtig. Bei dem Code von K44N ist playerid in der Deklaration nicht angegeben, und wird auch nirgends in den Timer übergeben, weshalb das nicht funktionieren kann.edit K44n: Die Überlegung stimmt schon fast, allerdings muss der Timer bei OnPlayerConnect starten und mit SetTimerEx gearbeitet werden, damit die Playerid übergeben werden kann. Der Error kommt daher, dass sich "forward score();" und "public score(playerid)" unterscheiden. Nämlich weil der Public einen Parameter hat, der beim Forwarden nicht beschrieben wurde.
-
hey da erhalte ich fehle Meldung
C:\Users\kifkat\Documents\[POD]\gamemodes\pod.pwn(701) : error 025: function heading differs from prototype
Weil:
forward score();und
public score(playerid)
-
Danke ich frag mich jetzt wöfür das i integer?Oder wie das auch geschrieben wird.
MFG K44n
-
Playerid ist ein Integer, bzw. eine Zahl. Das i steht dann soz. für das "Format" der Variable (ob String, Integer, Float, ...) die übergeben wird, wie ich das jetzt erklären würde.