Beiträge von Jeffry

    OnGameModeInit:
    SetTimer("Prison",60000,true);//timer geht 60 min



    ocmd:rangeban(playerid,params[])
    {
    if(IstSpielerAdmin(playerid, 5))//anpassen
    {
    new pID, reason[128], string[128]; //die defines die wir später brauchen
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, 0xAFAFAFAA, "Benutze: /prison [ID] [Grund]");
    format(string,sizeof(string),"[ADMCMD]: %s wurde von Admin %s ins Admin Prison geschickt Grund: %s", SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(0xFF4122FF,string);
    SetPlayerPos(pID,//koordinate vom AP);
    new pfad[64];
    format(pfad, sizeof(pfad), "/ordner/%s.ini", SpielerName(pID));
    dini_IntSet(pfad, "Prison", 1);
    }
    else
    {
    SendClientMessage(playerid,0xAFAFAFAA,"Du bist kein Admin!");
    }
    return 1;
    }


    public prison()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    new pfad[64];
    format(pfad, sizeof(pfad), "/ordner/%s.ini", SpielerName(i));
    if(strval(dini_Get(pfad, "Prison")) == 1)
    {
    dini_IntSet(pfad, "Prisontime", strval(dini_Get(pfad, "Prisontime"))+1); //in die spieler datei wird jeweils jede minute +1 gemacht
    if(strval(dini_Get(pfad, "Prisontime"))==60) //ist dann der wert auf 60 kommt dies
    {
    SetPlayerPos(i,//koordinaten zum rauskommen);
    dini_IntSet(pfad, "Prisontime", 1);
    dini_IntSet(pfad, "Prison", 0);
    }
    }
    }
    return 1;
    }


    Es sollte klar sein, dass in scriptfiles der Ordner "ordner" existieren muss.

    CreatePlayerCar(playerid,ahCars[did][model],ahInfo[ahCars[did][autohausid]][spawnX],ahInfo[ahCars[did][autohausid]][spawnY],ahInfo[ahCars[did][autohausid]][spawnZ],ahInfo[ahCars[did][autohausid]][spawnR],-1,-1);

    Natürlich musst du das auch definieren...


    enum CarDaten
    {
    id_x,
    dbid_besitzer,
    besitzer[MAX_PLAYER_NAME],
    Float:cx,
    Float:cy,
    Float:cz,
    Float:cr,


    }


    Und das hier natürlich mit deiner Variable ersetzen, in der du die Datenbank ID des Spielers speicherst.
    PlayerInfo[playerid][DatenBankID];

    Das wird nichts bringen, da er ihm dann keine Nachricht mehr senden kann über "playerid".


    Der Fehler liegt hier:
    format(query,sizeof(query),"INSERT INTO autos (besitzer,x,y,z,r,model) VALUES ('%i','%f','%f','%f','%f','%i')",cInfo[playerid][id_x],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
    cInfo[playerid][id_x] nimmst du als Besitzer.
    Hier weist du aber id_x die Vehicle ID zu:
    cInfo[i][id_x]=CreateVehicle(modelid,x,y,z,r,-1,-1,-1);


    Daher die 2.


    Mach es so in der Art:
    format(query,sizeof(query),"INSERT INTO autos (besitzer,x,y,z,r,model) VALUES ('%i','%f','%f','%f','%f','%i')",cInfo[carid][dbid_besitzer],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);


    Und beim Erstellen des Autos fügst du nach "cInfo[ i ][model]=modelid;" das ein:
    cInfo[i][dbid_besitzer] = PlayerInfo[playerid][DatenBankID]; //PlayerInfo und DatenBankID zu deiner Variable umbenennen, in der die Spieler-DB-ID gespeichert ist.



    Vergesse auch nicht "cInfo[carid][dbid_besitzer]" beim Laden des Autos korrekt zu setzen.

    if(player == 0)
    {
    format(string, sizeof(string), "{FFFFFF}%s", pName);
    } else {
    format(string, sizeof(string), "{FFFFFF}%s\n%s", string, pName);
    }


    zu:


    format(string, sizeof(string), "%s{FFFFFF}%s\n", string, pName);

    Achso, du gibst da auch nichts zurück, hab ich übersehen.


    stock PlayerActionForbidden(playerid)
    {
    if(IsPlayerAFK[playerid]) SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du bist AFK. Du kannst keine Aktion durchführen. Melde dich mit /back zurück!", "»WARNING« You are AFK. You can't take any action. Use /back to come back!"), return 1;
    if(IsPlayerInDM[playerid]) SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du bist schon im DM! Benutze /cancel um das DM zu verlassen!", "»WARNING« You are already in a DM! Use /cancel to exit the DM!"), return 1;
    if(!UseTeleports[playerid]) SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du kannst im Moment keine Teleports nutzen! (Kampf/Skin Selection/DM-Arena)", "»WARNING« Currently, you can't use teleports! (Fight/Skin Selection/DM-Arena)"), return 1;
    return 0;
    }


    Und:
    if(PlayerActionForbidden(playerid)) return 1;

    if(PlayerActionForbidden(playerid)) return 1;


    zu:
    if(!PlayerActionForbidden(playerid)) return 1;



    ODER eben:
    stock PlayerActionForbidden(playerid)
    {
    if(IsPlayerAFK[playerid]) SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du bist AFK. Du kannst keine Aktion durchführen. Melde dich mit /back zurück!", "»WARNING« You are AFK. You can't take any action. Use /back to come back!");
    if(IsPlayerInDM[playerid]) SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du bist schon im DM! Benutze /cancel um das DM zu verlassen!", "»WARNING« You are already in a DM! Use /cancel to exit the DM!");
    if(!UseTeleports[playerid]) SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du kannst im Moment keine Teleports nutzen! (Kampf/Skin Selection/DM-Arena)", "»WARNING« Currently, you can't use teleports! (Fight/Skin Selection/DM-Arena)");
    return 1; //1 hier
    }

    Unter den Includes
    new inTune[MAX_PLAYERS];


    OnPlayerConnect
    inTune[playerid] = 0;


    public OnEnterExitModShop(playerid, enterexit, interiorid)
    {
    inTune[playerid] = enterexit;
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    //OnPlayerUpdate
    static oldMoney[MAX_PLAYERS];
    new curMoney = GetPlayerMoney(playerid);
    if(oldMoney[playerid] > curMoney)
    {
    if(inTune[playerid])
    {
    GivePlayerEuro(playerid,(curMoney-oldMoney[playerid]));
    }
    }
    oldMoney[playerid] = curMoney;
    return 1;
    }