Beiträge von Dario

    Hallo


    Wollte einen /clear Befehl machen. Den Grund für das Wanted trage ich in meine mysql-Datenbank ein.
    ocmd:clear(playerid,params[])
    {
    printf("[%s] /clear %s",SpielerInfo[playerid][pName],params);
    new string[512], pID;
    if(mysql_GetInt("userdata", "Fraktion", "Name", SpielerInfo[playerid][pName]) == 1 || mysql_GetInt("userdata", "Fraktion", "Name", SpielerInfo[playerid][pName]) ==2 ||
    mysql_GetInt("userdata", "Fraktion", "Name", SpielerInfo[playerid][pName]) ==3 || mysql_GetInt("userdata", "Fraktion", "Name", SpielerInfo[playerid][pName]) ==18)
    {
    if(sscanf(params,"us",pID, string))return SendClientMessage(playerid,farbe_blau,"/clear [ID] [Grund]");
    if(mysql_GetInt("userdata", "duty", "Name", SpielerInfo[playerid][pName]) == 1)
    {
    if(mysql_GetInt("polizeicomputer", "w1", "Verbrecher", SpielerInfo[pID][pName]) == 1)
    {
    new grund[512];
    grund = mysql_GetString("polizeicomputer", "wanted1", "Verbrecher", SpielerInfo[pID][pName]);
    if(string == grund)
    {
    SendClientMessage(playerid,farbe_rot,"Das stimmt :)");
    }
    }
    }
    }
    return 1;
    }
    Mein Problem ist jetzt allerdings, dass er mir bei der Zeile
    if(string == grund)
    den Fehler bringt:

    Code
    error 033: array must be indexed (variable "string")


    Wie kann ich das beheben, dass er mir die 2 Strings vergleicht und mir dann das Wanted cleart (muss noch eingefügt werden), falls der Grund und der eingegebene String übereinstimmen.



    Gruß Dario



    /edit: Einrückungen bearbeitet

    Hallo


    Brauche einmal Hilfe bei meinem Ban-Befehl:
    ocmd:ban(playerid,params[])
    {
    printf("[%s] /ban %s",SpielerInfo[playerid][pName],params);
    if(mysql_GetInt("userdata", "AdminLevel", "Name", SpielerInfo[playerid][pName]) <2)
    return SendClientMessage(playerid,farbe_rot,"Du bist kein Admin!");
    new pID,reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,farbe_blau,"/ban [ID] [Grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s.",SpielerInfo[pID][pName],SpielerInfo[playerid][pName],reason);
    SendAdminMessage(farbe_rot,string);
    format(string,sizeof(string),"AdmCmd: Du wurdest von %s gebannt. Grund: %s.",SpielerInfo[playerid][pName],reason);
    SendClientMessage(pID,farbe_rot,string);
    mysql_SetInt("userdata", "ban", 2, "Name", SpielerInfo[pID][pName]);
    mysql_SetString("userdata", "banadmin", SpielerInfo[playerid][pName], "Name", SpielerInfo[pID][pName]);
    mysql_SetString("userdata", "bangrund", reason, "Name", SpielerInfo[pID][pName]);
    Kick(pID);
    return 1;
    }
    Mein Problem ist hier, dass er mich zwar kickt und auch die Meldungen kommen (SendClientMessage und SendAdminMessage), allerdings trägt er nichts in die Datenbank ein (bei "ban" die 2, banadmin, bangrund). Kann mir jemand helfen?


    Gruß Dario


    /edit: PAWN-Code korrigiert (Einrückungen)


    Jo hilft, werd alle mysql-Abfragen rausnehmen müssen.


    Ich bedanke mit für deine Hilfe



    Gruß Dario

    Ersetze mal rein testweise den MYSQL Parameter in Zeile 23 durch "1" oder so - nur um zu sehen, ob das der Auslöser ist.


    Hab die mysql-Abfrage raus genommen und eine 1 eingesetzt und er geht eine Zeile weiter. Bis Zeile 23, danach ist Schluss.

    Gut, dann die Radikalkur:


    Setze mal hinter jede (!) Zeile im Command ein print("Zahl"), wobei du Zahl auch als Ziffer schreibst und bei jeder Zeile um eins erhöhst, damit wir wissen, bis zu welchem Punkt der Command überhaupt ausgeführt wird.


    Zeile 22 macht er noch, danach ist Schluss.


    Gruß Dario

    Steht auch nichts im Log?


    Gibts eigentlich Warnings im Script? So wie du die Strings in den Zeilen 9-13 behandelst dürfte doch da gar nix compilen :o


    In der Log steht nichts und es gibt auch keine Warnings im Script beim compilen.


    /Edit: Die Zeilen 9-13 (also job1-job4) sind weiter oben genauer erklärt, was das für welche sind. Der soll die nur dann dort einfügen (also Variable job)

    Hallo


    bräuchte mal Hilfe bei meinem /stats-Befehl mit ShoPlayerDialog:
    if(strcmp(cmdtext,"/stats",true)==0)
    {
    LoadPlayer(playerid);
    new job[64];
    new Float:health;
    GetPlayerHealth(playerid,health);
    switch(mysql_GetInt("userdata", "Beruf", "Name", SpielerInfo[playerid][pName]))
    {
    case 0:(job="Arbeitslos");
    case 1:(job=job1);
    case 2:(job=job2);
    case 3:(job=job3);
    case 4:(job=job4);
    }


    //1.Reihe
    new string_kopf[32];
    new string1[128], string2[128], string3[128], string4[128], string5[128], string6[128];
    new string7[128], string8[128], string9[128], string10[128], string11[128], string12[128];
    new fullstr[2048];
    format(string_kopf,sizeof(string_kopf),"Stats von %s",SpielerInfo[playerid][pName]);
    format(string1,sizeof(string1),"[[Statistik über deinen Account]]");
    format(string2,sizeof(string2),"Level: %i Geld: %i Telefon: %i",SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld], mysql_GetInt("userdata", "Telefonnummer", "Name", SpielerInfo[playerid][pName]));
    format(string3,sizeof(string3),"Verwarnungen: %i AdminLevel: %s Bank: %i",mysql_GetInt("userdata", "Warn", "Name", SpielerInfo[playerid][pName]),SpielerInfo[playerid][pAdminLevel],mysql_GetInt("userdata", "Bank", "Name", SpielerInfo[playerid][pName]));
    format(string4,sizeof(string4),"");
    format(string5,sizeof(string5),"[[Beruf]]",SpielerInfo[playerid][pName]);
    format(string6,sizeof(string6),"Fraktion: %s Rang: %s Beruf: %s",Fraktion(playerid),FraktionsRang(playerid),job);
    format(string7,sizeof(string7),"");
    format(string8,sizeof(string8),"[[Besitz]]",SpielerInfo[playerid][pName]);
    format(string9,sizeof(string9),"Haus: %s",mysql_GetString("haus", "Standort", "Besitzer", SpielerInfo[playerid][pName]));
    format(string10,sizeof(string10),"");
    format(string11,sizeof(string11),"[[Verbrechen]]",SpielerInfo[playerid][pName]);
    format(string12,sizeof(string12),"Kills: %i Tode: %i WantedLevel: %i",SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],mysql_GetInt("userdata", "WantedLevel", "Name", SpielerInfo[playerid][pName]));
    format(fullstr,sizeof(fullstr),"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s",string1,string2,string3,string4,string5,string6,string7,string8,string9,string10,string11,string12);

    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"string_kopf","fullstr","Schließen","");
    return 1;
    }


    Errors kommen allerdings keiner. InGame kommt dann allerdings nur Server: Unkown Command. Kann mir jemand helfen?


    Gruß Dario

    Hallo


    hab mal eine Frage: Wie kann ich einen Timer (SetTimer) auslesen, d.h. wie kann ich die Zeit raus bekommen, die jetzt noch runtergezählt werden müsste.


    Mein Beispiel:


    Ich stecke jemanden ins Prison mit dem /arrest. Dabei geb ich eine Zeit an, die mit einem Timer runter gezählt wird. Das Problem der Spieler loggt sich aus. Jetzt müsste man den Timer halt auslesen und in die Datenbank eingetragen werden. Wenn der Spieler sich wieder einloggt, dann sollte die Restzeit aus der Datenbank ausgelesen und in den Timer wieder eingelesen werden und der Timer sollte wieder starten. Wie kann ich machen?



    Gruß Dario

    Meines erachtens ist das im Interior?


    wenn ja musst du mit "SetPlayerInterior(playerid,ID);" das Interior festlegen.



    Gruß Dario

    Mein 2. Problem konnte gelöst werden. Allerdings hab ich noch keine Ahnung wie ich das mit dem IsPlayerInArea lösen kann.


    Wenn ich das so einfüge, kommen bei mir folgende Fehler:



    Kann mir jemand helfen?


    Da kommt dann inGame gar nichts, da er pFraktionID nicht kennt (is ja glaub ich über dini oder so) und ich arbeite mit mysql. Wie kann ich das hier umschreiben, damit ich das auch mit mysql benutzen kann.


    Wenn ich das so einfüge, kommen bei mir folgende Fehler:



    Kann mir jemand helfen?

    Hallo


    ocmd:engine(playerid,params[])
    {
    new a = GetPlayerVehicleID(playerid);
    new vid,engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vid,engine, lights, alarm, doors, bonnet, boot, objective);
    if(engine == 0 && IsPlayerDriver(playerid))
    {
    engine = 1;
    SendClientMessage(playerid,COLOR_WHITE,"Motor wird gestartet ...");
    SetVehicleParamsEx(a,engine, lights, alarm, doors, bonnet, boot, objective);
    }
    else if(engine == 1 && IsPlayerDriver(playerid))
    {
    engine = 0;
    SendClientMessage(playerid,COLOR_WHITE,"Motor ausgeschaltet.");
    SetVehicleParamsEx(a,engine, lights, alarm, doors, bonnet, boot, objective);
    }
    return 1;
    }


    ocmd:lights(playerid,params[])
    {
    new a = GetPlayerVehicleID(playerid);
    new vid,engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vid,engine, lights, alarm, doors, bonnet, boot, objective);
    if(lights == 0 && IsPlayerDriver(playerid))
    {
    lights = 1;
    SetVehicleParamsEx(a,engine,lights, alarm, doors, bonnet, boot, objective);
    }
    else if(lights == 1 && IsPlayerDriver(playerid))
    {
    lights = 0;
    SetVehicleParamsEx(a,engine, lights, alarm, doors, bonnet, boot, objective);
    }


    return 1;
    }


    ocmd:lock(playerid,params[])
    {
    new a = GetPlayerVehicleID(playerid);
    new vid,engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vid,engine, lights, alarm, doors, bonnet, boot, objective);
    if(doors == 0 && IsPlayerDriver(playerid))
    {
    doors = 1;
    SendClientMessage(playerid,COLOR_WHITE,"Fahrzeug abgeschlossen");
    SetVehicleParamsEx(a,engine, lights, alarm, doors, bonnet, boot, objective);
    }
    else if(doors == 1 && IsPlayerDriver(playerid))
    {
    doors = 0;
    SendClientMessage(playerid,COLOR_WHITE,"Fahrzeug aufgeschlossen");
    SetVehicleParamsEx(a,engine, lights, alarm, doors, bonnet, boot, objective);
    }


    return 1;
    }


    Was muss ich beim diesen 3 Befehlen ändern, dass ich sie untereinander benutzen kann.
    Mein Problem liegt daran, dass wenn ich /engine eingebe, zwar der Motor startet, allerdings wenn ich dazu dann noch /lights oder /lock eingebe, gehen die Lichter an bzw. wird das Fahrzeug abgeschlossen, allerdings geht dann auch der Motor aus. Wie kann ich dieses Problem lösen?


    Gruß Dario