Beiträge von JOK3R

    hmm also genau wie vorher :/ und es wird auch keine mysql_log erstellt
    wieder nur 0 stehen aber es wird richtig geprinted
    [00:22:58] query: UPDATE frakcars SET VehID='567', PosX='2495.136962' ,PosY='-1679.246582' ,PosZ='13.338799' ,PosR='0.629628',Col1='86',Col2='86',Fraktion='7' WHERE id='0'


    Hier steht id 0 aber in der Datenbank steht id 1 sehr komisch :huh:

    Wie meinst du das Jetzt :x ?
    Bin gerade etwas verpeilt


    //edit
    Ich habe mal ab der SaveFractionCars Funktion
    alles geprintet


    und da kommt das

    SQL
    [00:01:46] query: UPDATE frakcars SET VehID='567', PosX='2495.356689' ,PosY='-1678.603027' ,PosZ='13.338906' ,PosR='359.204498',Col1='86',Col2='86',Fraktion='7' WHERE id='0'


    aber in der datenbank ist halt immer die 0 da


    //edit

    SQL
    [00:05:59] [ERROR] CMySQLQuery::Execute[] - (error #1062) Duplicate entry '1' for key 'PRIMARY'


    Das war jetzt auch auf einmal da.


    stock FreeFrakCheck()
    {
    new bedin[128],query[128];
    for(new i;i<MAX_FRACTION_CARS;i++)
    {
    format(bedin,sizeof(bedin),"id='%i'",i);
    format(query,sizeof(query),"SELECT * FROM frakcars WHERE %s",bedin);
    mysql_function_query(dbhandle,query,false,"","");
    mysql_store_result();
    if(mysql_retrieve_row()==0) return i;
    }
    return 0;
    }


    ocmd:createfcar(playerid,params[])
    {
    new modelid,frakid,Float:PosX2,Float:PosY2,Float:PosZ2,Float:PosA2,color1,color2;
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,COLOR_DRED,"Dein Adminrang ist zu niedrig!");
    if(sscanf(params,"dddd",modelid,frakid,color1,color2)) return SendClientMessage(playerid,COLOR_GREY,"INFO: {FF9600}/createfcar {B3B3B3}[Model ID] [Fraktion ID] [Color 1] [Color 2])");
    new fc = FreeFrakCheck();
    new query[128];
    format(query,sizeof(query),"INSERT INTO frakcars (id) VALUES ('%d')",fc);
    mysql_function_query(dbhandle,query,false,"","");
    mysql_free_result();
    GetPlayerPos(playerid,PosX2,PosY2,PosZ2);
    GetPlayerFacingAngle(playerid,PosA2);
    FractionCars[fc][fVehid] = modelid;
    FractionCars[fc][fPos][0] = PosX2;
    FractionCars[fc][fPos][1] = PosY2;
    FractionCars[fc][fPos][2] = PosZ2;
    FractionCars[fc][fPos][3] = PosA2;
    FractionCars[fc][fCol][0] = color1;
    FractionCars[fc][fCol][1] = color2;
    FractionCars[fc][fraktion] = frakid;
    FractionCars[fc][fCarid] = CreateVehicle(FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],-1);
    SendClientMessage(playerid,COLOR_YELLOW,"[FRAKTIONSCAR]: Du hast das Auto erfolgreich erstellt!");
    SendClientMessage(playerid,COLOR_YELLOW,"[FRAKTIONSCAR]: Vergiss aber nicht es später mit /fpark umzuparken!");
    SendClientMessage(playerid,COLOR_YELLOW,"[INFO]: Für weitere Befehle verwende /fcarinfo");
    PutPlayerInVehicle(playerid,FractionCars[fc][fCarid],0);
    SaveFractionCars();
    return 1;
    }

    Hallo Community,


    Schon wieder ich :/


    Brauche mal wieder Hilfe von euch habe gerade ein createfcar geschrieben was noch so richtig funkt
    In der datenbank wird zwar was erstellt aber da ist immer die id 0 wen ich zwei Autos erstellt habe
    Die Koordinaten sind auch gleich obwohl ich sie anders geparkt habe
    Autos werden auch nach dem Restart des servers nicht gespeichert aber in der Datenbank bleibt alles
    http://prntscr.com/7oukwm


    Das kommt in der mysql_log

    SQL
    [23:16:05] [WARNING] cache_get_data - no active cache



    Ich poste erstmal die load und save vlt liegt es ja daran


    public LoadFractionCars()
    {
    new val[128],query[256];
    for(new idx;idx<MAX_FRACTION_CARS; idx++)
    {
    format(query, sizeof(query), "SELECT * FROM `frakcars` WHERE `id` = %d", idx);
    mysql_function_query(dbhandle,query,false,"","");
    mysql_store_result();
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(val,"VehID");
    FractionCars[idx][fVehid] = strval(val);
    mysql_fetch_field_row(val,"PosX");
    FractionCars[idx][fPos][0] = strval(val);
    mysql_fetch_field_row(val,"PosY");
    FractionCars[idx][fPos][1] = strval(val);
    mysql_fetch_field_row(val,"PosZ");
    FractionCars[idx][fPos][2] = strval(val);
    mysql_fetch_field_row(val,"PosR");
    FractionCars[idx][fPos][3] = strval(val);
    mysql_fetch_field_row(val,"Col1");
    FractionCars[idx][fCol][0] = strval(val);
    mysql_fetch_field_row(val,"Col2");
    FractionCars[idx][fCol][1] = strval(val);
    mysql_fetch_field_row(val,"Fraktion");
    FractionCars[idx][fraktion] = strval(val);
    }
    mysql_free_result();
    if(FractionCars[idx][fVehid] >= 400 && FractionCars[idx][fVehid] <= 611)
    {
    FractionCars[idx][fCarid] = CreateVehicle(FractionCars[idx][fVehid],FractionCars[idx][fPos][0],FractionCars[idx][fPos][1],FractionCars[idx][fPos][2],FractionCars[idx][fPos][3],FractionCars[idx][fCol][0],FractionCars[idx][fCol][1], -1);
    SetVehicleNumberPlate(FractionCars[idx][fCarid], fInfo[FractionCars[idx][fraktion]-1]);
    SetVehicleToRespawn(FractionCars[idx][fCarid]);
    }
    }
    }


    public SaveFractionCars()
    {
    new query[1024];
    for(new idx;idx<MAX_FRACTION_CARS; idx++)
    {
    if(FractionCars[idx][fVehid] >= 400 && FractionCars[idx][fVehid] <= 611){
    format(query,sizeof(query),"UPDATE frakcars SET VehID='%i', PosX='%f' ,PosY='%f' ,PosZ='%f' ,PosR='%f',Col1='%i',Col2='%i',Fraktion='%i' WHERE id='%i'",
    FractionCars[idx][fVehid], FractionCars[idx][fPos][0], FractionCars[idx][fPos][1], FractionCars[idx][fPos][2], FractionCars[idx][fPos][3], FractionCars[idx][fCol][0], FractionCars[idx][fCol][1], FractionCars[idx][fraktion], idx);
    mysql_function_query(dbhandle,query,false,"","");
    }
    }
    return 1;
    }

    Das einzige was ich bekomme ist das
    test.p(6125) : warning 203: symbol is never used: "fcInfo"



    ocmd:respawncars(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid, 12))return SendClientMessage(playerid,COLOR_DRED,"Du bist in keiner Fraktion");
    if(sInfo[playerid][rang] < 5)return SendClientMessage(playerid,COLOR_DRED,"Du bist nicht der Leader der Fraktion!");
    {
    for(new i = 1; i < MAX_VEHICLES; i++)
    {
    SetVehicleToRespawn(FBICars[i]);
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,12))
    {
    SendClientMessage(i, COLOR_GREY, "** Der Leader hat alle Frakion Autos respawnt. **");
    }
    }
    }
    }
    return 1;
    }


    //edit


    hab garnicht das for(new i = 0; i < sizeof(FBICars); i++)
    gesehen mein fehler :wacko:

    Hallo Community,


    Ich schon wieder :p


    Ich habe vor paar tagen einen Respawncars befehl geschrieben aber sobald ich den ingame eingeben kommt nur (INFO: /respawncars)



    ocmd:respawncars(playerid,params[])
    {
    if(sscanf(params,"u",playerid))return SendClientMessage(playerid,COLOR_GREY,"INFO: {FF9600}/respawncars");
    if(!isPlayerInFrakt(playerid, 12))return SendClientMessage(playerid,COLOR_DRED,"Du bist in keiner Fraktion");
    if(sInfo[playerid][rang] < 5)return SendClientMessage(playerid,COLOR_DRED,"Du bist nicht der Leader der Fraktion!");
    {
    for(new i = 1; i <= MAX_VEHICLES; i++)
    {
    SetVehicleToRespawn(i);
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,12))
    {
    SendClientMessage(i, COLOR_GREY, "** Der Leader hat alle Frakion Autos respawnt. **");
    }
    }
    }
    }
    return 1;
    }


    Was ist da falsch :x ?

    Hallo Community,


    Ich habe gerade in meinem Duty befehl eine fraktion hinzugefügt aber ab dem else bekomme ich den error
    test.p(4353) : error 029: invalid expression, assumed zero



    Hier ist der Befehl vlt kann den ja einer umschreiben oder sowas :x ich habe es schon versucht anders zu schreiben mit else if aber da bekomme ich auch einen error :/



    ocmd:duty(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5,215.6259,108.7542,1003.2188))
    {
    if(!isEingeloggt(playerid,1))return SendClientMessage(playerid,COLOR_DRED,"Du bist nicht Eingeloggt!");
    if(sInfo[playerid][fraktion] == 0)return SendClientMessage(playerid,COLOR_DRED,"Du bist in keiner Fraktion!");
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,COLOR_DRED,"Du bist kein Polizist!");
    if(!Duty[playerid])
    {
    switch(sInfo[playerid][rang])
    {
    case 1: SetPlayerSkin(playerid,280);
    case 2: SetPlayerSkin(playerid,280);
    case 3: SetPlayerSkin(playerid,281);
    case 4: SetPlayerSkin(playerid,281);
    case 5: SetPlayerSkin(playerid,286);
    case 6: SetPlayerSkin(playerid,283);
    }
    SendClientMessage(playerid,0x8991FFFF,"Du holst deine Marke aus dem Spind uns bist im Dienst.");
    SetPlayerHealth(playerid,100),SetPlayerArmour(playerid,100);
    GivePlayerWeapon(playerid,3,1);
    GivePlayerWeapon(playerid,24,750);
    GivePlayerWeapon(playerid,25,750);
    GivePlayerWeapon(playerid,29,750);
    SetPlayerColor(playerid,COLOR_BLUE);
    return Duty[playerid]=1;
    }
    SendClientMessage(playerid,0x8991FFFF,"Du legst deine Marke in den Spind und machst Feierabend.");
    SetPlayerHealth(playerid,100),SetPlayerArmour(playerid,0);
    ResetPlayerWeapons(playerid);
    SetPlayerSkin(playerid,sInfo[playerid][skin]);
    SetPlayerColor(playerid,COLOR_WHITE);
    Duty[playerid]=0;
    }
    else
    {
    if(IsPlayerInRangeOfPoint(playerid,5,914.6536,-1235.2256,17.2109))
    {
    if(!isEingeloggt(playerid,1))return SendClientMessage(playerid,COLOR_DRED,"Du bist nicht Eingeloggt!");
    if(sInfo[playerid][fraktion] == 0)return SendClientMessage(playerid,COLOR_DRED,"Du bist in keiner Fraktion!");
    if(!isPlayerInFrakt(playerid,2))return SendClientMessage(playerid,COLOR_DRED,"Du bist kein Oamtler!");
    if(!Duty[playerid])
    {
    switch(sInfo[playerid][rang])
    {
    case 1: SetPlayerSkin(playerid,71);
    case 2: SetPlayerSkin(playerid,71);
    case 3: SetPlayerSkin(playerid,71);
    case 4: SetPlayerSkin(playerid,71);
    case 5: SetPlayerSkin(playerid,71);
    case 6: SetPlayerSkin(playerid,71);
    }
    SendClientMessage(playerid,0x8991FFFF,"Du holst deine Marke aus dem spind uns bist im Dienst.");
    SetPlayerHealth(playerid,100),SetPlayerArmour(playerid,100);
    GivePlayerWeapon(playerid,3,1);
    GivePlayerWeapon(playerid,41,1000);
    SetPlayerColor(playerid,COLOR_TURKISE);
    return Duty[playerid]=1;
    }
    SendClientMessage(playerid,0x8991FFFF,"Du legst deine Marke in den Spind und machst Feierabend.");
    SetPlayerHealth(playerid,100),SetPlayerArmour(playerid,0);
    ResetPlayerWeapons(playerid);
    SetPlayerSkin(playerid,sInfo[playerid][skin]);
    SetPlayerColor(playerid,COLOR_WHITE);
    Duty[playerid]=0;
    }
    }
    else //Ab hier kommt der Error
    {
    if(IsPlayerInRangeOfPoint(playerid,5,1309.9630,-1362.2280,-47.9926))
    {
    if(!isEingeloggt(playerid,1))return SendClientMessage(playerid,COLOR_DRED,"Du bist nicht Eingeloggt!");
    if(sInfo[playerid][fraktion] == 0)return SendClientMessage(playerid,COLOR_DRED,"Du bist in keiner Fraktion!");
    if(!isPlayerInFrakt(playerid,12))return SendClientMessage(playerid,COLOR_DRED,"Du bist kein FBI Beamter!");
    if(!Duty[playerid])
    {
    switch(sInfo[playerid][rang])
    {
    case 1: SetPlayerSkin(playerid,165);
    case 2: SetPlayerSkin(playerid,165);
    case 3: SetPlayerSkin(playerid,286);
    case 4: SetPlayerSkin(playerid,286);
    case 5: SetPlayerSkin(playerid,286);
    case 6: SetPlayerSkin(playerid,286);
    }
    SendClientMessage(playerid,0x8991FFFF,"Du holst deine Marke aus dem spind uns bist im Dienst.");
    SetPlayerHealth(playerid,100),SetPlayerArmour(playerid,100);
    GivePlayerWeapon(playerid,24,2500);
    GivePlayerWeapon(playerid,25,1000);
    GivePlayerWeapon(playerid,29,2500);
    SetPlayerColor(playerid,COLOR_DBLUE);
    return Duty[playerid]=1;
    }
    SendClientMessage(playerid,0x8991FFFF,"Du legst deine Marke in den Spind und machst Feierabend.");
    SetPlayerHealth(playerid,100),SetPlayerArmour(playerid,0);
    ResetPlayerWeapons(playerid);
    SetPlayerSkin(playerid,sInfo[playerid][skin]);
    SetPlayerColor(playerid,COLOR_WHITE);
    Duty[playerid]=0;
    }
    }
    return 1;
    }


    Hoffe mir kann da einer helfen :p


    Mit freundlichen Grüßen
    Jonny

    Da ich nicht weiß wie dein script aufgebaut ist müsstest du das glaube trotzdem irgwie haben


    public OnPlayerRegister(playerid)

    und da kannst du dann einfach dies einfügen
    new randM = random(sizeof(SkinR));
    new Skin1 = SkinR[randM];
    SetSpawnInfo( playerid, 0, Skin1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
    SI[playerid][skins] = Skin1;


    und das dann nach ganz oben vielleicht unter die enums :)
    new SkinR[] = {
    101, 15, 156, 17, 170, 180, 182, 183, 184, 185,
    188, 19, 20, 206, 21, 22, 210, 221, 222, 227,
    228, 234, 235, 236, 24, 25, 250, 261, 28, 35,
    37, 38, 36, 44, 43, 46, 262, 60, 59, 58,
    229, 67, 7, 72, 94, 95, 98
    };


    Das sind ein paar Random skins die dann kommen werden nach dem Register
    musst du mal gucken ob es so Klappt oder nicht


    MfG
    Jonny

    irgendwie speichert er nur die Skin id Sobald ich leader der fraktion bin und den skin bekommen habe
    und nach dem gmx habe ich den fraktions skin obwohl ich mit /setskin befehl schon einen andren skin habe ...


    http://prntscr.com/7jzsn1


    Vergiss was ich gesagt habe ^^


    Jetzt speichert es es rightig aber


    bei dem takerleader command gibt er mir dann aber trotzdem den Fraktions skin muss ich bei OnPlayerSpawn dann auch SetPlayerSkin(pID,sInfo[playerid][oldSkin]); oder nicht ?


    ocmd:takeleader(playerid,params[])
    {
    if(!isAdmin(playerid, 4))return SendClientMessage(playerid,COLOR_DRED, "Dein Adminrang ist zu niedrig.");
    new pID, fID,fraktname;
    if(sscanf(params,"u",pID,fID))return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/takeleader {B3B3B3}[playerid]");
    if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_DRED, "Fraktion existiert nicht.");
    if(sInfo[pID][rang]==0)return SendClientMessage(playerid,COLOR_DRED,"Spieler hat keine Rechte.");
    sInfo[pID][fraktion] = 0;
    sInfo[pID][rang] = 0;
    new string[128];
    SetPlayerSkin(pID,sInfo[playerid][oldSkin]);
    SpawnPlayer(pID);
    savePlayer(pID);
    format(string,sizeof(string),"%s hat dir die Leaderrechte für deine Fraktion entzogen.",SpielerName(playerid));
    SendClientMessage(pID, COLOR_RED, string);
    format(string,sizeof(string),"Du hast %s die Leaderrechte für die Fraktion %s entzogen.",SpielerName(pID), fraktname);
    SendClientMessage(playerid, COLOR_BLUE,string);
    return 1;
    }

    hmm


    Ich habe das jetzt so gemacht

    ocmd:makeleader(playerid, params[])
    {
    if(!isAdmin(playerid, 4))return SendClientMessage(playerid,COLOR_DRED, "Dein Adminrang ist zu niedrig.");
    new pID, fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/makeleader {B3B3B3}[playerid] [fraktid]");
    if(isPlayerInFrakt(pID,fID))return SendClientMessage(playerid,COLOR_DRED, "Der Spieler ist schon in dieser Fraktion!");
    if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_DRED, "Fraktion existiert nicht.");
    sInfo[pID][fraktion] = fID;
    sInfo[pID][rang] = 6;
    if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID,(sInfo[playerid][skin]=187)); }
    else if (sInfo[pID][fraktion] == 6) { SetPlayerSkin(pID,(sInfo[playerid][skin]=115)); }
    else if (sInfo[pID][fraktion] == 7) { SetPlayerSkin(pID,(sInfo[playerid][skin]=105)); }
    else if (sInfo[pID][fraktion] == 8) { SetPlayerSkin(pID,(sInfo[playerid][skin]=103)); }
    else if (sInfo[pID][fraktion] == 9) { SetPlayerSkin(pID,(sInfo[playerid][skin]=120)); }
    else if (sInfo[pID][fraktion] == 10) { SetPlayerSkin(pID,(sInfo[playerid][skin]=113)); }
    else if (sInfo[pID][fraktion] == 11) { SetPlayerSkin(pID,(sInfo[playerid][skin]=110)); }
    new string[145];
    sInfo[pID][oldSkin] = GetPlayerSkin(pID);
    SpawnPlayer(pID);
    savePlayer(pID);
    format(string,sizeof(string),"Admin %s hat dich zum Leader der Fraktion %s gemacht",SpielerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID, COLOR_DGREEN, string);
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion %s gemacht.",SpielerName(pID), fInfo[fID][f_name]);
    SendClientMessage(playerid, COLOR_DGREEN,string);
    return 1;
    }



    oder hätte das
    sInfo[pID][oldSkin] = GetPlayerSkin(pID);


    Wo anders hin gemusst ?


    Weil sobald ich Spawne ist mein skin weg und ich bekomme den CJ Skin

    Okay so weit so gut :D


    Jetzt nur noch eine frage ^^
    Wie mache ich das wen ich dem jenigem die Leader rechte entferne und er den Normalen skin wieder bekommt also den er vorher hatte :x ?

    Okay klappt alles
    Da ich schon ein Skin speicher system habe das so geht

    SetPlayerSkin(playerid,sInfo[playerid][skin]);


    möchte ich ja auch natürlich das die skins gespeichert werden
    Aber wie wie soll ich den jetzt die ganzen skin id's die da stehen jetzt speichern ?


    Ich glaube nicht wen ich einfach das so machen würde das es gehen wird ^^


    if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID,sInfo[playerid][skin] 187); }