[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
  • Alles klar, danke dir!
    /edit: Kann man auch das R39-2 Plugin mit diesem Tutorial verwenden oder muss man dafür unbedingt das R5 Plugin haben?


    Gehe nicht nach dem, was in einem Tutorial verwendet wird, sondern nach dem, was am besten ist. R5 ist outdated. Also verwende es auch nicht. Verwende die neuste Version, schließlich gibt es eine neuste Version mit Grund. Tutorials zu BlueGs Plugin gibt es genug, da musst du lediglich etwas googlen.


    [BlaZZeR]BirD: Was möchtest du damit bezwecken?


    if(!strlen(inputtext) < 6)

  • /edit: Kann man auch das R39-2 Plugin mit diesem Tutorial verwenden oder muss man dafür unbedingt das R5 Plugin haben?


    Die meisten Tutorials sind leider auf etwas ältere Versionen beschränkt jedoch gibt es ein Wikiartikel darüber wo die ganzen Funktionen erklärt werden, falls du dich lieber an das
    ORM-System wagen möchtest , da du mit dem SQL Syntax nicht zurecht kommst, gibt es noch ein Tutorial auf Deutsch.


    Wiki :


    http://wiki.sa-mp.com/wiki/MySQL/R33


    ORM-Tutorial


    http://gta-sa-mp.de/forum/3-sa…ials/1424-das-orm-system/


    //edit in einer älteren Version ist auch ein beispiel Skript enthalten. (R38 kann es sein musst nochmal die Downloadlinks anschauen)

  • Push!
    Moeglich?

    Hey,
    kann man die Objekt-ID + die ID des standard Objektes ( wie bei "GetVehicleID" oder so ) herausfinden?


    Beispiel:
    411 - Infernus
    241 - Vehicle-Id


    Nur so bei den standard Objekten


    Und kann man machen, dass wenn ein Fahrzeug einen Berg runterfährt, dass der dann keinen Speedboost benutzen kann?

  • Und kann man machen, dass wenn ein Fahrzeug einen Berg runterfährt, dass der dann keinen Speedboost benutzen kann?


    Ja und Ja


    Dazu brauchst du einmal das Streamerplugin:


    Da gibt es folgende Funktionen:


    native Streamer_GetFloatData(type, {Text3D,_}:id, data, &Float:result);
    native Streamer_SetFloatData(type, {Text3D,_}:id, data, Float:value);
    native Streamer_GetIntData(type, {Text3D,_}:id, data);
    native Streamer_SetIntData(type, {Text3D,_}:id, data, value);
    native Streamer_GetArrayData(type, {Text3D,_}:id, data, dest[], maxlength = sizeof dest);
    native Streamer_SetArrayData(type, {Text3D,_}:id, data, const src[], maxlength = sizeof src);
    native Streamer_IsInArrayData(type, {Text3D,_}:id, data, value);
    native Streamer_AppendArrayData(type, {Text3D,_}:id, data, value);
    native Streamer_RemoveArrayData(type, {Text3D,_}:id, data, value);
    native Streamer_GetUpperBound(type);


    um nur die objectid zu ermitteln kannst du die Funktion nutzen


    native Streamer_GetIntData(type, {Text3D,_}:id, data);


    den typ und den datenwert data bekommst du hier raus http://forum.sa-mp.com/showthread.php?t=102865
    siehe Definitions(type) und Enumerator(data)


    Beim zweiten Punkt ermittelst du ganz einfach die Velocity des fahrzeugs du benötigst davon lediglich den z-wert.
    zusätzlich kannst du abfragen mit dem mapandreas (include doer plugin) ob das Fahrzeug sich auf der straße fährt oder in der Luft ist falls das gewünscht ist.

  • Wenn ich 50 blaue Kugeln, 30 grüne, 15 gelbe und 5 rote Kugeln habe,
    wie hoch ist dann die wahrscheinlichkeit 3 blaue, 3 grüne, 3 gelbe und 3 rote zu bekommen?
    (mit zurücklegen)


    Habe ich das richtig berechnet?


    Blaue Kugeln:
    Chance: 50 / 100 (3x)
    = 50 * 50 * 50 / 100 * 100 * 100
    = 0,125
    = 1 / 8


    Grüne Kugeln: 1 / 37
    Gelbe Kugeln: 1 / 296
    Rote Kugeln: 1 / 8000

  • IPrototypeI: Danke dir!
    Jedoch habe ich mit MapAndreas noch nie gearbeitet.. Könntest du mir vlt erklären, wie ich das mit MapAndreas mache?
    Wäre sehr nett.. Danke im Voraus!


    MapAndreas verfügt lediglich über zwei Funktionen. Mit MapAndreas_Init() initialisierst du, wie die Funktion bereits sagt, das Plugin und mit MapAndreas_FindZ_For2DCoord() ermittelst du die Z-Koordinate (Höhe) des Grunds. Ist die Z-Koordinate deines Autos kleiner, ist es unter dem/im Boden. Ist die Z-Koordinate größer, so ist dein Auto in der Luft über dem Boden.


    Weiß jmd wie ich den Globalen Chat mit den bunten Farben deaktiviere und ein Sagt/Schreit System mit bestimmter Reichweite einbauen kann ?


    Dazu gibt es mehrere Tutorials. Der Ansatz ist:

    • In OnPlayerText() 0 statt 1 returnen, um die Nachrichten nicht global zu senden.
    • Unter OnPlayerText() die "text" Variable entsprechend formatieren und via SendClientMessage() an Spieler in der Nähe senden.
  • Warum funktioniert das nicht ?


    SetPlayerAttachedObject(playerid,0,1210,6,0.310000,0.066999,0.000000,0.000000,-91.900009,0.000000,1.000000,1.000000,1.000000);


    //Löschen
    StopPlayerHoldingObject(playerid);
    Auch DestroyObject(KofferObjTutorial[playerid]); hat nichts gebracht ...


    p.s.
    "StopPlayerHoldingObject" ist ein define ausm Wiki

  • Moin,


    ich möchte, dass wenn der Spieler im Tutorial in sein Fahrzeug einsteigt, einen Timer erhält, jedoch wird der Timer nicht gestoppt, weiß jemand das Problem?


    mein Code:

    Code
    BotSpeakTimer[playerid] = SetTimerEx("BotGivesInstructions", 3000, true, "i", playerid);	KillTimer(BotSpeakTimer[playerid]);



    MfG


    #e
    Jeffry:

  • MapAndreas verfügt lediglich über zwei Funktionen. Mit MapAndreas_Init() initialisierst du, wie die Funktion bereits sagt, das Plugin und mit MapAndreas_FindZ_For2DCoord() ermittelst du die Z-Koordinate (Höhe) des Grunds. Ist die Z-Koordinate deines Autos kleiner, ist es unter dem/im Boden. Ist die Z-Koordinate größer, so ist dein Auto in der Luft über dem Boden.


    Hallo Chris. , um deiner Aussage noch etwas hinzuzufügen.
    Es gibt lediglich die Include von Ryder, welche jedoch langsamer arbeitet als das Plugin, verwendet jedoch deutlich weniger an RAM, find persönlich besser im RAM verbrauch,
    da die meisten hoster davon nicht so der Fan sind.


    Include:
    http://forum.sa-mp.com/showthread.php?t=273263


    Kommen wir zum Plugin, die gepostete Version ist sogesehen veraltet Mauzen hat das Plugin mal geupdatet und paar super Funktionen hinzugefügt, ebenso alles mal optimiert
    http://forum.sa-mp.com/showthread.php?t=275492


    Welche weiteren Funktionen:
    Mna hat die Möglichkeit neue koordinaten der Safull.hmap hinzuzufügen oder einfach seine eigene .hmap zu erstellen. Somit hat man die Möglichkeit die z-positionen seiner eigenen Maps hinzuzufügen.


  • Auf Anfrage in PN:


    Was passiert denn, wenn du was machst?
    Beschreibe bitte was du machst, und was passiert (eventuelle Nachrichten im Chat...).


    Nunja, wenn man als Leader ins Auto steigt, erscheint ein Dialog mit Ja oder Nein.
    Wenn man Ja drückt, wird ja eigentlich geguckt ob in der Fkasse genug Geld drin ist. Gehen wir davon aus das LSPD 500$ in der Fkasse hat und das Auto 250.000$ kostet. Wenn der Leader nun JA drückt müsste eigentlich stehen das nicht genung in der Fkasse drin ist, jedoch kann er das Auto kaufen.
    Auch wenn er Genung Geld drin hat, wird nichts der Fkasse abgezogen.


    Mfg Saphire

  • Moin,


    Möchte mein Script per Localhost starten, aber es stürzt immer ab.


    Script hat keine Errors. Als Passwort habe ich keins gewählt.


    Hier die Logs:


    Serverlog
    ----------
    Loaded log file: "server_log.txt".
    ----------

    Serverlog
    SA-MP Dedicated Server
    ----------------------
    v0.3z, (C)2005-2014 SA-MP Team

    Serverlog
    [17:47:22]
    [17:47:22] Server Plugins
    [17:47:22] --------------
    [17:47:22] Loading plugin: sscanf
    [17:47:22]

    Serverlog
    [17:47:22] ===============================

    Serverlog
    [17:47:22] sscanf plugin loaded.

    Serverlog
    [17:47:22] Version: 2.8.1

    Serverlog
    [17:47:22] (c) 2012 Alex "Y_Less" Cole

    Serverlog
    [17:47:22] ===============================

    Serverlog
    [17:47:22] Loaded.
    [17:47:22] Loading plugin: streamer
    [17:47:22] Loaded.
    [17:47:22] Loading plugin: mysql
    [17:47:22] >> plugin.mysql: R39-2 successfully loaded.
    [17:47:22] Loaded.
    [17:47:22] Loaded 3 plugins.

    Serverlog
    [17:47:22]
    [17:47:22] Filterscripts
    [17:47:22] ---------------
    [17:47:22] Loading filterscript 'maps.amx'...
    [17:47:22] Loaded 1 filterscripts.

    Serverlog
    [17:47:22] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
    [17:47:22] <-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!
    [17:47:22] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
    [17:47:22] <-| [MYSQL] Der Server wird nun heruntergefahren!
    [17:47:22]
    --------------------------------------
    [17:47:22] Maps V 0.0.0
    [17:47:22] --------------------------------------

    Serverlog
    [17:47:22]
    ----------------------------------
    [17:47:22] San Andreas Online
    [17:47:22] ----------------------------------

    Serverlog
    [17:47:22] Number of vehicle models: 0
    [17:47:22] --- Server Shutting Down.
    [17:47:22]

    Serverlog
    [17:47:22] ===============================

    Serverlog
    [17:47:22] sscanf plugin unloaded.

    Serverlog
    [17:47:22] ===============================

    Serverlog
    [17:47:22]

    Serverlog
    *** Streamer Plugin v2.7.1 by Incognito unloaded ***

    Serverlog
    [17:47:22] plugin.mysql: Unloading plugin...[17:47:22] plugin.mysql: Plugin unloaded.


    MySQL-Log
    [17:47:22] [DEBUG] mysql_connect - host: "127.0.0.1", user: "root", database: "samp_db", password: "****", port: 3306, autoreconnect: true, pool_size: 2
    [17:47:22] [DEBUG] CMySQLHandle::Create - creating new connection..
    [17:47:22] [DEBUG] CMySQLHandle::CMySQLHandle - constructor called
    [17:47:22] [DEBUG] CMySQLHandle::Create - connection created (id: 1)
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] mysql_errno - connection: 1
    [17:47:22] [DEBUG] mysql_connect - host: "127.0.0.1", user: "root", database: "samp_db", password: "****", port: 3306, autoreconnect: true, pool_size: 2
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLHandle::Create - creating new connection..
    [17:47:22] [WARNING] CMySQLHandle::Create - connection already exists
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] mysql_errno - connection: 1
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] CMySQLConnection::Connect - connection was successful
    [17:47:22] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [17:47:22] [DEBUG] CMySQLConnection::Disconnect - connection was closed
    [17:47:22] [DEBUG] CMySQLHandle::~CMySQLHandle - deconstructor called

  • public OnGameModeInit()
    {
    SetGameModeText(Version);
    mysql_log(LOG_ALL);
    Connect_To_Database();
    return 1;
    }
    ganz unten im Script:
    stock Connect_To_Database()
    {
    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    if(mysql_errno() == 1)
    {

    print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    return true;
    }
    else
    {

    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    if(mysql_errno() == 1)
    {
    print("<-| [MYSQL] Es konnte im 2. Versuch eine Verbindung hergestellt werden!");
    return true;
    }
    else
    {

    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("<-| [MYSQL] Der Server wird nun heruntergefahren!");
    SendRconCommand("exit");
    return true;
    }
    }
    }

  • stock Connect_To_Database()
    {
    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    if(!mysql_errno())
    {


    print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    return true;
    }
    else
    {


    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    if(!mysql_errno())
    {
    print("<-| [MYSQL] Es konnte im 2. Versuch eine Verbindung hergestellt werden!");
    return true;
    }
    else
    {


    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("<-| [MYSQL] Der Server wird nun heruntergefahren!");
    SendRconCommand("exit");
    return true;
    }
    }
    }



    mysql_errno() gibt die Errorid zurück wenn ein fehler auftaucht daher solltest du abfragen ob mysql_errno() Null zurückgibt
    siehe:
    http://wiki.sa-mp.com/wiki/MySQL#mysql_errno


    Zitat

    Error code, 0 if no error occurred.

  • Zwei Anmerkungen dazu:

    • mysql_errno() gibt nicht i.d.R. 1 zurück, sondern den Error-Code. Für Debugging/Logging/... wichtig.
    • Ich würde "false" zurückgeben, wenn eine Verbindung nicht aufgebaut werden konnte. Macht zwar im weiteren Verlauf wenig Unterschied, da der Server gestoppt wird, jedoch würde es mehr Sinn machen.