Beiträge von Jeffry

    #include <a_samp>
    #define MAX_MACHINES 10 // CHANGE IF YOU'RE USING A STREAMER AND WILLING TO ADD MORE
    #define MACHINE_CASH 5 // Cost - Default is $1


    //**VARIABLES**//
    enum fMachines
    {
    Float:fmX,
    Float:fmY,
    Float:fmZ,
    Float:fmrZ,
    fmType
    };
    new FoodMachines[MAX_MACHINES][fMachines];
    new Machine = -1;
    new SprunkMachine[MAX_MACHINES];
    new CandyMachine[MAX_MACHINES];


    AddSprunkMachine(Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)
    {
    Machine++;
    SprunkMachine[Machine] = CreateObject(955,X,Y,Z,rX,rY,rZ);
    FoodMachines[Machine][fmX] = X;
    FoodMachines[Machine][fmY] = Y;
    FoodMachines[Machine][fmZ] = Z;
    FoodMachines[Machine][fmrZ] = rZ;
    FoodMachines[Machine][fmType] = 1;
    }


    AddCandyMachine(Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)
    {
    Machine++;
    CandyMachine[Machine] = CreateObject(956,X,Y,Z,rX,rY,rZ);
    FoodMachines[Machine][fmX] = X;
    FoodMachines[Machine][fmY] = Y;
    FoodMachines[Machine][fmZ] = Z;
    FoodMachines[Machine][fmrZ] = rZ;
    FoodMachines[Machine][fmType] = 2;
    }


    stock GetPlayerMachine(playerid)
    {
    new Float:x, Float:y;
    for(new i = 0; i < Machine+1; i++)
    {
    x = FoodMachines[i][fmX] + (1.0 * floatsin(-FoodMachines[i][fmrZ], degrees));
    y = FoodMachines[i][fmY] + (1.0 * floatcos(-FoodMachines[i][fmrZ], degrees));
    if(IsPlayerInRangeOfPoint(playerid, 0.8, x, y, FoodMachines[i][fmZ])) return i;
    }
    return -1;
    }


    forward MachineAnimation(playerid, anim);
    public MachineAnimation(playerid, anim)
    {
    if (anim == 1)
    {
    ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1);
    SetTimerEx("MachineAnimation",1000,0,"dd",playerid,0);
    }
    else if (anim == 2)
    {
    ApplyAnimation(playerid,"VENDING","VEND_Eat_P",4.1,0,1,1,1,1);
    SetTimerEx("MachineAnimation",1000,0,"dd",playerid,0);
    }
    else ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0);
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (newkeys & KEY_SECONDARY_ATTACK)
    {
    new id = GetPlayerMachine(playerid);
    if(id != -1)
    {
    MachineAnimation(playerid, FoodMachines[id][fmType]);
    //Geld abziehen
    //Health geben
    }
    }
    return 1;
    }

    In dem UPDATE-Query das du ausführst werden ja die Daten an die Tabelle übergeben. Das Query kann bei der Übergabe keine Spalte "raketen" (etc) finden, in der Tabelle. Daher kommt der Fehler.
    Die "Field List" sind praktisch alle Spalten in der Tabelle.

    Dann hat CZ[playerid][zid] den Wert -1.


    ocmd:cflagge(playerid, params[])
    {
    new query[500], Float:x, Float:y, Float:z;
    if(CZ[playerid][create] != 1) return SendClientMessage(playerid, COLOR_WHITE, "Um eine Gangzone zu erstellen, benutze '/creategangzone'!");
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Gangzone!");
    if(CZ[playerid][zid] < 0) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner CZ!");
    GetPlayerPos(playerid, x, y, z);
    GZ[CZ[playerid][zid]][flagge_x] = x, GZ[CZ[playerid][zid]][flagge_y] = y, GZ[CZ[playerid][zid]][flagge_z] = z, CZ[playerid][create] = 0;
    GZ[CZ[playerid][zid]][pickup] = CreatePickup(1314, 1, x, y, z, 0);
    GZ[CZ[playerid][zid]][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge' | Y/Z, um die Flagge zu erobern.", COLOR_WHITE, x, y, z, 20, 0);
    format(query, sizeof(query), "INSERT INTO gangfight (owner, maxX, maxY, minX, minY, flaggeX, flaggeY, flaggeZ, erstellt) VALUES ('%s', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d')",
    GZ[CZ[playerid][zid]][owner], GZ[CZ[playerid][zid]][max_x], GZ[CZ[playerid][zid]][max_y], GZ[CZ[playerid][zid]][min_x], GZ[CZ[playerid][zid]][min_y], GZ[CZ[playerid][zid]][flagge_x], GZ[CZ[playerid][zid]][flagge_y], GZ[CZ[playerid][zid]][flagge_z], CZ[playerid][zid]);
    mysql_pquery(handle, query);
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich erstellt.");
    }

    Das Problem war ein Klammerfehler in OnPlayerDeath, verursacht durch einen alten Überbleibsel an Code. Dieser wurde entfernt.


    Alle Errors wurden dadurch behoben, Thema ist erledigt.

    Das Problem wurde behoben.
    Problem war, dass eine falsche Query ID (777 anstatt 1234) angegeben wurde, beim Laden der Fahrzeuge, zudem hat in der sscanf Funktion ein Wert gefehlt (ganz am Anfang ein Integer).


    Funktioniert nun wie gewünscht.

    PlayerTextDrawSetString(playerid, pTextHUD[playerid][4],Spieler[playerid][pWanteds]);


    zu:
    new str[5];
    format(str, sizeof(str), "%d", Spieler[playerid][pWanteds]);
    PlayerTextDrawSetString(playerid, pTextHUD[playerid][4],str);

    ocmd:tv(playerid, params[])
    {
    new pID;
    new name[MAX_PLAYER_NAME];
    new string[128];
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Du bist kein Teammitglied !");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"Verwendung: /tv <ID>");
    if(!IsPlayerConnected(pID) || pID == INVALID_PLAYER_ID || IsPlayerAdmin(pID) || pID == playerid) return SendClientMessage(playerid,error_rot, "Diesen Spieler gibt es nicht, er ist ein Admin oder er ist nicht online !");
    if(tv[playerid] != -1) return SendClientMessage(playerid,error_rot,"Du beobachtest schon einen, benutze /tvoff um die Beobachtung abzubrechen");
    GetPlayerName(pID,name,sizeof(name));

    format(string,sizeof(string),"Du beobachtest nun den Spieler %s",name);
    SendClientMessage(playerid,spec_blau,string);
    tv[playerid] = pID;
    //Im Car
    if(IsPlayerInAnyVehicle(pID))
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectateVehicle(playerid,GetPlayerVehicleID(pID));
    }
    //Fuß
    else
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid,pID);
    }
    return 1;
    }


    ocmd:tvoff(playerid, params[])
    {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Du bist kein Teammitglied !");
    if(tv[playerid] != -1)
    {
    TogglePlayerSpectating(playerid, 0);
    SetCameraBehindPlayer(playerid);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,spec_blau,"Du beobachtest nun keinen mehr !");
    tv[playerid] = -1;
    }
    else
    {
    SendClientMessage(playerid,error_rot,"Du Spectatest keinen !");
    }
    return 1;
    }



    Und bei OnPlayerSpawn:
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && tv[i] == playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    TogglePlayerSpectating(i, 1);
    PlayerSpectateVehicle(i,GetPlayerVehicleID(playerid));
    }
    //Fuß
    else
    {
    TogglePlayerSpectating(i, 1);
    PlayerSpectatePlayer(i,playerid);
    }
    }
    }


    Bei OnPlayerConnect:
    tv[playerid] = -1;


    Die Deklaration:
    new tv[MAX_PLAYERS] = {-1,...};

    CMD:sellhouse(playerid, params[])
    {
    for(new i; i != MAX_HOUSES; i++)
    {
    if(!HouseInfo[i][hSQLid])continue;
    if(!IsPlayerInRangeOfPoint(playerid, 5, HouseInfo[i][hExitX], HouseInfo[i][hExitY], HouseInfo[i][hExitZ]))continue;
    if(!strcmp(pInfo[playerid][pName], HouseInfo[i][hOwner], true))continue;
    if(!strlen(HouseInfo[i][hOwner]))continue;
    pInfo[playerid][pMoney] += HouseInfo[i][hPrice]/2;
    GivePlayerMoney(playerid, HouseInfo[i][hPrice]/2);
    strmid("", pInfo[playerid][pName], 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME);
    UpdateHouse(i);
    SaveHouse(i);
    new string[128];
    format(string, sizeof string, " Du hast das Haus erfolgreich für $%i verkauft.",HouseInfo[i][hPrice]);
    return SCM(playerid, COLOR_LIGHTGREEN, string);
    }
    return SCM(playerid, COLOR_WHITE, INFOTEXT"Du besitzt noch kein Haus.");
    }


    Sonst wird es direkt beendet, wenn ein Haus dem Spieler nicht gehört.

    SetTimerEx("HausTorZu", 20000, false, "d", i);


    Und dann:
    forward HausTorZu(id);
    public HausTorZu(id)
    {
    MoveObject(TorInfo[id][t_objectid],TorInfo[id][t_x],TorInfo[id][t_y],TorInfo[id][t_z],3.0);
    return 1;
    }