Beiträge von Red_Romeo

    Also beim Login jetzt oder wie ? Schreibe es mal so:
    public OnPlayerRequestClass(playerid, classid)
    {
    if(sInfo[playerid][PTot] == 1)
    {
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"");
    SendClientMessageEx(playerid,weiß,"Du bist soeben gestorben!");
    SendClientMessageEx(playerid,weiß,"Gleich wird ein Wunder passieren!");
    SetTimer("sekunde",sInfo[playerid][tott],0);
    SetPlayerVirtualWorld(playerid,89);
    SetSpawnInfo(playerid,0,sInfo[playerid][Skin],816.6987,-1103.0229,25.7914,271.5753,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);
    return 1;
    }
    else if(sInfo[playerid][jailtime] > 0)
    {
    SendClientMessageEx(playerid,IGELB,"Du musst deine Zeit im Knast noch absitzen!");
    SetTimer("sekunde",sInfo[playerid][jailtime],0);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,24);
    SetSpawnInfo(playerid,0,sInfo[playerid][Skin],sInfo[playerid][kx],sInfo[playerid][ky],sInfo[playerid][kz],0.0,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);
    return 1;
    }
    else
    {
    SetSpawnInfo(playerid,0,sInfo[playerid][Skin],1760.8271,-1895.8221,13.5615,268.2114,0,0,0,0,0,0);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SpawnPlayer(playerid);
    return 1;
    }
    return 1;
    }

    erledigt
    Tut, mir leid.. Aber bei der Formatierung wird glaube ich niemand wirklich helfen können.
    Bitte formatiere den Pawn Code nochmal richtig, hier siehst du wie mans richtig macht: Der Pawn BB Code - Die richtige Anwendung


    Hast du mal ausprobiert ob der stock überhaupt aufgerufen wird ? Bzw., ob du ihn überhaupt aufrufst ?


    Und wieso erstellst du einen Globalen Textdraw unter OnplayerConnect ? Da wird der Textdraw doch überschrieben, OnGameModeInit wäre in dem fall sinvoller. (Ich rede vom Textdraw Time)

    2 Nachkommastellen und ein % Zeichen (In Textdraws müssen 2 %% angeben werden wenn man ein % Zeichen haben will)
    format(stringschaden, sizeof(stringschaden), "Zustand: %.2f%%", vHealth/10);


    Und hiermit kannst du abfragen ob die Reifen kaputt sind:
    https://wiki.sa-mp.com/wiki/GetVehicleDamageStatus
    Der Reifenstatus wird im Dualsystem (2er System) angegeben.
    2^0 = 1 = Reifen hinten rechts
    2^1 = 2 = Reifen vorne rechts
    2^2 = 4 = Reifen hinten links
    2^3 = 8 = Reifen vorne links

    einfaches Beispiel
    new panels, doors, lights, tires;
    GetVehicleDamageStatus(GetPlayerVehicleID(playerid), panels, doors, lights, tires);
    if(tires == 0)SendClientMessage(playerid, -1, "Alle Reifen sind heile.");
    else {
    if(tires >= 8){
    tires -= 8;
    SendClientMessage(playerid, -1, "Der Reifen vorne links ist kaputt.");
    }
    if(tires >= 4){
    tires -= 4;
    SendClientMessage(playerid, -1, "Der Reifen hinten links ist kaputt.");
    }
    if(tires >= 2){
    tires -= 2;
    SendClientMessage(playerid, -1, "Der Reifen vorne rechts ist kaputt.");
    }
    if(tires >= 1){
    tires -= 1;
    SendClientMessage(playerid, -1, "Der Reifen hinten rechts ist kaputt.");
    }
    }

    //edit einfaches Beispiel hinzugefügt

    Nein, wenn man connectet muss man sich doch einloggen oder nicht ?
    Und wen du alles Geladen hast (Geld, Level, etc.), machst du anschließend die Abfrage.
    Wichtig ist aber das du die Variable PTot auch abspeicherst und lädst

    Beim Logout/Disconnect speichern, und beim Connecten/Login laden.


    Und dann müsstest du eig. nurnoch folgende Abfrage machen (nach dem der Spieler geladen wurde):
    if(sInfo[playerid][PTot] == 1)
    {
    SetPlayerVirtualWorld(playerid,89);
    SetPlayerPos(playerid,1760.8271,-1895.8221,13.5615);
    SetPlayerFacingAngle(playerid,271.5753);
    SetCameraBehindPlayer(playerid);
    }
    else
    {
    //Ansonsten ganz normal spawnen
    }

    SQL
    --Hier fehl ein ' am ende der fraktion
    [20:44:30] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE user SET level='0',money='6880',alevel='7',fraktion='2,ra", callback: "(null)", format: "(null)"
    
    
    --ein ' nach der id zu viel
    [20:44:30] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6' WHERE id='4000'' at line 1
    
    
    --ein ' nach der id zu viel
    [20:49:28] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6',spawnchange='0' WHERE id='1'' at line 1


    //edit Änder folgendes ersmal um, falls nochmehr fehler enthalten sind bitte erneut die mysqllog schicken.
    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    //Speichern level,money
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    for(new i=0; i<sizeof(aInfo); i++)
    {
    if(aInfo[i][id_x]==0)continue;
    if(aInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
    GetVehiclePos(aInfo[i][id_x],aInfo[i][c_x],aInfo[i][c_y],aInfo[i][c_z]);
    GetVehicleZAngle(aInfo[i][id_x],aInfo[i][c_r]);
    new query[156];
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i' WHERE id='%i'",sInfo[playerid][level],
    GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(aInfo[i][id_x]);
    aInfo[i][id_x]=0;
    break;
    }
    savePlayer(playerid);
    resetPlayer(playerid);
    loadPlayerCars(playerid);
    return 1;
    }

    Was soll der Befehl den machen ?
    Wo erstellst du die Variable PlayerInfo und das dazugehörende Enum ? (Poste es mal)


    Anhand des jetzigen Code kann ich dir nur sagen das in dem Enum, welches zu PlayerInfo gehört die Variable 's' fehlt.

    Du must HTML Code verwenden..


    Create3DTextLabel("{21DD00}Fahrradverleih{FFFFFF}\n Spieler unter Level 4 können\n hier für 300$ ein Fahrrad mieten.\n{21DD00}/fahrrad{FFFFFF}",0xFFFFFFAA,1773.0819,-1896.1542,13.5516,30,0); //Fahrradverleih

    Kommt er vielleicht in diese Abfrage hier mehr als 1x rein ?
    if(JamaicaDrehtAb >= 3)
    {
    KillTimer(JamaicaChecktAbTimer);
    JamaicaGibtBefehl = 1;
    print("ActorSchiessenTimer wurde gestartet");//Wie oft würde er dies ausgegeben wenn du den print einfügst ? Evtl wird 'ActorSchiessenTimer' ja überschrieben.
    ActorSchiessenTimer = SetTimer("ActorSchiessen", 5000, true);
    }


    //edit

    Aner der wird doch gekillt?

    Also in der Abfrage wird er nicht 'gekillt' aber du könntest den Timer zur Sicherheit killen.

    hmmm bei deinem stock GibGeld wird noch += -value das geht so nicht.

    Wieso sollte das nicht Funktionieren ? :huh:
    Also wenn ich in meinem Taschenrechner eine negative Zahl addiere funktioniert das super.
    Beispiel Aufgabe: 100 + (-10) = ???


    Ich weiß ja nicht was für ein Wert bei dir rauskommt, aber bei mir kommt 90 raus.

    Okay, das mit den Tank habe ich rausgemacht, da ich momentan noch kein Tanksystem habe.


    Ich habe wohl richtig gefailt, denn ich bin davon ausgegangen,
    dass es überhaupt keinen unterschied macht wenn ich
    anstatt "tmp_engine" einfach "engine" schreibe.


    Vielen Dank, es funktioniert nun!

    Es macht auch kein unterschied ob du tmp_engine oder engine schreibst, dein Fehler liegt/lag woanders.


    if(engine==1) { engine=0; } else { engine=0; }
    // ok ok ok fehler
    Der Wert wert engine wir immer auf 0 gesetzt egal welchen Wert er vorher hatte.
    Richitg wäre es so:
    if(engine==1) { engine=0; } else { engine=1; }


    Oder etwas kürzer:
    SetVehicleParamsEx(vID,(engine == 1) ? (0) : (1), lights, alarm, doors, bonnet, boot, objective);