Die zweite Variable ist "ptime" und nicht "b_time", die für den PayDay sorgt.
Die wird auch gespeichert^^
Beiträge von Firerfan
-
-
Also das hilft beim Problem warscheinlich nix aber nutz mal bloß nich Dini, das speichert sehr langsam, so geht das voll in die Hose
//edit: Die zweite if abfragen nutzt garnix, was heißt das Dini doch jede minute speichert und das überlasstet den Server
Naja, dürfte nem 56 GB Ram Root nicht viel ausmachen.
Und GF speichert bei jeder Bewegung des Spielers.Und klar nützt die zweite Abfrage etwas.
Es wird ne Message an den Player gesendet. Fertig.
Desweiteren wird "b_time" vorsichtsalber nochmal auf 0 gesetzt.MfG Firer
-
Speichert alle Daten des Spielers:
public UpPlayer(playerid)
{
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
dini_IntSet(Spielerdatei,"adminlevel",SpielerInfo[playerid][admin]);
dini_IntSet(Spielerdatei,"wanteds",GetPlayerWantedLevel(playerid));
dini_IntSet(Spielerdatei,"geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"bank",SpielerInfo[playerid][bank]);
dini_IntSet(Spielerdatei,"skin",SpielerInfo[playerid][skin]);
dini_IntSet(Spielerdatei,"team",SpielerInfo[playerid][team]);
dini_IntSet(Spielerdatei,"leader",SpielerInfo[playerid][leader]);
dini_IntSet(Spielerdatei,"rank",SpielerInfo[playerid][rank]);
dini_IntSet(Spielerdatei,"job",SpielerInfo[playerid][job]);
dini_IntSet(Spielerdatei,"ptime",SpielerInfo[playerid][ptime]);
dini_IntSet(Spielerdatei,"aktiv",SpielerInfo[playerid][aktiv]);
dini_IntSet(Spielerdatei,"jail",SpielerInfo[playerid][jail]);
dini_IntSet(Spielerdatei,"hitman",SpielerInfo[playerid][hitman]);
dini_IntSet(Spielerdatei,"hleader",SpielerInfo[playerid][hleader]);
dini_IntSet(Spielerdatei,"warns",SpielerInfo[playerid][warns]);
dini_IntSet(Spielerdatei,"führerschein",SpielerInfo[playerid][fahrlicense]);
dini_IntSet(Spielerdatei,"bikeschein",SpielerInfo[playerid][bikelicense]);
dini_IntSet(Spielerdatei,"flugschein",SpielerInfo[playerid][flylicense]);
dini_IntSet(Spielerdatei,"drogen",SpielerInfo[playerid][weed]);
return 1;
}
Aber das scheint den Fehler ja nicht zu verursachen.
Die oberen beiden Abfragen:
if(b_time[playerid]>0)
{
b_time[playerid]--;
}
if(b_time[playerid]==0)
{
SendClientMessage(playerid,COLOR_GREEN,"Du kannst nun wieder ernten!");
b_time[playerid]=0;
}
Sobald die weg sind, läuft alles.MfG Firer
-
Hey leute,
ich hab ein Problem.Und zwar:
Wenn ich diesen Timer so wie ihr ihn jetzt gleich sehen werdet, verwende, Geht nach dem Ablauf der ersten Minute (Der Timer ist auf 60ne Minute gesetzt und Wiederholt sich) meine halbes Script nicht mehr.public pdtimer(playerid)
{
if(b_time[playerid]>0)
{
b_time[playerid]--;
}
if(b_time[playerid]==0)
{
SendClientMessage(playerid,COLOR_GREEN,"Du kannst nun wieder ernten!");
b_time[playerid]=0;
}
if(SpielerInfo[playerid][ptime]<60)
{
SpielerInfo[playerid][ptime]++;
UpPlayer(playerid);
}
if(SpielerInfo[playerid][ptime]>59)
{
new zinsen = (SpielerInfo[playerid][bank]/1000)*(5);
new paydayrand = random(2000); paydayrand += 982 - isteuern;
new string[286];
GivePlayerDollars(playerid,paydayrand);
SpielerInfo[playerid][aktiv]++;
SpielerInfo[playerid][bank]=SpielerInfo[playerid][bank]+zinsen;
SendClientMessage(playerid,COLOR_ORANGE,"|_______ Zahltag _______|");
format(string, sizeof(string), "Lohn: $%d | Steuern: $%d", paydayrand,isteuern);
SendClientMessage(playerid,COLOR_WHITE,string);
format(string, sizeof(string), "Zinsen: $%d | Zinssatz: 0.5",zinsen);
SendClientMessage(playerid,COLOR_WHITE,string);
format(string, sizeof(string), "Neuer Kontostand: %d",SpielerInfo[playerid][bank]);
SendClientMessage(playerid,COLOR_WHITE,string);
SendClientMessage(playerid,COLOR_WHITE,"Du hast einen Aktivitätspunkt erhalten!");
SpielerInfo[playerid][ptime]=0;
}
}Wenn ich aber die oberen beiden Abfragen auslasse, klappt alles.
Jemand ne Lösung? -
Habe schon vieles Ausprobiert (Fußball, Diverese Asiatische Kampfsportarten bei denen ich gerade nicht weis, wie mann sie schreibt) und bin im Endeffekt bei Baskettball hängengeblieben.
Achja, ausserdem gelegentlich mal Fahrrad. Und wenn dann schon mit meinen Eltern so 4-5 Stunden.
MfG Firer
-
Dann üb es besser erst nochmal
Versuche immer erst sowas alleine zu Scripten.Wenn du nicht weiter weist, schau dir andere Sachen an.
Schau dir an, wie es dort aufgebaut wurde und hol dir Anregungen und Ideen, wie du es umsetzen könntest.
Das ist im prinzip ganz einfach ;MfG Firer
-
Tja, da laggt wohl der Server.
Zum Thema Schießen:SA-MP ist dort etwas Asynchron.
Sollte sich dein Ziel bewegen musst du etwas vor ihn schießen.Was das andere angeht:
Kenne das ja von anderen servern, das es ab und zu etwas laggt.
Aber nicht so extrem.MfG Firer
-
Grex
Danke, habe was ähnliches gesucht.
Das sollte man doch jetzt ganz leicht via IFrame einbauen können, oder?MfG Firer
-
Sieht wie ein zerschnippseltes GF.
Man könnte gleich die Abfragen zusammenfassen und PVars benutzen um Resourcen zu sparen.32.39 / 100.0
Seid wann ist PlayerToPoint eine reine GF Funktion?
Das einzige was wirklich aus dem GF genommen ist ProxDetektor.mit PVars habe ich bis jetzt noch nich gearbeitet, werde mich aber mal schlau machen.
MfG Firer
-
Hallo leute,
Ich habe gerade mal aus Langeweile dieses Script erstellt.
Es funktioniert recht Simpel.Das Script prüft beim benutzen der Waffen-ID 13 (Schwarzer Dildo), ob sich ein Spieler in Reichweite befindet.
Sollte dies der Fall sein, der Spieler nicht berreits getazert und kein Cop ist, erleidet er einen "Stromschock".Der Spieler ist daraufhin 10 Sekunden gefreezed.
Dannach kann der Polizist den Tazer für 30 Sekunden nicht mehr nutzen.Des weiteren besteht eine mindere Chance, dass das Ziel durch den Tazerangriff stirbt.
Das ganze geht nur, solange der Angreifer bzw. der Cop auch einen Cop Skin hat (Skin ID´s gehen von 280 bis 285).
Das ganze ist recht simpel gemacht, funktioniert aber einwandfrei!Verbesserungen in Version 0.2:
- PVars
- Leichter anpassbar
- switch für die Cop-Abfrage benutzt
- Rechtschreibfehler behoben
- "PlayerToPoint" Funktion entfernt
Version 0.1:
Bekannte Bugs:- in Zeile 49 ist das "Tazerversuch" falschgeschrieben
Download:
Pastebin: http://pastebin.com/yvHCqbzM
Mein WebSpace: http://firerfan.fi.funpic.de/tazer.rar
Solidfiles: http://solidfiles.com/d/facb/
------------------------------
Version 0.2:
Bekannte Bugs:- Keine
Download:
Pastebin: http://pastebin.com/TrC4ckv2
WestToast.de: http://westtoast.de/downloads/tazer0.2.rar------------
Mit freundlichen Grüßen,
Firerfan//EDIT: Wichtiges Detail vergessen^^
//EDIT2: Version 0.2 nun verfügbar -
Öhm...
Danke das du mich bei Danke reingeschrieben hast^^B2T:
VehicleID´s sind ändern sich nur dann, wenn ihr neue Fahrzeuge UNTER die Alten einfügt.
Zum Thema DT_Cars könntest du eine Nummer mit Abspeichern und diese dann halt Laden.Müsste ich erst genauer nachschauen.
MfG Firer
-
Die Hitman-Base 100 Meter von der Police Base entfernt....
Auch nicht schlecht für die Cops^^Naja, gefällt mir nicht so sehr.
Sehr Unreal, da die Hitmans eher unauffällig arbeiten sollten....MfG Firer
-
-
-
Okay, ich habe deinen Titel falsch gedeutet und den Text nur überflogen.
So wie du dir das Vorstellst ist es leider nicht möglich.Du kannst nur einen Checkpoint direkt zum Spieler setzen.
MfG Firer
-
ja das kannst du mit den checkpoints mahcen
nur halt deine checkpoints machen da wo du die ham willst und so weiter und dann iwann
das ist auch nur ein tutorial wie man sowas macht und kein copy pasteDann hätten wir ja noch einen Copy & Past Scripter.
B2T:Es ist ganz einfach.
Erstmal weisen wir dem Object eine Variable zu.Dazu musst du ganz oben im Script eine Variable erstellen.
Die könnte wie folgt aussehen:
new tor1;
Gut, das hätten wir.Nun Müssen wir das Object erstellen, und der Variable zuweisen.
Das machen wir unter "OnGameModeInit" mit diesem Code:
tor1 = CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ)
Deine Koordinaten und ID´s für das Object musst du selber einsetzen.Zum schluss erstellen wir noch einen Befehl, um das Tor zu öffnen oder zu schließen.
Damit sich das Tor durch dem Command ja auch wieder schließt, muss der Server ja wissen, wo es gerade ist.
In diesem Fall legt eine Variable im Prinzip fest, wo sich das Tor gerade befindet, bzw. ob es offen, oder geschlossen ist.Beispiel:
Ist das Tor geschlossen ist die Variable = 0
Ist das Tor geöffnet ist die Variable = 1Wir erstellen nun wieder oben im Script eine Variable.
Das könnte etwa so aussehen:
new tor1state;
Die Variable ist automatisch auf "0" gesetzt.Nun machen wir uns den Command.
Diesen erstellen wir natürlich unter "OnPlayerCommandText".
Beispiel:
if(strcmp("/open", cmdtext, true, 5) == 0)
{
if(tor1state == 0)
{
SendClientMessage(playerid,DEINE_COLOR,"Du hast das Tor geöffnet!");
MoveObject(tor1,x,y,z,speed)//------- X,Y,Z durch die Position des geöffneten Tores ersetzen.
tor1state = 1
}
else
{
SendClientMessage(playerid,DEINE_COLOR,"Du hast das Tor geschlossen!");
MoveObject(tor1,x,y,z,speed)//------- X,Y,Z durch die Position des geschlossenen Tores ersetzen.
tor1state = 0
}
}Das wars im Prinzip auch schon.
MfG Firerfan -
Unter "OnPlayerConnect" muss das rein.
Dann werden beim connecten den Spielers die Worldbounds aktiv.
MfG Firer -
Von mir auch nochmal Herzlichen Glückwünsch^^
Ihr 2 seid seeeehr aktiv und habt es euch wirklich verdient! -
Falscher berreich, würd ich schnell löschen!
MfG Firer -
SA-MP Wiki FTW:
http://wiki.sa-mp.com/wiki/GetPlayerInteriorAnsonsten:
http://wiki.sa-mp.com/wiki/InteriorIDsMfG Firer