Beiträge von Jeffry

    1.) Lade dir die neuste ocmd Version herunter, dann geht das.


    2.)
    ocmd:a(playerid,params[])
    {
    if(SpielerInfo[playerid][pAlevel] >= 1)
    {
    new name1[MAX_PLAYER_NAME],string[144];
    GetPlayerName(playerid,name1,sizeof(name1));
    if(!params[0]) return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /a [Text]'");
    format(string,sizeof(string),"[A-CHAT]{FFFFFF} %s: %s ",name1 ,params);
    SendAdminMessage(Rot, string);
    }
    return 1;
    }

    Wie bereits von heyhooo gesagt, dir so zu helfen geht nicht. Du hast hier irgendwelche zusammengewürfelte Codestücke gepostet, denen, so wie ich das sehe, jeder Zusammenhang fehlt. Es ist so eigentlich nicht möglich dir zu helfen.


    => Poste den Code, bei dem du dem Spieler und der Kasse das Geld geben willst.
    => Poste ein Beispiel wie du einem Spieler sonst im Server Geld gibst, oder zeige wie du die Geld-Variable deklariert hast, falls vorhanden.
    => Poste ein Beispiel wie du der Fraktionskasse Geld gibst, oder zeige wie du die Variable deklariert hast. Außerdem zeige, wie du die Fraktion eines Spielers abfragst.

    [ SCRIPTING ] MySQL Registersystem [BlueG R8+ (R26)]
    [ SCRIPTING ] Mysql - Ressourcenschonendes Login/Register System + Automatic Table|| R5 BlueG


    Den Benutzername kannst du ja abfragen, den einzugeben macht wenig Sinn. Dann machst du noch einen Dialog hinter oder vor das Passwort, für den Security Token.


    E-Mails versenden:
    http://forum.sa-mp.com/showthread.php?t=351065
    [ SCRIPTING ] Emails vom Script aus senden - by Rawr


    Ich denke mit den Tutorials kommst du gut klar.

    Dann einfach so:
    COMMAND:job(playerid,params[])
    {
    #pragma unused params
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
    if(Spieler[playerid][pAutoLic] != 1)return SendClientMessage(playerid,GRAU,"Du hast keinen Führerschein.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    new string[128],jobtimer = Spieler[playerid][pJobSperre]-gettime(),jobinviteid = ReturnJobInviteID(playerid);
    if(jobinviteid == -1)return SendClientMessage(playerid,GRAU,"Du kannst hier keinen Job annehmen!");
    if(!isPlayerInJob(playerid,0))return SendClientMessage(playerid,GRAU,"Du bist bereits in einem Job tätig.");
    if(Spieler[playerid][WorkInJob] != 0)return SendClientMessage(playerid,GRAU,"Du arbeitest momentan und kannst somit keinen Job annehmen! (Kündigen mit /quitjob)");
    if(jobtimer > 0)
    {
    format(string,sizeof(string),"Du kannst erst in %i:%02d Minuten wieder einen neuen Job annehmen!",floatround(jobtimer/60),floatround(jobtimer%60));
    return SendClientMessage(playerid,GRAU,string);
    }
    if(Spieler[playerid][pPersoLic] == 0)return SendClientMessage(playerid,GRAU,"Du besitzt keinen Personalausweis.");
    if(Spieler[playerid][pBankkonto] == 0)return SendClientMessage(playerid,GRAU,"Du brauchst ein Bankkonto um einen Arbeitsvertrag zu unterschreiben.");
    Spieler[playerid][pWorkLess] = 0;
    Spieler[playerid][pJobSperre] = gettime()+(60*60*2);
    Spieler[playerid][pJob] = JOBinvitePUNKTE[jobinviteid][jID];
    format(string,sizeof(string),"Herzlichen Glückwunsch zum neuen Job (%s)",SpielerJob(playerid));
    SendClientMessage(playerid,GRUEN,string);
    SendClientMessage(playerid,GELB,"Info: Falls du mal einen Befehl nicht weißt '/hilfe'");
    SendClientMessage(playerid,GELB," Du hast nun eine zwei Stündige Jobsperre.");
    return 1;
    }


    COMMAND:quitjob(playerid,params[])
    {
    #pragma unused params
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    if(isPlayerInJob(playerid,0))return SendClientMessage(playerid,GRAU,"Du hast keinen Job!");
    if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,GRAU,"Du kannst den Job nur außerhalb eines Fahrzeugs kündigen!");
    new jobtimer = Spieler[playerid][pJobSperre]-gettime();
    if(jobtimer > 0)
    {
    format(string,sizeof(string),"Du kannst erst in %i:%02d Minuten wieder einen neuen Job annehmen!",floatround(jobtimer/60),floatround(jobtimer%60));
    return SendClientMessage(playerid,GRAU,string);
    }
    SendClientMessage(playerid,WEISS,"Du hast deinen Job gekündigt!");
    Spieler[playerid][pJob] = 0;
    Spieler[playerid][WorkInJob] = 0;
    JobExit(playerid);
    return 1;
    }

    Kannst du bitte den Log so posten, wie es im Log steht, und nicht daran rumspielen? Jetzt fehlt nämlich plötzlich ein Print der vorhin noch da war. Und zwei Zeilen hast du zu einer gemacht.


    Kopiere einfach das was im Log steht, und poste es, ohne irgendwas wegzumachen. Die Zeiten sind wichtig, also lass die dran. Einfach 1:1 posten.

    Ja, du kannst es mit jeder Spalte machen.
    mysql_query("SELECT * FROM `haeuser` WHERE ID < 5");
    Würde die ersten 5 Häuser Laden.



    while(mysql_fetch_row(str))
    Hierdurch weiß h, wann es aufhören soll. Es liest einfach alle Zeilen aus, die er geladen bekommt. Sobald er keine mehr hat (while => solange) hört er auf.

    1.)
    public autoschadenanzeige()
    {
    new string[128], vID, Float:vhealth;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInAnyVehicle(i))continue;
    vID = GetPlayerVehicleID(i);
    GetVehicleHealth(vID, vhealth);
    if(vhealth > 300) format(string, sizeof(string), "Zustand: %0.2f", vhealth);
    else format(string, sizeof(string), "Zustand: ~r~%0.2f~w~", vhealth);
    PlayerTextDrawSetString(i,Textdraw14[i] ,string);
    }
    return 1;
    }


    2.) Erstelle bitte einen neuen Thread und erkläre dein Problem. Nur "geht nicht" hilft uns nicht, den Fehler zu finden. Du solltest schon erklären was nicht geht.

    Die for-Schleife macht keinen Sinn. Es funktioniert zwar, aber der Code ist trotzdem recht sinnlos, da nur der erste Index der Schleife etwas bewirkt, daher kannst du dir das sparen.


    mysql_query("SELECT * FROM `haeuser`");
    mysql_store_result();
    new str[512], h;
    while(mysql_fetch_row(str))
    {
    LoadHouse(h, str);
    h++;
    }
    mysql_free_result();


    Schreib es so.

    Wie sieht es so aus?
    public UpdateVehicleAnzeigeTimer(playerid)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective, string[512], Float: health, vehicleid, enginestate[32], lightstate[32], carlockstate[32];
    vehicleid = GetPlayerVehicleID(playerid);
    if(vehicleid == 0) return 1;
    GetVehicleHealth(vehicleid,health);
    printf("playerid: %d | vehicleid: %d", playerid, vehicleid);
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    format(string,sizeof(string),"Fahrzeugname: ~w~%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
    print(string);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][0],string);
    print("Fahrzeuganzeige[playerid][0] gesetzt");
    format(string,sizeof(string),"Geschwindigkeit: ~r~%i ~y~km/h~",GetVehicleSpeed(vehicleid));
    print(string);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][1],string);
    print("Fahrzeuganzeige[playerid][1] gesetzt");
    printf("Tank: %d / %d", VehicleInfo[vehicleid][Tank],VehicleInfo[vehicleid][MaxTank]);
    format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/VehicleInfo[vehicleid][MaxTank]);
    print(string);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);
    print("Fahrzeuganzeige[playerid][2] gesetzt");
    return 1;
    }

    Ich weiß nicht genau was du haben willst, aber ich denke das hier:

    Spoiler anzeigen
    COMMAND:job(playerid,params[])
    {
    #pragma unused params
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
    if(Spieler[playerid][pAutoLic] != 1)return SendClientMessage(playerid,GRAU,"Du hast keinen Führerschein.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    new string[128],jobtimer = Spieler[playerid][pJobSperre]-gettime(),jobinviteid = ReturnJobInviteID(playerid);
    if(jobinviteid == -1)return SendClientMessage(playerid,GRAU,"Du kannst hier keinen Job annehmen!");
    if(!isPlayerInJob(playerid,0))return SendClientMessage(playerid,GRAU,"Du bist bereits in einem Job tätig.");
    if(Spieler[playerid][WorkInJob] != 0)return SendClientMessage(playerid,GRAU,"Du arbeitest momentan und kannst somit keinen Job annehmen! (Kündigen mit /quitjob)");
    if(gettime() < jobtimer)
    {
    format(string,sizeof(string),"Du kannst erst in %i:%02d Minuten wieder einen neuen Job annehmen!",floatround(jobtimer/60),floatround(jobtimer%60));
    return SendClientMessage(playerid,GRAU,string);
    }
    if(Spieler[playerid][pPersoLic] == 0)return SendClientMessage(playerid,GRAU,"Du besitzt keinen Personalausweis.");
    if(Spieler[playerid][pBankkonto] == 0)return SendClientMessage(playerid,GRAU,"Du brauchst ein Bankkonto um einen Arbeitsvertrag zu unterschreiben.");
    Spieler[playerid][pWorkLess] = 0;
    Spieler[playerid][pJobSperre] = gettime()+(60*60*2);
    Spieler[playerid][pJob] = JOBinvitePUNKTE[jobinviteid][jID];
    format(string,sizeof(string),"Herzlichen Glückwunsch zum neuen Job (%s)",SpielerJob(playerid));
    SendClientMessage(playerid,GRUEN,string);
    SendClientMessage(playerid,GELB,"Info: Falls du mal einen Befehl nicht weißt '/hilfe'");
    SendClientMessage(playerid,GELB," Du hast nun eine zwei Stündige Jobsperre.");
    Spieler[playerid][pJobQuitSperre] = gettime()+(60*5); //5 Minuten bis der Spieler /quitjob machen kann
    return 1;
    }

    Spoiler anzeigen
    COMMAND:quitjob(playerid,params[])
    {
    #pragma unused params
    if(Spieler[playerid][pJobQuitSperre] > gettime()) return SendClientMessage(playerid,GRAU,"Du kannst den Job erst nach 5 Minuten kündigen."); //Nachricht
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    if(isPlayerInJob(playerid,0))return SendClientMessage(playerid,GRAU,"Du hast keinen Job!");
    if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,GRAU,"Du kannst den Job nur außerhalb eines Fahrzeugs kündigen!");
    SendClientMessage(playerid,WEISS,"Du hast deinen Job gekündigt!");
    Spieler[playerid][pJob] = 0;
    Spieler[playerid][WorkInJob] = 0;
    Spieler[playerid][pJobQuitSperre] = 0;
    JobExit(playerid);
    return 1;
    }


    Außerdem musst du bei dem enum welches mit "Spieler" verknüpft ist (also dort wo zum Beispiel "pTazerd" drin steht), noch "pJobQuitSperre," hinzufügen.

    1.)
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new string[128], vID, Float:vhealth, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective;
    PlayerTextDrawShow(playerid,Textdraw11[playerid]);
    PlayerTextDrawShow(playerid,Textdraw12[playerid]);
    PlayerTextDrawShow(playerid,Textdraw13[playerid]);
    PlayerTextDrawShow(playerid,Textdraw14[playerid]);
    PlayerTextDrawShow(playerid,Textdraw15[playerid]);
    //TextDrawShowForPlayer(playerid,Textdraw16);
    PlayerTextDrawShow(playerid,Textdraw17[playerid]);
    PlayerTextDrawShow(playerid,Textdraw18[playerid]);
    vID = GetPlayerVehicleID(playerid); //vID muss als erstes hin

    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);

    if(tmp_engine == 1) format(string, sizeof(string), "Motor: ~g~An");
    else format(string, sizeof(string), "Motor: ~r~Aus");

    PlayerTextDrawSetString(playerid,Textdraw15[playerid] ,string);

    if(tmp_lights == 1) format(string, sizeof(string), "Licht: ~g~An");
    else format(string, sizeof(string), "Licht: ~r~Aus");

    PlayerTextDrawSetString(playerid, Textdraw17[playerid] ,string);

    GetVehicleHealth(vID, vhealth);
    format(string, sizeof(string), "Zustand: %0.2f", vhealth);
    PlayerTextDrawSetString(playerid,Textdraw14[playerid] ,string);

    }
    if(oldstate == PLAYER_STATE_DRIVER)
    {
    PlayerTextDrawHide(playerid, Textdraw11[playerid]);
    PlayerTextDrawHide(playerid, Textdraw12[playerid]);
    PlayerTextDrawHide(playerid, Textdraw13[playerid]);
    PlayerTextDrawHide(playerid, Textdraw14[playerid]);
    PlayerTextDrawHide(playerid, Textdraw15[playerid]);
    //TextDrawShowForPlayer(playerid, Textdraw16);
    PlayerTextDrawHide(playerid, Textdraw17[playerid]);
    PlayerTextDrawHide(playerid, Textdraw18[playerid]);
    }

    Die Werte musst du nicht nochmal setzen, das habe ich dir weg gemacht. Dann wird das ganze etwas überschaubarer. Außerdem musst du GetPlayerVehicleID vor GetVehicleParamsEx aufrufen.


    2.)
    public autoschadenanzeige()
    {
    new string[128], vID, Float:vhealth;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInAnyVehicle(i))continue;
    vID = GetPlayerVehicleID(i);
    GetVehicleHealth(vID, vhealth);
    format(string, sizeof(string), "Zustand: %0.2f", vhealth);
    PlayerTextDrawSetString(i,Textdraw14[i] ,string);
    }
    return 1;
    }


    Jetzt sollte eigentlich alles passen.

    Auf Anfrage in PN:


    //OnGameModeInit
    mysql_query("SELECT * FROM `haeuser`");
    mysql_store_result();
    new str[256], h;
    while(mysql_fetch_row(str))
    {
    LoadHouse(h, str);
    h++;
    }
    mysql_free_result();


    stock LoadHouse(HouseID, str[256])
    {
    sscanf(str, "e<p<|>dfffdds[24]ddddfffdds[24]s[24]s[24]s[24]s[24]s[24]>",HausInfo[HouseID]);
    printf("str: %s",str);
    printf("enum: %d | %f | %f | %f | %d | %d | %s",HausInfo[HouseID][hID],HausInfo[HouseID][hPosX],HausInfo[HouseID][hPosY],HausInfo[HouseID][hPosZ],HausInfo[HouseID][hLevel],HausInfo[HouseID][hPreis],HausInfo[HouseID][hBesitzer]);
    return 1;
    }


    Unter der Voraussetzung, dass das sscanf so stimmt.

    Jetzt hast du drei mal was anderes erzählt. Wie willst du es denn haben wenn du einsteigst und wenn du aussteigst? Soll sich nichts ändern?
    Wenn ja, dann musst du die if Abfragen wieder rein machen und einfach SetVehicleParamsEx weg lassen.

    if(newstate == PLAYER_STATE_DRIVER)
    {
    new string[128], vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective;
    TextDrawShowForPlayer(playerid,Textdraw11);
    TextDrawShowForPlayer(playerid,Textdraw12);
    TextDrawShowForPlayer(playerid,Textdraw13);
    TextDrawShowForPlayer(playerid,Textdraw14);
    TextDrawShowForPlayer(playerid,Textdraw15);
    TextDrawShowForPlayer(playerid,Textdraw16);
    TextDrawShowForPlayer(playerid,Textdraw17);
    TextDrawShowForPlayer(playerid,Textdraw18);
    vID = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    format(string, sizeof(string), "Motor: ~r~Aus");
    TextDrawSetString(Textdraw15 ,string);
    format(string, sizeof(string), "Licht: ~r~Aus");
    TextDrawSetString(Textdraw17 ,string);
    tmp_engine = 0;
    tmp_lights = 0;
    SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    }


    Mache es einfach so, die if-Abfragen brauchst du nicht unbedingt.
    Wenn es falschherum ist, vertausche Textdraw15 und Textdraw17.