Nützliche Codeschnipsel

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
  • klein bisschen ressourcneschonender, den wieso erstmal sachen durchführen, die eventuell nicht gebraucht werden? :)
    new einsatz;
    if(sscanf(params, "i", einsatz)) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /cdice [Einsatz]");
    if(!IsPlayerInRangeOfPoint(playerid, 5, 2187.9375,1676.8564,11.1101)) return SendClientMessage(playerid, COLOR_GREY, "Hier kannst du nicht Würfeln!");
    if(einsatz >= 10001 || einsatz <= 999) return SendClientMessage(playerid, COLOR_GREY, "Der mindest Einsatz ist $1000 und der maximale Einsatz $10000");
    new spieleraugen = random(6);
    new computeraugen = random(6);
    new string[128];
    if(spieleraugen < computeraugen){format(string, sizeof(string), "Du verlierst mit einer %d gegen eine %d - Verlust: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, -einsatz);}
    if(spieleraugen > computeraugen){format(string, sizeof(string), "Du gewinnst mit einer %d gegen eine %d - Gewinn: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, einsatz);}
    if(spieleraugen == computeraugen){SendClientMessage(playerid, COLOR_WHITE, "Niemand gewinnt - es wurde ein Unentschieden gewürfelt!");}
    return 1;
    }

    Falsche Freunde: Fragen nach Kippen !
    Wahre Freunde: Sind der Grund, warum du keine Kippen hast !
    Falsche Freunde: Nennen deine Eltern Frau/Herr !
    Wahre Freunde: Nennen deine Eltern Mom/Dad !
    Falsche Freunde: Holen dich aus dem Knast und sagen dir, was getan hast, war falsch !
    Wahre Freunde: Sitzen in der Zelle neben dir und sagen: Scheiße...wir haben‘s verkackt...war aber verdammt lustig ! :P
    Falsche Freunde: Haben dich noch nie weinen sehen !
    Wahre Freunde: Weinen mit dir !
    Falsche Freunde: Werden dich stehen lassen, wenn die Menge das tut !
    Wahre Freunde: Werden der kompletten Menge den Arsch treten, die dich stehen gelassen hat ! c:
    Falsche Freunde: Bleiben für ne Weile !
    Wahre Freunde: Bleiben ein Leben lang !
    Falsche Freunde: Werden die Person, die Scheiße über dich erzählt, blöd vollabern !
    Wahre Freunde: Werden sie einfach ausknocken !
    Falsche Freunde: Werden das hier ignorieren !
    Wahre Freunde: Es Kopieren !


  • Wenn du es schon perfektionieren willst dann direkt die .pwn Datei mit und dann schreibs so:



    new einsatz;
    if(sscanf(params, "i", einsatz)) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /cdice [Einsatz]");
    if(!IsPlayerInRangeOfPoint(playerid, 5, 2187.9375,1676.8564,11.1101)) return SendClientMessage(playerid, COLOR_GREY, "Hier kannst du nicht Würfeln!");
    if(einsatz >= 10001 || einsatz <= 999) return SendClientMessage(playerid, COLOR_GREY, "Der mindest Einsatz ist $1000 und der maximale Einsatz $10000");
    new spieleraugen = random(6), computeraugen = random(6), string[128];
    if(spieleraugen < computeraugen){format(string, sizeof(string), "Du verlierst mit einer %d gegen eine %d - Verlust: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, -einsatz);}
    if(spieleraugen > computeraugen){format(string, sizeof(string), "Du gewinnst mit einer %d gegen eine %d - Gewinn: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, einsatz);}
    if(spieleraugen == computeraugen) return SendClientMessage(playerid, COLOR_WHITE, "Niemand gewinnt - es wurde ein Unentschieden gewürfelt!");
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Paar mysql Dinge:



    stock mysql_CheckIRGENDWAS(id)
    {


    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM `Tabelle` WHERE `id` = '%d'", id);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }


    Verwendung: if(mysql:CheckIRGENDWAS == 1)
    Wenn es vorhanden ist 0 wenn nicht dies kann man z.B bei schleifen für ein Haussystem nehmen damit der server nicht Überladt ^^


    Dan ein Paar Float Dinge:



    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }
    stock Float:mysql_GetFloatByInt(Table[], Field[], Where[], Is)
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%d'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }


    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }

    Und andere Wert-Auslessachen :D

    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }
    stock mysql_GetIntByInt(Table[], Field[], Where[], Is)
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%d'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }
    stock mysql_GetStringByInt(Table[], Field[], Where[], Is)
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%d'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }


    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }
    stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(To, To);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetIntByInt(Table[], Field[], To, Where[], Where2)
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%d'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetStringByInt(Table[], Field[], To[], Where[], Where2)
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(To, To);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%d'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }


    Ihr müsst es eventuell etwas abändern


    MFG Arendium :)

  • @ Arendium & RFT


    Wenn ich dazu mal was anmerken dürfte, diese Variante querys per stock zu übertragen lassen ist schlecht, da dann jeder query einzeln geschickt wird un das bei sagen wir 100 Variablen das System denke ich mal zum leggen oder sogar zum crash bringen wird :S


    Aus diesem Grund würde ich einfach euch empfehlen eine lange query zu schreiben, die alle Variablen beinhaltet...das hätte halt den Vorteil, dass nur 1ne Query gesendet wird und nicht 100 ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S



  • Hättest du dich informiert wüsstest du das es die ersten veröffentlichungen waren für Scripter die keine Ahnung von MySql haben.
    Leute die ahnung davon haben nutzen ihr eigenes System oder nutzen ein anderes was veröffentlicht wurde =)

    RFT

  • Hättest du dich informiert wüsstest du das es die ersten veröffentlichungen waren für Scripter die keine Ahnung von MySql haben.


    Das sollte allgemein eine Information für Neulinge in diesem Bereich sein ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Was man natürlich auch machen kann, um PVars einzubinden, einfach ein anderes zeichen definieren $ für normale variablen und § für PVars z.B :)


    mfg

    Falsche Freunde: Fragen nach Kippen !
    Wahre Freunde: Sind der Grund, warum du keine Kippen hast !
    Falsche Freunde: Nennen deine Eltern Frau/Herr !
    Wahre Freunde: Nennen deine Eltern Mom/Dad !
    Falsche Freunde: Holen dich aus dem Knast und sagen dir, was getan hast, war falsch !
    Wahre Freunde: Sitzen in der Zelle neben dir und sagen: Scheiße...wir haben‘s verkackt...war aber verdammt lustig ! :P
    Falsche Freunde: Haben dich noch nie weinen sehen !
    Wahre Freunde: Weinen mit dir !
    Falsche Freunde: Werden dich stehen lassen, wenn die Menge das tut !
    Wahre Freunde: Werden der kompletten Menge den Arsch treten, die dich stehen gelassen hat ! c:
    Falsche Freunde: Bleiben für ne Weile !
    Wahre Freunde: Bleiben ein Leben lang !
    Falsche Freunde: Werden die Person, die Scheiße über dich erzählt, blöd vollabern !
    Wahre Freunde: Werden sie einfach ausknocken !
    Falsche Freunde: Werden das hier ignorieren !
    Wahre Freunde: Es Kopieren !

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Was man natürlich auch machen kann, um PVars einzubinden, einfach ein anderes zeichen definieren $ für normale variablen und § für PVars z.B


    mfg


    Du hast das Problem offensichtlich nicht verstanden...


    Wie willst du denn (außer mit #emit) rausfinden, welchen Wert z.B. die Variable $name hat :huh:


    mfg. :thumbup:


    //Edit:
    Ich muss diesen Beitrag editieren um keinen Doppelpost zu machen...


    So egal, ich möchte einen Code vorstellen um ein Auto zu vermessen !


    printf("Breite: %.1fm",GetVehicleSize(411, 0));//prints: "Breite: 2.3m"
    printf("Länge: %.1fm",GetVehicleSize(411, 1));//prints: "Länge: 5.7m"
    printf("Höhe: %.1fm",GetVehicleSize(411, 2));//prints: "Höhe: 1.3m"



    stock Float:GetVehicleSize(modelid, var)
    {
    new Float:X, Float:Y, Float: Z;
    GetVehicleModelInfo(modelid, VEHICLE_MODEL_INFO_SIZE, X, Y, Z);
    switch(var)
    {
    case 0: return X;
    case 1: return Y;
    case 2: return Z;
    }
    return -1.0;
    }


    mfg. :thumbup:


    //Edit²: bisschen anders geschrieben

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    2 Mal editiert, zuletzt von Kaliber ()

  • GetVehicleModelInfo

    Dafür extra ein Stock? - Total unnötig.


    //Goldkiller: Bitte ... es heißt wenn überhaupt:
    Dafür eine extra Funktion ?



    //edit Jony:
    Naja, darüber lässt sich definitiv streiten.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

    Einmal editiert, zuletzt von Goldkiller ()

  • Naja, darüber lässt sich definitiv streiten.


    Über die Wichtigkeit dieser Funktion lässt sich ebenfalls streiten ;)


    Falls man zum Beispiel nur die Höhe oder Breite oder Länge wissen will bekommt man auch nur den einen Wert und nicht alle 3 ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Über die Wichtigkeit dieser Funktion lässt sich ebenfalls streiten ;)


    Falls man zum Beispiel nur die Höhe oder Breite oder Länge wissen will bekommt man auch nur den einen Wert und nicht alle 3 ^^


    mfg. :thumbup:

    Da hast Du vollkommen Recht! - Es ist immer Ansichtssache, wie man etwas erstellt oder wie man zu seinem gewünschten Ziel kommt.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Mal wieder was hier rein schreiben, auch wenn es nichts großes ist:


    Code
    stock file_get_contents(Pfad[])
    {
        new File:f = fopen(Pfad, io_read), buffer[128];
        fread(f, buffer);
        fclose(f);
        return buffer;            
    }


    Code
    stock file_set_contents(Pfad[], text[])
    {
        if(fexist(Pfad)) new File:f = fopen(Pfad, io_append);
        else new File:f = fopen(Pfad, io_write);
        fwrite(f, text);
        fclose(f);
        return 1;
    }



    //Edit:


    Code
    stock copy(Pfad[], NewName[])
    {
        if(!fexist(Pfad)) return 0;
        new buffer[128];
        format(buffer, 128, "%s", file_get_contents(Pfad));
        new File: f = fopen(NewName, io_write);
        fwrite(f, buffer);
        fclose(f);
        return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • Code
    stock Random(mini, maxi)
    {    
        new rand = random(maxi - mini) +mini;    
        return rand;
    }


    Beispiel



    100 = Minimalste anzahl also er bekommt mindestens 100 $
    1000 = Höchste anzahl also er bekommt höchstens 1000$

    Code
    GivePlayerMoney(playerid, Random(100, 1000));

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung

  • Errechnet das Alter nach Angabe des Geburtsdatums als string:

    Code
    printf("Hans ist %d Jahre alt",GetAge("12.11.1975"));


    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Ich hab mal zum Thema Alter berechnen auch einen kleinen code gschrieben welche schneller sein sollte als der von Hauk
    und was er bestimmt auch ist.


    Verwendung:

    Code
    ocmd:date(playerid,params[])
    {
    	new datum[30],string[40];
    	if(sscanf(params,"s[30]",datum))return SendClientMessage(playerid,-1,"Benutze /date [text]");
    	format(string,64,"Du bist %d",GetAge(datum));
    	SendClientMessage(playerid,-1,string);
    	return 1;
    }



    Code:



    Output bei
    /date 10.9.2000
    12


    /date 10.12.2000
    11

  • Ich brauche gerade eine Möglichkeit herauszufinden wie lange ein Spieler schon auf dem Server ist und wollte dafür keine Timer benutzen, deshalb hab ich eine "GetPlayerTickCount" Funktion geschrieben, vielleicht findet einer ja Verwendung dafür:




    Ich weiß nicht, ob es die beste Lösung ist, reicht für mich aber aus.


    P.S. Es gibt die Zeit die ein Spieler auf dem Server ist in Millisekunden aus, mit folgendem kann man es gaanz leicht in Sekunden umwandeln.

    Code
    stock ms(ms)
    {
    	return ms/1000;
    }

    Einmal editiert, zuletzt von Frosty ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen