Es scheint egal zu sein, ob die Variable nun den Wert 0 hat oder nicht. Der Timer geht insgesamt nicht und ich weiss nicht wo das Problem liegen könnte.
Beiträge von Addickted
-
-
Ich weiss das das eine Sekunde war, sollte nur zum testen dienen Dennoch wird ja gar nicht erst der Score aktualisiert. Jemand von euch beiden eine Ahnung?
-
Ich teste es jetzt schonmal danke, kannst du mir noch genau sagen warum += und nicht ++ ? Kenne das gar nicht so
//E: Geht nicht, der Score wird nicht geupdated, trotzdem der Timer auf 1000ms gestellt ist.
Hier mal die Codes:
Forward:
forward Score(playerid);
Timer unter OnGameModeInit:
SetTimer("Score",1000,1);
Public:
public Score(playerid)
{
Spielstunden[playerid] += 1;
SetPlayerScore(playerid,Spielstunden[playerid]);
return 1;
} -
Irgendwie bekomme ich das grad nicht so ganz hin, weil ich mit der Syntax nicht so zurechtkomme gerade.
Ich habe einen Public und einen Timer. Dieser Timer soll 60 Minuten laufen und danach den Spielerscore um 1 erhöhen (Das was man im Tabmenü sieht), sprich die Spielstunden sollen dort angezeigt werden.
Kann mir da jemand beim Public helfen?
//E: Später soll das ganze natürlich auch in Dini gespeichert werden.
-
Ich denke einfach das die IDs sich überschneiden mit dem TP Menü.
E: Return fehlt auch.
-
Vermutlich
ocmd:g||gangchat(playerid,params[])
{}
Bin nur am raten, aber würde mich auch mal interessieren.
-
Unwissenheit, habe mich gerade aufklären lassen. Dennoch funktioniert es auch mit else nicht. Der Value ist immernoch 1.
-
Hey Hoo Bratheringe,
ich wollte per /allowsavespawn playerid den Leuten das Recht geben ihren Koords zu speichern. Der Wert in der Spielerdatei wird auf 1 geändert (erlaubt)
Allerdings klappt die Abfrage im /savespawn Befehl nicht, kann mir kurz jemand den Fehler zeigen? Bin irgendwie blind gerade
ocmd:savespawn(playerid,params[])
{
new name[28], save[28];
new Float:spX,Float:spY,Float:spZ,Float:spA;
GetPlayerPos(playerid,spX,spY,spZ);
GetPlayerFacingAngle(playerid, spA);
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Spieler/%s.ini",name);
if(dini_Exists(save))
{
sInfo[playerid][spawnallowed] = dini_Int(save,"spawnallowed");
if(sInfo[playerid][spawnallowed] == 1)
{
dini_FloatSet(save,"spX",spX);
dini_FloatSet(save,"spY",spY);
dini_FloatSet(save,"spZ",spZ);
dini_FloatSet(save,"spA",spA);
CreatePickup(1277,23,spX,spY,spZ,-1);
SendClientMessage(playerid,COLOR_GREEN,"Info: Dein Spawn wurde gesetzt.");
dini_IntSet(save,"spawnallowed",0);
}
else if(sInfo[playerid][spawnallowed] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Ein Supporter muss dir erst die Savespawn Rechte geben!");
}
}
return 1;
}In der Datei ist der Value auf 1, aber es wird das else if ausgegeben.
-
Meine PWN Datei heisst hellskitchen. Neuerdings beim kompilieren heisst der name der AMX nicht mehr hellskitchen sondern HELLSK1~ - Woran kann das liegen?
-
Veränderungen am Gamemode treten mit GMX bzw. Serverneustart auf.
Veränderungen an einem Filterscript werden sogleich übernommen bzw. durch Neuladen des Filterscripts -
Da ich selbst noch Scripting Anfänger bin, kann ich sagen das mir geholfen hat die Funktionen aus dem Wiki(URL: http://wiki.sa-mp.com/wiki/Category:Scripting_Functions) anzuschauen. Die Beispiele habe ich selbst nachgebaut und so mir dann das Verständnis erschaffen.
Nach wie vor hilft mir Learning by Doing und ab und zu schaue ich mir das SCript nochmals an und mir fallen Dinge ein, wie ich das Script optimieren kann.
-
Hab nur kurz drüber geschaut, aber es sieht mir schwer nach einem Abfragefehler beim Speichern aus, weil du fragst ob der Spieler eingeloggt ist, aber nirgendswo sehe ich das du beim Login Dialog die Variable auf den abgfragten Wert (= 1) bringst.
-
Ich verändere die Variable doch gar nicht, außerdem brauche ich die Abfrage für den Userlevel. Beim Login wärs doch auch wieder nur Lokal und nicht Global..
-
Ich wollte euch mal fragen wie ich eine wiederkehrende Funktion Global machen kann sozusagen.
Z.B. die Userlevel Abfrage bei meinen Commands. Und zwar frage ich nunmal die Datei und den Level ab und das verbraucht schon einige Zeilen Code.
Beispiel:
ocmd:setweather(playerid,params[])
{
new weatherid;
new pName[MAX_PLAYER_NAME], save[28];
GetPlayerName(playerid,pName,sizeof(pName));
format(save,sizeof(save),"/Spieler/%s.ini",pName);
if(dini_Exists(save))
{
sInfo[playerid][level] = dini_Int(save,"Level");
if(sInfo[playerid][level] > 2)
{
if(sscanf(params,"i",weatherid)) return SendClientMessage(playerid,COLOR_YELLOW,"Verwende: /setweather [WetterID]");
{
SetWeather(weatherid);
}
}
}
return 1;
}Jemand eine Idee?
-
-
Wenn du schon sscanf benutzt,dann mach dich doch vorher damit etwas vertraut.
In meiner Signatur findest du dazu ein sehr ausführliches Tutorial.Hier trotzdem nochmal der Link.
http://forum.sa-mp.de/wbb/san-…-commands-mit-parametern/Die Erklärung lasse ich mal weg zu sscanf.Dazu findest du alles wie gesagt im Tutorial.
Hab ich mir angeschaut Cheffe, aber ich bin noch nicht so lange bei PAWN dabei und es ist meine erste Scriptsprache. Daher entschuldige mich bitte, meine Devise lautet Learning-by-Doing. Aber vielen Dank für die Hilfe.
-
Der Spielername ist 24 Zeichen lang, aber ich bin Schreibfaul, daher will ich eine ID und keinen Spielernamen verwenden.
Das mit dem Pfad weiss ich, aber wie soll ich dem Script sagen das die ID 21 (Beispielsweise) nicht ICH bin, sondern jemand anderes und diese ID 21 eine Spielerdatei hat und in dieser Datei halt eine Variable "level" ist mit einem Wert, verstehst du? -
Das ist mir klar aber ich weiss nicht wie ich den Script sagen soll, dass das die Spielerid von jemand anderen ist und er in seine Datei gehen soll und die variable level auf den integer stellen soll, den ich als parameter mit angegeben habe.
-
Wie der Titel schon sagt, arbeite ich mit Dini und sscanf.
Ich habe mir ein Levelsystem erstellt, aber ich komme momentan einfach nicht drauf, wie ich den Value eines Spielers ändern kann.
Momentan sieht es bei mir so aus:
ocmd:setlevel(playerid,params[])
{
// 0 = Gebannt
// 1 = Spieler
// 2 = Supporter
// 3 = Co-Admin
// 4 = Admin
new alevel;
new pName[MAX_PLAYER_NAME], save[28], pID;
GetPlayerName(playerid, pName, sizeof(pName));
format(save, sizeof(save), "/Spieler/%s.ini", pName);
if(dini_Exists(save))
{
sInfo[playerid][level] = dini_Int(save,"level");
if(sInfo[playerid][level] > 2)
{
if(sscanf(params,"ui",pID,alevel)) return SendClientMessage(playerid,COLOR_YELLOW,"Benutze: /setlevel [Spieler][User-Level]");
{
// Hier fehlt der Code zum ändern des Value
SendClientMessage(playerid,COLOR_GREEN,"Info: Userlevel erfolgreich angepasst!");
}
}
}
return 1;
}Wäre nett, wenn mir da jemand helfen könnte, hab bisher kein Tutorial für meine Zwecke gefunden.
-
Ich wollte den Fahrzeugwinkel speichern per GetVehicleZAngle, allerdings wird in die Datei nichts außer 0.0000 geschrieben, was nicht dem Winkel entspricht in dem das Auto vorher stand.
Wie speichere ich den Winkel richtig in Dini ab?