[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Ich hab keinen Link bekommen.


    Ja, als stock kannst du es auch schreiben, dann sieht es so aus:
    new string[128];
    format(string, sizeof(string), "%s hat den Server betreten [%d]", SpielerName(playerid), playerid);
    stock SendAdminMessage(ROT, string);


    stock SendAdminMessage(color, msg[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++) if(SpielerInfo[i][Level] > 0) SendClientMessage(i, color, msg);
    return 1;
    }


    Du musst eben die if-Abfrage mit deiner Level-Abfrage ersetzen.

  • Hat jemand dafür eine Erklärung?


    Code:
    Der query der aufgerufen wird
    mysql_tquery("(SELECT * FROM `ServerCars` WHERE `Y` < -1114.5 LIMIT 2) UNION (SELECT * FROM `ServerCars` WHERE `Y` > -1114.5 LIMIT 2)", MYSQL_SELECT_TEST, SelectHandle, 0);


    Aufgerufenes Callback
    public OnMysqlQuery(resultid, spareid, MySQL:handle)
    {
    new query[100];
    if(resultid == MYSQL_SELECT_TEST)
    {
    mysql_store_result(handle);
    while(mysql_fetch_row(query))
    {
    print(query);
    }
    mysql_free_result(handle);
    }
    if(mysql_result_stored(handle)) mysql_free_result(handle);
    return true;
    }


    Laufwerk "G" ist mein Blue-Ray Brenner :|


    //Edit: Problem gefunden.
    Der Array in dem es gespeichert werden sollte (query) war zu klein

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

    Einmal editiert, zuletzt von Akino Kiritani ()

  • Wenn ich zwei Tabellen habe die zusammenhängen, dann kann ich doch auch beide löschen, oder?


    Beispiel:
    Tabelle1:

    Code
    Name	ID	Variable
    ------+------+------------
    Max   |   5  |	100
    Theo  |   45 |	222
    Tim   |   2  |	6


    Tabelle2:

    Code
    num	Variable1	Variable2
    ------+---------------+------------
    5     |   55          |	   100
    45    |   12          |	   262
    45    |   13          |	   212
    45    |   14          |	   252
    45    |   15          |	   222
    2     |   2           |	   6


    Wie muss der korrekte Syntax aussehen um alles mit ID 45 zu löschen?


    SQL
    DELETE Tabelle1,Tabelle2 FROM Tabelle1,Tabelle2 WHERE Tabelle1.ID=45 AND Tabelle2.num=45


    So? Wenn ja, verstehe ich nicht, warum ich 2x die Tabellen auflisten lassen muss.

  • DELETE Tabelle1,Tabelle2 FROM Tabelle1,Tabelle2 WHERE Tabelle1.ID=45 AND Tabelle2.num=45


    Normal machst du einen Inner-Join

    SQL
    DELETE Tabelle1,Tabelle2 FROM Tabelle1,Tabelle2 WHERE Tabelle1.ID= Tabelle2.num AND Tabelle1.ID=45;


    Tabelle1,Tabelle2 muss nicht umbedingt aufgelistet werden das query funktioniert genauso gut so


    SQL
    DELETE FROM Tabelle1,Tabelle2 WHERE Tabelle1.ID= Tabelle2.num AND Tabelle1.ID=45;


    ob du jetzt Tabelle1,Tabelle2 nach DELETE hinzufügst bleibt dir überlassen manche machen dies eventuell zur übersicht.

  • @iFeet: Diese Plugins verwenden keine vorher aufgenommenen Records (deshalb heißt es in dem Tutorial ja aus "Rec-Frei").
    Außerdem geht es nicht, dass man mit einem Record in ein Auto einsteigt, da ein NPC per Record nur zu Fuß oder nur im Fahrzeug sein kann.


    Gibt es eine möglichkeit einen Bot dann in ein Car einsteigen zu lassen? also mit Animation?


    Ich denke nicht, dass das mit dem Plugin geht, zumal es ja nicht mal eine Funktion gibt um das für einen Spieler hinzubekommen. Es gibt zwar PutPlayerInVehicle, aber das führt die Animation nicht aus. Selbst wenn man die Animations-ID kennt scheint mir das nicht machbar, da man diese ja nicht mit dem Fahrzeug verknüpfen kann.


    Es müsste, das kannst du ja im englischen Forum mal vorschlagen, eine Funktion wie "PlayerEnterVehicle(playerid, vehicle)" geben, die den Spieler neben das Fahrzeug (vehicleid) setzt und dann die Animation durchführt, bzw. das Drücken von "Enter" simuliert.

  • Es müsste, das kannst du ja im englischen Forum mal vorschlagen, eine Funktion wie "PlayerEnterVehicle(playerid, vehicle)" geben, die den Spieler neben das Fahrzeug (vehicleid) setzt und dann die Animation durchführt, bzw. das Drücken von "Enter" simuliert.



    Danke für die schnelle Antwort, das wäre eine Idee.
    Danke für die Hilfe ich schau mal wies ausschaut wenn ich den NPC neben das car hinlaufen lasse und ihn dann rein setzte.


    MfG

  • @iFeet: Diese Plugins verwenden keine vorher aufgenommenen Records (deshalb heißt es in dem Tutorial ja aus "Rec-Frei").
    Außerdem geht es nicht, dass man mit einem Record in ein Auto einsteigt, da ein NPC per Record nur zu Fuß oder nur im Fahrzeug sein kann.



    Ich denke nicht, dass das mit dem Plugin geht, zumal es ja nicht mal eine Funktion gibt um das für einen Spieler hinzubekommen. Es gibt zwar PutPlayerInVehicle, aber das führt die Animation nicht aus. Selbst wenn man die Animations-ID kennt scheint mir das nicht machbar, da man diese ja nicht mit dem Fahrzeug verknüpfen kann.


    Es müsste, das kannst du ja im englischen Forum mal vorschlagen, eine Funktion wie "PlayerEnterVehicle(playerid, vehicle)" geben, die den Spieler neben das Fahrzeug (vehicleid) setzt und dann die Animation durchführt, bzw. das Drücken von "Enter" simuliert.


    Die Funktion kann man nicht ausführen, da diese Clientseitig funktioniert.
    Wenn man in der SA-MP Wiki nachschlägt, findet man vieles von diesen Informationen.
    Dort sind dann alle IDs, sowie Erklärungen und Namen dazu.
    D.h.Animationen wie das Aus- und Einsteigen werden Clientseitig geladen -> deswegen bei ca 200 Spielern auch Synchronisationsfehler (hoffe mal, dass ich es richtig geschrieben habe) ;)



    Gruß,
    iEnerqie.

  • Hallo liebe com
    ich habe eine kleine Frage, da ich Freitag wahrscheinlich anfangen will mein tutorial einzufügen/erstellen habe ich eine 2 keine fragen


    1 ich will den Spieler in eine virtuelle Welt setzten z.b 20 sieht er dann auch das gemappte ? ich habe das über ein Filterscript laufen da ich das nicht im Script haben will ( das gemappte wird mit CreateDynamicObject gemacht )
    2 sollte ich den Spieler am besten in einer andere Welt setzen fürs tutorial das die anderen ihn nicht sehen und denken er hackt ?


    Mit Freundlichen Grüßen
    Snake ♤

  • Ob er andere gemappte Objekte sieht weiß ich leider nicht, aber ich denke Ja.
    Naja musst du wissen ob du in Lieber in einer anderen Welt setzen möchtest, ich würde es machen so das er die anderen Spieler nicht sieht und die anderen ihn nicht.

  • 1 ich will den Spieler in eine virtuelle Welt setzten z.b 20 sieht er dann auch das gemappte ? ich habe das über ein Filterscript laufen da ich das nicht im Script haben will ( das gemappte wird mit CreateDynamicObject gemacht )
    2 sollte ich den Spieler am besten in einer andere Welt setzen fürs tutorial das die anderen ihn nicht sehen und denken er hackt ?


    1) Ja, außer du hast dem Dynamic-Object eine virtuelle Welt zugewiesen.
    2) Wäre zu empfehlen.