Beiträge von Kaliber

    Wie überprüfe ich in einem Dialog ob die Eingabe eine Zahl war ?


    Sobald du auf einen Knopf von dem Dialog drückst wird dieser Callback aufgerufen:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1) //die 1 ändern in deine dialogid !
    {
    if(!repsonse) return 1; //Wenn er auf Abbrechen klickt
    new zahl = strval(inputtext);
    //zahl hat den Wert von dem, was in das Input Fenster eingegeben wurde !
    }
    return 1;
    }


    mfg. :thumbup:

    nimm mal nur cmd und mach über alls aus cmdtext cmd ist das GF ? oder willst du was aus gf in selfmade rien klatschen ?


    Man man man...


    Also, erstmal dieses cmd ist notwendig, dafür das man strtok nutzen kann ... solltest du evtl auch :D


    und der Fehler kommt anscheinend einfach nur daher, dass er das nicht in den Callback OnPlayerCommandText schreibt, sondern irgendwo anders hin, denn eigentlich muss man nicht unbedingt strtok nutzen, man könnte auch sscanf nutzen, dann bräuchte man auch kein "cmd" ;)


    mfg. :thumbup:

    Habe es dir mal geschrieben, wenn du sozial bist, schickste mir den PSC Code:



    Ist nicht getestet, sollte aber gehen ^^


    Man brauch nur einen mysql_Set und einen mysql_Get Befehl, da die Variablen so schön sind und man nicht direkt auf String/Floats/Integers achten muss ;)


    mfg. :thumbup:

    format(query, sizeof(query), "UPDATE `tankstellen` SET (`Besitzer`,`Erpresser`,`TankeText`) WHERE ('%s','%s','%s')", TankeInfo[t][tOwner],TankeInfo[t][tExtortion],TankeInfo[t][tMessage]);


    Ja, kein wunder, weil dein SQL-Statement falsch ist ^^


    So muss das aussehen:


    format(query, sizeof(query), "UPDATE `tankstellen` SET `Besitzer`='%s',`Erpresser`='%s',`TankeText`='%s' WHERE `id`='%d'", TankeInfo[t][tOwner],TankeInfo[t][tExtortion],TankeInfo[t][tMessage],t);


    mfg. :thumbup:

    Sollte so in der Art funktionieren.


    Nutze doch bitte eine for-schleife:


    stock SendAdminMessage(playerid, farbe, const message[]) {
    for(new i; i<MAX_PLAYERS; i++) if SpielerInfo[i][pAdmin] >= 1 && IsPlayerConnected(i))) SendClientMessage(i, farbe, message[]);
    }


    Wenn man die Funktion aufrufen will, macht man kein ; ^^


    mfg. :thumbup:

    mysql_GetFloat, ist von maddin auf den Spielernamen ausgelegt, wenn du das ändern willst, mache es so:


    stock Float:mysql_GetFloat2(Table[], Field[], Where[], Is)//Oberhalb von deiner Funktion (stock) schreiben
    {
    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;
    }


    Dann halt mysql_GetFloat2 schreiben und des funktioniert ;)


    mfg. :thumbup:

    Ja, so ungefähr:


    new veh = GetPlayerVehicleID(playerid),Float:Q[4];
    GetVehiclePos(veh,Q[0],Q[1],Q[2]);
    GetVehicleZAngle(veh,Q[3]);
    new obj = CreateObject(19353,Q[0],Q[1],Q[2],0,0,Q[3],300.0);
    AttachObjectToVehicle(obj, veh, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0);
    SetObjectMaterialText(obj, "SA-MP {FFFFFF}0.3{008500}e {FF8200}RC7", 0,90,"Arial", 28, 0, 0xFFFF8200, 0xFF000000,1);


    mfg. :thumbup:

    Man kann Keys als String wiedergeben, sähe dann so aus:


    SendClientMessage(playerid,-1,"Um das zu betreten drücke: ~k~~VEHICLE_ENTER_EXIT~"); //Da würde jetzt Return stehen


    mfg. :thumbup:

    Durch einen Array auf einen Spieler beziehen, sprich so:


    new TachoTimer[MAX_PLAYERS];


    TachoTimer[playerid] = SetTimerEx("UpdateTacho",TACHOTIMER, true, "i",playerid);


    KillTimer(TachoTimer[playerid]);


    mfg. :thumbup: