Pille, das stimmt nicht. Das Script arbeitet von oben nach unten durch (außer es durchläuft Schleifen o.Ä).
Wenn also die entsprechende Abfrage richtig ist und durchlaufen wird (z.B. listitem == 2), dann wird das ausgeführt und dann außerhalb der if-Abfrage weitergemacht. Dass dort ein return 1; steht reicht bereits.
Beiträge von Padarom
-
-
Auch wenn ich gerade den Fehler nicht sehen kann, ein Tipp für dich:
Arbeite lieber mit switch(listitem).
switch(listitem)
{
case 0:
{
// ...
}
case 1:
{
// ...
}
}
Ist das untere Return vom gesamten Callback OnDialogResponse? Wenn ja, ändere die Zahl von 1 auf 0. Siehe dazu auch die Wiki.Noch ein Tipp:
Du setzt einfach nur das Leben des Spielers, anstatt es zu dem aktuellen Leben zu addieren. Hat man also 90 Leben, kauft etwas zu essen hat man danach noch 40 Leben.
Speichere also vorher das Leben des Spielers mit GetPlayerHealth und addiere einfach deines.Mit freundl. Grüßen
Padarom -
Ausgerechnet dann solltest du in der Lage sein es zu lösen. Rückgabewerte sind esentiell im PAWN-Skripten, da muss man auch in der Lage sein ein return an die richtige Stelle zu packen (zumal es sowohl in dem von mir geposteten Link steht, als auch von mir angemerkt wurde).
-
aber ab und zu rettet mich eine Zigarette schon, sodass ich dann meistens nicht völlig ausraste ;-).
Das ist so eine Sache die ich als Nichtraucher nicht so ganz verstehen kann. Natürlich kann ich nicht sagen "Ich habe kein Bedürfnis nach Zigaretten wenn ich gestresst bin" - Ich rauche ja auch nicht. Allerdings bin ich bisher nie wirklich so gestresst gewesen, dass ich diesen an irgendetwas auslassen musste (außer mal darüber schlafen o.Ä.). Also kann sich dann für einen Nichtraucher auch die Frage stellen, ob dieser Stress/Verlangen nach der Zigarette in so einer Situation nicht vielleicht erst durch die Zigarette hervorgerufen wird? Also dass man ohne die Zigaretten"abhängigkeit" gar nicht von solchen bestimmten Situationen gestresst wird.
-
-
Setze vor die letzte geschlossene Klammer ein return 0;
Mit freundl. Grüßen
PadaromPS: Das Einrücken dafür nicht vergessen, sonst bekommst du einen Loose Indentation - Warning
@Selfmade_Records: Wiki lesen. OnDialogResponse gibt 0 zurück, nicht 1.
-
Ich habe bisher noch nicht einmal geraucht und auch nicht vor es je zu tun.
Allerdings verurteile ich auch kaum Raucher. Meine Geschwister rauchen (inzwischen 23 & 24) und meine Mutter raucht.Was ich allerdings dennoch verurteile sind 12-15 jährige Kinder die sich morgens immer neben mich in den Bus setzen und so stinken, als würden sie tag ein, tag aus in Tabak baden.
Wie alle Nicht Raucher über das rauchen herziehen
Das liegt für gewöhnlich daran, dass man weiß wie schädlich rauchen sein kann. Man sieht doch auch hier in dem Thread - Und oft auch aus dem Bekanntenkreis -, dass viele am besten gar nicht angefangen hätten und es selbst verurteilen zu rauchen. -
Du kannst auch per PHP ganz einfach MD5-Passwörter abfragen. Einfach die md5-Funktion verwenden.
Dafür musst du das UCP doch nicht im gesamten auf eine andere Dateispeicherungsart ändern? -
Mit dem Plugin MapAndreas wäre das am einfachsten zu lösen.
Damit findest du die Z-Koordinate (Höhe) des Bodens an beliebiger X/Y-Koordinate heraus.Du fragst also die Spieler-/Fahrzeugkoordinaten ab (X, Y & Z) und erstellst dort das herunterzufallende Objekt.
Dank der SAMP-Wiki weißt du, dass die Funktion MoveObject die Zeit der Bewegung in Millisekunden zurückgibt.
Also kannst du einfach diese Zeit speichern und per SetTimerEx einen Timer starten. Sobald dieser um ist löschst du das Objekt und erstellst an dieser Stelle eine Explosion.Hier mal als Scriptbeispiel:
forward Explosion(Float:x, Float:y, Float:z);
new kiste;// Dein Helikopterabwurf:
new Float:x, Float:y, Float:z, Float:newZ, time;
GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
kiste = CreateObject(ID, x, y, z-1, 0, 0, 0);
MapAndreas_FindZ_For2DCoord(x, y, newZ);
time = MoveObject(kiste, x, y, newZ, SPEED);
SetTimerEx("Explosion", time, false, "fff", x, y, newZ);// Timer:
public Explosion(Float:x, Float:y, Float:z)
{
CreateExplosion(x, y, z, 0, 10);
DestroyObject(kiste);
return 1;
}
Beachte aber, dass dies lediglich ein Beispiel war. Du musst dennoch ggf. ein paar Abfragen einbauen ob bereits ein Objekt fällt usw.
Jenachdem wie du das haben möchtest.Mit freundl. Grüßen
Padarom -
Mit der Funktion SetVehiclePos.
Meines Wissens nach kannst du dann auch SetPlayerPos weglassen, da der Spieler automatisch im Fahrzeug mitgeportet wird.
Dafür ggf. eine Abfrage schreiben:
If(IsPlayerInAnyVehicle(playerid)) SetPlayerPos(playerid, 0, 0, 0);
else SetVehiclePos(GetPlayerVehicleID(playerid), 0, 0, 0);Mit freundl. Grüßen
Padarom -
Versuche bitte die beiden Querys in einem anderen Callback (z.B. OnGameModeInit) auszuführen.
Hatte bereits selbst das Problem, dass ich einige Speicherungen/Abfragen in OnGameModeExit packte und diese dann nicht komplett ausgeführt wurden.
Grund dafür war einfach, dass der Server einfach beendet/neugestartet wurde, nicht jedoch mit dem RCON-Command stop/exit (?). Dann wird das Callback nur bröckchenweise von oben nach unten durchgegeben, allerdings nur bis zu dem Moment, an dem der Prozess komplett beendet ist.
Das könnte also vielleicht auch der Ursprung deines Problems sein.Hoffe geholfen zu haben.
Mit freundl. Grüßen
Padarom -
Gehört eigentlich eher in den Coding-Bereich, als hier in den Bereich, aber dennoch:
Ohne eigene PHP-Kentnisse wirst du da nicht großartig weiterkommen. Du musst entweder mit vorgefertigten Funktionen arbeiten müssen (welche mir allerdings nicht bekannt wären), oder dich in PHP mit File-Functions beschäftigen müssen, mit denen du manuell einzelne Dateien (und dann auch Zeilen mit bestimmten Inhalten) auslesen kannst. -
Könntest du die Zeilen bitte mal durchnummerieren? So findet man eigentlich garnichts.
Außerdem verbreiten sich die Fehler auf knapp 100 Zeilen, du hast aber nur 15 gepostet.Ein Fehler wird übrigens hier liegen:
SetTimer("torbsn",100523,false);
100.523 ms = 100,532 Sekunden.
Du möchtest also eigentlich nur 10000ms. -
Kleine Zwischenfrage:
Nutzt du Strickenkid's oder BlueG's MySQL-Plugin?
Ich weiß nicht wie es bei BlueG/G-StylezZz ist, aber bei Strickenkid gibt es eine DEBUG_ALL-Funktion.
Damit sind alle Querys im Serverlog einsehbar. Sollte der Query dann garnicht durchgeführt werden, bzw. ein Fehler vorliegen, dann kannst du das direkt darin sehen.
Übrigens benötigst du für Zahlenwerte (soweit ich es aus MySQL-Dokumentationen bisher entnehmen konnte) keine Hochkommata Die kannst du also eigentlich weglassen.Mit freundl. Grüßen
Padarom -
Gehen wir davon aus, dass die PVarInt "Timeban" gleich der Timestamp ist, an dem der Spieler den Server wieder betreten kann (was wohl auch der Fall ist).
Dann rechnest du die Restzeit in Sekunden so aus:
GetPVarInt(playerid, "Timeban") - gettime()
Nun hast du die Restzeit in Sekunden. Da du sie aber in Minuten haben möchtest, gibst du folgendes zurück:
floatround( (GetPVarInt(playerid, "Timeban") - gettime()) / 60, floatround_round );
Die Funktion floatround rundet dir dabei das Ergebnis einfach auf die richtige Zahl.Mit freundl. Grüßen
Padarom -
@AzkarGames wo hat er mich bitte in Schutz genommen.
Er hat mich Konstruktiv Kritisiert und dann habe ich ihm geantwortet.Eigentlich nicht, AzkarGames hat da Recht. Abgesehen davon habe ich ihm erklärt, was du damit meinst.
Und "Lesen -> Denken -> Posten" kannst du wohl nicht als gerechtfertigte Antwort auf eine Kritik (selbst wenn es keine war) verstehen... -
Und das du leute nach den "postzahlen" beurteilst ist nicht Okay ist mir doch wurst ob ich 50 Beiträge hab oder 700 das sind nur Zahlen
Also ist es "nicht okay" davon auszugehen, dass Leute mit vielen Beiträgen einiges an Erfahrung und Wissen in diesem Forum gesammelt haben und daher auch in der Lage sind Posts freundlich zu formulieren?
Du spielst es so aus, als ob er sagen würde "Jeder der unter 10 Beiträgen hat, ist scheiße". -
32 Bit = 4 Bytes * 8 Bit
Das könntest du ein bisschen besser erklären, so wie du es darstellst klingt es, als ob man 4 Bytes mal 8 Bit nimmt, was allerdings falsch ist. Vielleicht
32 Bit = 4 Bytes á 8 Bit o.Ä. -
Damit du online spielen kannst?
Onlinepass kostet was, wenn du keinen geschenkt bekommst, musst du dir wohl einen kaufen. -
Da kann ich dir scheinbar gerade nicht ganz so helfen, bei mir hat bisher alles so geklappt.
Versuch es mal mit fwrite und schau nach ob es da funktioniert