Beiträge von Nbdchemnitz

    Mehr oder weniger mit harten Regeln, wir dachten erst drüber nach über so eine Option dies wäre denke ich aber ein Fehltritt, nennen wir es Roleplay mit etwas härteren Regeln.




    //Edit Um kosten müssen die jeweiligen Teammitglieder sich keine Sorgen machen, Kosten werden von uns übernommen.

    Guten Abend liebe Community von breadfish.


    Ich der Clan Leader (Enrico(20)) bin auf der suche nach einem Designer der ein recht ordentliches Logo für uns erstellen kann.



    Name und Art des Clans: eQuality wurde 2015 von mir erstellt, mit der hinsicht einen Clan zu eröffnen wo einfach alles gespielt wird, nicht andauernt das gleiche und selbe NEIN! auf keinenfall bei uns kann man Zocken was man will und wie man will, wir sind kein Clan wo man unbedingt ein Profi sein muss, wir sind mehr die Leute die eine Runde mit einander Zocken und mit einander redet, Klar gibt es bei uns auch Regeln, diese sind aber Simpel gehalten solang man bei uns normales Mitglied ist, es gibt natürlich auch bei uns mehrere Leute die mehr auf ESL spielen wollen, dort kannst du natürlich auch rein diese haben aber dann auch eine gewisse Aktivitätsregeln usw.


    Was auf den Logo sein sollte ist aufjedenfall, der Name eQuality. am besten noch mit ein Bären Kopf oder ein Fuchskopf indegriert.


    Ich wäre aufjedenfall sehr dankbar.


    Wir sind derzeit auf der Suche nach ein komplettes Team für die Entwicklung eines GTA:V Servers bei GTA:Network.



    Projektart: Roleplay


    Wer sind wir den Überhaupt?





    3nrico ( Projektleiter ) :
    Ich bin der Enrico bin 20 Jahre alt komme aus den schönen Osten, ich
    spielte SA:MP seit 6 Jahren auf den sogenannten Sa-Reallife.org aka
    Next-Samp Server, bisher hatte mir Samp sehr gefallen, leider ist auch
    die Zeit gekommen wo SA:MP auch mit Mods einwenig langweilig wird und
    man umsteigen muss, So sind wir auf RageMP gestoßen da wir finden das
    hier die Syncronisierung schon besser klappt als die von GTA:Network.



    Sebastian ( Co-Owner )
    Folgt!



    Was haben wir genau geplant?
    Generell haben gedacht ein Server aufzubauen, wo auch die User mit
    bestimmungsrecht haben was heißt wir würden viel umsetzen was die User
    uns vorschlagen solang es zu den Konzept vom Server passt, natürlich
    wird unser Team so gut wie es geht aus reifen Leuten bestehen, keine
    Kinder werden euch so gesagt Supporten oder andere Sachen mit euch
    klären weiteres wollen wir mit dem Team dann besprechen wenn es dann
    endlich besteht.



    Bisher suchen wir Leute erstmal in den Bereichen:



    Scripter gesucht!
    Mapper gesucht!
    Community Manager gesucht!
    Moderator gesucht!
    Supporter gesucht!





    Ein mindestalter von 16 Jahren.
    Headset sowie Teamspeakpflicht.
    Gutes benehmen wir wollen keine kreischende Kinder im Teamspeak haben.
    Humor
    Durchsetzungsvermögen





    Was wir bisher bieten können!.
    Teamspeak ³
    V-Server
    WBB (Wird demnächst erstellt wenn soweit alles klar ist.)
    Server Namen



    Fragen beantworte ich gerne per PM, bei Intresse sehr gerne mir schreiben.

    Hallo liebe Community, ich bin derzeit auf der Suche auf ein Teamspeak3 Server (50 Slots) und ein Musikbot den wir Commands geben können, da unser letzter Sponsor leider nicht uns zurückschreibt & der Teamspeak den wir haben von ihn seit 5 Tagen Down ist, hoffe ich das ich hier jemand finde der uns das Sponsoren kann.

    Guten Morgen!



    Ich bin derzeit auf der suche auf mehrere Grafiken.



    Es geht um einen Multigaming Clan den wir derzeit aufbauen, der Name des Clans ist "German E-Quality" es gibt zwar schon den Clan schon länger leider waren wir aber alle etwas sehr inaktive Gründe sind darfür
    das wir alle in der Ausbildung oder sogar auf Montagen sind, nun
    dachten wir eröffnen wieder ein Clan und gründen wieder eine tolle Gemeintschaft um wieder mit Leuten aktive spielen zu können.



    Was ich brauche:



    Avatar:
    Teamspeak Banner:
    Wallpaper:



    Größen könnten ruig entwas größer sein da wir sie immer wieder Anpassen könnten.

    Hey meine Breadfishsuchtis ich bin derzeit auf der suche auf einen Teamspeak 3 Sponsor, der etwas länger hält als 5 Tage.



    über uns!


    Wir sind ein Clan von Operation7. (Soldier of Sun) und bräuchten nur 50 Slots.





    wir würden uns über ein Sponsor freuen.Suche

    stock LoadToysdings(playerid)
    {
    new
    uFile[35];
    format(uFile, 35, PATH, SpielerName(playerid));
    INI_ParseFile(uFile, "LoadToys", .bExtra = true, .extra = playerid);
    SetPlayerAttachedObject(playerid,
    INT:PI[playerid][pindex],
    INT:PI[playerid][pmodelid],
    INT:PI[playerid][pboneid],
    Float:PI[playerid][pfOffsetX],
    Float:PI[playerid][pfOffsetY],
    Float:PI[playerid][pfOffsetZ],
    Float:PI[playerid][pfRotX],
    Float:PI[playerid][pfRotY],
    Float:PI[playerid][pfRotZ],
    Float:PI[playerid][pfScaleX],
    Float:PI[playerid][pfScaleY],
    Float:PI[playerid][pfScaleZ]);
    return 1;
    }


    Dies fehler kommen dann, finde es einfach nicht raus woran es liegen könnte :/


    C:\Users\Asus\Desktop\GTA ZEUG\Scriptzeug\Sa-City\gamemodes\GeTmyselfmade.pwn(88445 -- 88446) : warning 213: tag mismatch
    C:\Users\Asus\Desktop\GTA ZEUG\Scriptzeug\Sa-City\gamemodes\GeTmyselfmade.pwn(88445 -- 88447) : warning 213: tag mismatch
    C:\Users\Asus\Desktop\GTA ZEUG\Scriptzeug\Sa-City\gamemodes\GeTmyselfmade.pwn(88445 -- 88448) : warning 213: tag mismatch

    :\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(208) : error 017: undefined symbol "cache_get_row_int"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(209) : error 017: undefined symbol "cache_get_row_int"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(210) : error 017: undefined symbol "cache_get_row_int"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(211) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(212) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(213) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(214) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(215) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(216) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(217) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(218) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(219) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(401) : error 017: undefined symbol "cache_insert_id"





    Diese undefined Sachen sind in der R7 Version nicht vorhanden, deswegen frage ich ja wie man es ändern kann, da ich mit MYSQL weniger am Hut habe bzw noch nicht gearbeitet habe.



    Hey Leute ich habe ein Problem da ich mit Mysql nicht klar kommen(umschreiben).



    Habe euch oben die Errors und fehler mal geschrieben was kommt wenn ich mit der R7 compile.


    Tipps würde ich auch nehmen verlange nicht von euch das ihr es umschreiben müsst!.


    Wollte ich euch Fragen ob ihr das umschreiben könnt

    /*


    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(208) : error 017: undefined symbol "cache_get_row_int"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(209) : error 017: undefined symbol "cache_get_row_int"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(210) : error 017: undefined symbol "cache_get_row_int"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(211) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(212) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(213) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(214) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(215) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(216) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(217) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(218) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(219) : error 017: undefined symbol "cache_get_row_float"
    C:\Users\Asus\Desktop\clothing\filterscripts\clothes.pwn(401) : error 017: undefined symbol "cache_insert_id"




    Clothing System by Paul AKA ImTheGod
    Enjoy!! COPY RIGHTS RESERVED.
    */


    #include
    #include
    #include
    #include
    #include


    new query[256], msg[500], dstr[500];


    #define NEXT_PAGE_SLOT 50


    //Dialog ID's
    #define D_CLOTHES 1000
    #define D_BUY_CLOTHES 1001


    //Dialog Stats
    #define ON_CLOTHES_LIST 500
    #define ON_CLOTHES_NONE 501
    #define ON_CLOTHES_CHOSE 502
    #define ON_CLOTHES_BONE 503


    #define ON_CLOTHES_BUY 504


    /**************************************************************************************/
    #define MAX_MODELS 5


    enum _PLAYER_MODELS
    {
    cID,
    cModelID,
    cBoneID,
    Float:cOffsetX,
    Float:cOffsetY,
    Float:cOffsetZ,
    Float:cRotX,
    Float:cRotY,
    Float:cRotZ,
    Float:cScaleX,
    Float:cScaleY,
    Float:cScaleZ,
    bool:cOn,
    }


    new ClothesInfo[MAX_PLAYERS][MAX_MODELS][_PLAYER_MODELS];


    /**************************************************************************************/


    enum _MODELS_INFO
    {
    modelID,
    modelName[128],
    modelPrice,
    modelBone
    }


    new ModelsInfo[][_MODELS_INFO] = {
    {18926, "Army Hat", 700, 2},
    {18927, "Azure Hat", 700, 2},
    {18928, "Funky Hat", 700, 2},
    {18929, "Dark Gray Hat", 700, 2},
    {18930, "Fire Hat", 700, 2},
    {18931, "Dark Blue Hat", 700, 2},
    {18932, "Orange Hat", 700, 2},
    {18933, "Light Gray Hat", 700, 2},
    {18934, "Pink Hat", 700, 2},
    {18935, "Yellow Hat", 700, 2},
    {18944, "Fire Hat Boater", 1000, 2},
    {18945, "Gray Hat Boater", 1000, 2},
    {18946, "Gray Hat Boater 2", 1000, 2},
    {18947, "Black Hat Bowler", 1000, 2},
    {18948, "Azure Hat Bowler", 1000, 2},
    {18949, "Green Hat Bowler", 1000, 2},
    {18950, "Red Hat Bowler", 1000, 2},
    {18951, "Light Green Hat Bowler", 1000, 2},
    {19488, "White Hat Bowler", 1000, 2},
    {18967, "Simple Black Hat", 500, 2},
    {18968, "Simple Gray Hat", 500, 2},
    {18969, "Simple Orange Hat", 500, 2},
    {18970, "Tiger Hat", 1000, 2},
    {18971, "Black & White Cool Hat", 1000, 2},
    {18972, "Black & Orange Cool Hat", 1000, 2},
    {18973, "Black & Green Cool Hat", 1000, 2},
    {19066, "Santa Hat", 3000, 2},
    {19067, "Red Hoody Hat", 500, 2},
    {19068, "Tiger Hoody Hat", 500, 2},
    {19069, "Black Hoody Hat", 500, 2},
    {19093, "White Dude Hat", 1300, 2},
    {19095, "Brown Cowboy Hat", 1300, 2},
    {19096, "Black Cowboy Hat", 1300, 2},
    {19097, "Black Cowboy Hat 2", 1300, 2},
    {19098, "Brown Cowboy Hat 2", 1300, 2},
    {19352, "Black Top Hat", 2000, 2},
    {19487, "White Top Hat", 2000, 2},
    {18964, "Black Skully Cap", 700, 2},
    {18965, "Brown Skully Cap", 700, 2},
    {18966, "Funky Skully Cap", 700, 2},
    {18921, "Blue Beret", 500, 2},
    {18922, "Red Beret", 500, 2},
    {18923, "Dark Blue Beret", 500, 2},
    {18924, "Army Beret", 500, 2},
    {18925, "Red Army Beret", 500, 2},
    {18939, "Dark Blue CapBack", 1000, 2},
    {18940, "Azure CapBack", 1000, 2},
    {18941, "Black CapBack", 1000, 2},
    {18942, "Gray CapBack", 1000, 2},
    {18943, "Green CapBack", 1000, 2},
    {19006, "Red Glasses", 1000, 2},
    {19007, "Green Glasses", 1000, 2},
    {19008, "Yellow Glasses", 1000, 2},
    {19009, "Azure Glasses", 1000, 2},
    {19010, "Pink Glasses", 1000, 2},
    {19011, "Funky Glasses", 1000, 2},
    {19012, "Gray Glasses", 1000, 2},
    {19013, "Funky Glasses 2", 1000, 2},
    {19014, "Black & White Glasses", 1000, 2},
    {19015, "White Glasses", 1000, 2},
    {19016, "X-Ray Glasses", 3000, 2},
    {19017, "Covered Yellow Glasses", 1000, 2},
    {19018, "Covered Orange Glasses", 1000, 2},
    {19019, "Covered Red Glasses", 1000, 2},
    {19020, "Covered Blue Glasses", 1000, 2},
    {19021, "Covered Green Glasses", 1000, 2},
    {19022, "Cool Black Glasses", 1000, 2},
    {19023, "Cool Azure Glasses", 1000, 2},
    {19024, "Cool Blue Glasses", 1000, 2},
    {19025, "Cool Pink Glasses", 1000, 2},
    {19026, "Cool Red Glasses", 1000, 2},
    {19027, "Cool Orange Glasses", 1000, 2},
    {19028, "Cool Yellow Glasses", 1000, 2},
    {19029, "Cool Yellow Glasses", 1000, 2},
    {19030, "Pink Nerd Glasses", 1500, 2},
    {19031, "Green Nerd Glasses", 1500, 2},
    {19032, "Red Nerd Glasses", 1500, 2},
    {19033, "Black Nerd Glasses", 1500, 2},
    {19034, "Black & White Nerd Glasses", 1500, 2},
    {19035, "Ocean Nerd Glasses", 1500, 2},
    {18891, "Purple Bandana", 1200, 2},
    {18892, "Red Bandana", 1200, 2},
    {18893, "Red&White Bandana", 1200, 2},
    {18894, "Orange Bandana", 1200, 2},
    {18895, "Skull Bandana", 1200, 2},
    {18896, "Black Bandana", 1200, 2},
    {18897, "Blue Bandana", 1200, 2},
    {18898, "Green Bandana", 1200, 2},
    {18899, "Pink Bandana", 1200, 2},
    {18900, "Funky Bandana", 1200, 2},
    {18901, "Tiger Bandana", 1200, 2},
    {18902, "Yellow Bandana", 1200, 2},
    {18903, "Azure Bandana", 1200, 2},
    {18904, "Dark Blue Bandana", 1200, 2},
    {18905, "Olive Bandana", 1200, 2},
    {18906, "Orange&Yellow Bandana", 800, 2},
    {18907, "Funky Bandana 2", 800, 2},
    {18907, "Blue Bandana 2", 800, 2},
    {18907, "Azure Bandana 2", 800, 2},
    {18907, "Fire Bandana", 800, 2},
    {18911, "Skull Bandana Mask", 1200, 18},
    {18912, "Black Bandana Mask", 1200, 18},
    {18913, "Green Bandana Mask", 1200, 18},
    {18914, "Army Bandana Mask", 1200, 18},
    {18915, "Funky Bandana Mask", 1200, 18},
    {18916, "Light Bandana Mask", 1200, 18},
    {18917, "Dark Blue Bandana Mask", 1200, 18},
    {18918, "Gray Bandana Mask", 1200, 18},
    {18919, "White Bandana Mask", 1200, 18},
    {18920, "Colorful Bandana Mask", 1200, 18},
    {19421, "White Headphones", 2000, 2},
    {19422, "Black Headphones", 2000, 2},
    {19423, "Gray Headphones", 2000, 2},
    {19424, "Blue Headphones", 2000, 2},
    {19036, "White Hockey Mask", 1200, 2},
    {19037, "Red Hockey Mask", 1200, 2},
    {19038, "Green Hockey Mask", 1200, 2},
    {19472, "Gas Mask", 2000, 2},
    {2919, "Sports Bag", 1500, 5},
    {3026, "Jansport Backpack", 1500, 1},
    {18645, "Red&White Motorcycle Helmet", 4000, 2},
    {18976, "Blue Motorcycle Helmet", 4000, 2},
    {18977, "Red Motorcycle Helmet", 4000, 2},
    {18978, "White Motorcycle Helmet", 4000, 2},
    {18979, "Purple Motorcycle Helmet", 4000, 2},
    {19317, "Bass Guitar", 14000 ,1},
    {19318, "Flying Guitar", 15000, 1},
    {19319, "Warlock Guitar", 16000, 1}
    };


    /**************************************************************************************/


    stock LoadPlayerClothes(playerid)
    {
    format(query, sizeof(query), "SELECT * FROM `clothes` WHERE `holder` = '%s'", GetName(playerid));
    mysql_function_query(1, query, true, "OnClothesLoad", "i", playerid);
    }


    forward OnClothesLoad(playerid);
    public OnClothesLoad(playerid)
    {
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows)
    {
    for(new i = 0; i < rows; i++)
    {
    ClothesInfo[playerid][i][cID] = cache_get_row_int(i, 0);
    ClothesInfo[playerid][i][cModelID] = cache_get_row_int(i, 2);
    ClothesInfo[playerid][i][cBoneID] = cache_get_row_int(i, 3);
    ClothesInfo[playerid][i][cOffsetX] = cache_get_row_float(i, 4);
    ClothesInfo[playerid][i][cOffsetY] = cache_get_row_float(i, 5);
    ClothesInfo[playerid][i][cOffsetZ] = cache_get_row_float(i, 6);
    ClothesInfo[playerid][i][cRotX] = cache_get_row_float(i, 7);
    ClothesInfo[playerid][i][cRotY] = cache_get_row_float(i, 8);
    ClothesInfo[playerid][i][cRotZ] = cache_get_row_float(i, 9);
    ClothesInfo[playerid][i][cScaleX] = cache_get_row_float(i, 10);
    ClothesInfo[playerid][i][cScaleY] = cache_get_row_float(i, 11);
    ClothesInfo[playerid][i][cScaleZ] = cache_get_row_float(i, 12);
    ClothesInfo[playerid][i][cOn] = true;
    }
    }
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    LoadPlayerClothes(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SavePlayerClothes(playerid);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    ResetClothes(playerid);
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new status = GetPVarInt(playerid, "DialogStatus");
    if(dialogid == D_CLOTHES)
    {
    switch(status)
    {
    case ON_CLOTHES_LIST:
    {
    if(response)
    {
    new i = listitem;
    if(!ClothesInfo[playerid][i][cOn])
    {
    ShowDialog(playerid, D_CLOTHES, DIALOG_STYLE_MSGBOX, "Clothing List", "Empty index...", "<<<", "", ON_CLOTHES_NONE);
    }
    else
    {
    SetPVarInt(playerid, "IndexChose", i);
    ClothesEditDialog(playerid, i);
    }
    }
    }
    case ON_CLOTHES_NONE:
    {
    if(response || !response)
    {
    DisplayClothing(playerid);
    }
    }
    case ON_CLOTHES_CHOSE:
    {
    if(response)
    {
    new slot = GetPVarInt(playerid, "IndexChose");
    switch(listitem)
    {
    case 0:
    {
    EditClothing(playerid, slot);
    }
    case 1:
    {
    ShowDialog(playerid, D_CLOTHES, DIALOG_STYLE_LIST, "Change The Bone Slot", "Spine\nHead\nLeft Upper Arm\nRight Upper Arm\nLeft Hand\nRight Hand\nLeft Thigh\nRight Thigh\nLeft Food\nRight Foot\nRight Calf\nLeft Calf\nLeft Forearm\nRight forearm\nLeft Clavicle\nRight Clavicle\nNeck\nJaw", "Select", "<<<", ON_CLOTHES_BONE);
    }
    case 2:
    {
    PlaceClothing(playerid, slot);
    ClothesEditDialog(playerid, slot);
    }
    }
    }
    else
    {
    DisplayClothing(playerid);
    }
    }
    case ON_CLOTHES_BONE:
    {
    new index = GetPVarInt(playerid, "IndexChose");
    if(response)
    {
    new bone = listitem + 1;
    format(msg, sizeof(msg), "You have adjusted your clothing index %d to bone %s.", index, GetBoneName(bone));
    SendClientMessage(playerid, COLOR_WHITE, msg);
    ClothesInfo[playerid][index][cBoneID] = bone;
    if(IsPlayerAttachedObjectSlotUsed(playerid, index))
    {
    ReplaceClothing(playerid, index);
    }
    ClothesEditDialog(playerid, index);
    }
    else
    {
    ClothesEditDialog(playerid, index);
    }
    }
    }
    }
    /******************************************************************************/
    if(dialogid == D_BUY_CLOTHES)
    {
    switch(status)
    {
    case ON_CLOTHES_BUY:
    {
    if(response)
    {
    new slot = GetPVarInt(playerid, "FromSlot");
    if(listitem != NEXT_PAGE_SLOT)
    {
    new i = slot + listitem;
    new price = ModelsInfo[i][modelPrice];
    new freeslot = GetFreeSlot(playerid);
    if(GetPlayerMoney(playerid) >= price)
    {
    if(freeslot != -1)
    {
    SendClientMessage(playerid, -1, "Before you complete the purchase you may take a look at the item and adjust it.");
    SendClientMessage(playerid, -1, "Press {FFFF00}ESC{FFFFFF} to cancel the purchase.");
    SetPVarInt(playerid, "SelectedItem", 1);
    SetPVarInt(playerid, "ItemIndex", i);
    SetPVarInt(playerid, "FreeSlot", freeslot);
    SetPlayerAttachedObject(playerid, freeslot, ModelsInfo[i][modelID], ModelsInfo[i][modelBone]);
    EditAttachedObject(playerid, freeslot);
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Purchase failed, you do not possess any free slots.");
    }
    }
    else
    {
    format(msg, sizeof(msg), "You are lacking money, ${FFFF00}%d", ModelsInfo[i][modelPrice]);
    SendClientMessage(playerid, -1, msg);
    }
    }
    else
    {
    ShowClothesDialog(playerid, slot + NEXT_PAGE_SLOT);
    }
    }
    else
    {
    DeletePVar(playerid, "FromSlot");
    }
    }
    }
    }
    return 1;
    }


    stock GetFreeSlot(playerid)
    {
    for(new i = 0; i < MAX_MODELS; i++)
    {
    if(!ClothesInfo[playerid][i][cOn])
    return i;
    }
    return -1;
    }


    stock OnBuyClothes(playerid, index, model, bone, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
    {
    format(query, sizeof(query), "INSERT INTO `clothes` (holder, model, bone, offestx, offesty, offestz, rotx, roty, rotz, scalex, scaley, scalez) VALUES ('%s', %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f)",
    GetName(playerid), model, bone, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
    mysql_function_query(1, query, true, "OnFinishPurchase", "id", playerid, index);
    }


    forward OnFinishPurchase(playerid, index);
    public OnFinishPurchase(playerid, index)
    {
    ClothesInfo[playerid][index][cID] = cache_insert_id(1);
    return 1;
    }


    stock ClothesEditDialog(playerid, index)
    {
    if(IsPlayerAttachedObjectSlotUsed(playerid, index))
    {
    ShowDialog(playerid, D_CLOTHES, DIALOG_STYLE_LIST, "Clothing List", "Adjust The Item\nChange Bone Slot\nTake Off", "Select", "<<<", ON_CLOTHES_CHOSE);
    }
    else
    {
    ShowDialog(playerid, D_CLOTHES, DIALOG_STYLE_LIST, "Clothing List", "Adjust The Item\nChange Bone Slot\nPlace On", "Select", "<<<", ON_CLOTHES_CHOSE);
    }
    }


    public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
    {
    if(GetPVarInt(playerid, "EditingNow") == 1)
    {
    new i = GetPVarInt(playerid, "EditingSlot");
    if(response)
    {
    ClothesInfo[playerid][i][cOffsetX] = fOffsetX;
    ClothesInfo[playerid][i][cOffsetY] = fOffsetY;
    ClothesInfo[playerid][i][cOffsetZ] = fOffsetZ;
    ClothesInfo[playerid][i][cRotX] = fRotX;
    ClothesInfo[playerid][i][cRotY] = fRotY;
    ClothesInfo[playerid][i][cRotZ] = fRotZ;
    ClothesInfo[playerid][i][cScaleX] = fScaleX;
    ClothesInfo[playerid][i][cScaleY] = fScaleY;
    ClothesInfo[playerid][i][cScaleZ] = fScaleZ;
    }
    DeletePVar(playerid, "EditingSlot");
    DeletePVar(playerid, "EditingNow");
    ReplaceClothing(playerid, i);
    }
    if(GetPVarInt(playerid, "SelectedItem") == 1 && GetPVarInt(playerid, "EditingNow") == 0)
    {
    new i = GetPVarInt(playerid, "ItemIndex");
    new slot = GetPVarInt(playerid, "FreeSlot");
    if(response)
    {
    OnBuyClothes(playerid, slot, ModelsInfo[i][modelID], ModelsInfo[i][modelBone], fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
    GivePlayerMoney(playerid, -ModelsInfo[i][modelPrice]);
    format(msg, sizeof(msg), "You have successfully purchased a {FFFF00}%s{FFFFFF} for ${FFFF00}%d", ModelsInfo[i][modelName], ModelsInfo[i][modelPrice]);
    SendClientMessage(playerid, -1, msg);
    ClothesInfo[playerid][slot][cModelID] = ModelsInfo[i][modelID];
    ClothesInfo[playerid][slot][cBoneID] = ModelsInfo[i][modelBone];
    ClothesInfo[playerid][slot][cOffsetX] = fOffsetX;
    ClothesInfo[playerid][slot][cOffsetY] = fOffsetY;
    ClothesInfo[playerid][slot][cOffsetZ] = fOffsetZ;
    ClothesInfo[playerid][slot][cRotX] = fRotX;
    ClothesInfo[playerid][slot][cRotY] = fRotY;
    ClothesInfo[playerid][slot][cRotZ] = fRotZ;
    ClothesInfo[playerid][slot][cScaleX] = fScaleX;
    ClothesInfo[playerid][slot][cScaleY] = fScaleY;
    ClothesInfo[playerid][slot][cScaleZ] = fScaleZ;
    ClothesInfo[playerid][slot][cOn] = true;
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "You've canceled the purchase of this item.");
    RemovePlayerAttachedObject(playerid, index);
    }
    DeletePVar(playerid, "SelectedItem");
    DeletePVar(playerid, "ItemIndex");
    DeletePVar(playerid, "FreeSlot");
    }
    return 1;
    }


    CMD:clothing(playerid, params[])
    {
    new option[11], secoption;
    if(GetPVarInt(playerid, "SelectedItem") == 1)
    return SendClientMessage(playerid, COLOR_LIGHTRED, "Please finish the current operation.");
    if(sscanf(params, "s[11]D(-1)", option, secoption))
    {
    SyntaxMSG(playerid, "/clothing [place | adjust | delete]");
    DisplayClothing(playerid);
    return 1;
    }
    else if(!strcmp(option, "place", true))
    {
    new slot;
    if(sscanf(params, "{s[7]}d", slot))
    {
    SyntaxMSG(playerid, "/clothing place [slot]");
    for(new i = 0; i < MAX_MODELS; i++)
    {
    if(ClothesInfo[playerid][i][cOn])
    {
    format(msg, sizeof(msg), "%d. %s", i, GetModelName(ClothesInfo[playerid][i][cModelID]));
    SendClientMessage(playerid, -1, msg);
    }
    else
    {
    format(msg, sizeof(msg), "%d. EMPTY", i);
    SendClientMessage(playerid, -1, msg);
    }
    }
    return 1;
    }
    if(slot > MAX_MODELS || slot < 0) return SendClientMessage(playerid, -1, "Invalid slot.");
    if(!ClothesInfo[playerid][slot][cOn]) return SendClientMessage(playerid, -1, "No such item.");
    PlaceClothing(playerid, slot);
    }
    else if(!strcmp(option, "adjust", true))
    {
    new slot;
    if(sscanf(params, "{s[7]}d", slot)) return SyntaxMSG(playerid, "/clothing adjust [slot]");
    if(slot > MAX_MODELS || slot < 0) return SendClientMessage(playerid, -1, "Invalid slot.");
    if(!ClothesInfo[playerid][slot][cOn]) return SendClientMessage(playerid, -1, "No such item.");
    EditClothing(playerid, slot);
    }
    else if(!strcmp(option, "delete", true))
    {
    new slot;
    if(sscanf(params, "{s[7]}d", slot)) return SyntaxMSG(playerid, "/clothing drop [slot]");
    if(slot > MAX_MODELS || slot < 0) return SendClientMessage(playerid, -1, "Invalid slot.");
    if(!ClothesInfo[playerid][slot][cOn]) return SendClientMessage(playerid, -1, "No such item.");
    format(msg, sizeof(msg), "You have dropped your {00FF00}%s{FFFFFF}, and will be no longer available.", GetModelName(ClothesInfo[playerid][slot][cModelID]));
    SendClientMessage(playerid, -1, msg);
    RemoveFromSlot(playerid, slot);
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Invalid parameter.");
    }
    return 1;
    }


    stock ShowClothesDialog(playerid, fromslot)
    {
    new string[2000];
    for(new i = fromslot; i < fromslot + NEXT_PAGE_SLOT; i++)
    {
    if( i < sizeof( ModelsInfo ) )
    {
    format(msg, sizeof(msg), "%d - %s - {FFFF00}$%d\n", i+1, ModelsInfo[i][modelName], ModelsInfo[i][modelPrice]);
    strcat(string, msg);
    }
    if( i == ( fromslot + NEXT_PAGE_SLOT ) - 1 && i < sizeof( ModelsInfo ) )
    strcat(string, "{FFFF00}Next Page\n");
    }
    SetPVarInt(playerid, "FromSlot", fromslot);
    ShowDialog(playerid, D_BUY_CLOTHES, DIALOG_STYLE_LIST, "Select your item", string, "Select", "Cancel", ON_CLOTHES_BUY);
    }


    CMD:buyclothes(playerid, params[])
    {
    if(GetPVarInt(playerid, "SelectedItem") == 1)
    return SendClientMessage(playerid, COLOR_LIGHTRED, "Please finish the current operation.");
    ShowClothesDialog(playerid, 0);
    return 1;
    }


    stock SavePlayerClothes(playerid)
    {
    for(new i = 0; i < MAX_MODELS; i++)
    {
    if(ClothesInfo[playerid][i][cOn])
    {
    UpdatePlayerToy(playerid, i);
    }
    }
    return 1;
    }


    stock UpdatePlayerToy(playerid, slot)
    {
    format(query, sizeof(query), "UPDATE `clothes` SET `bone` = %d, `offestx` = %f, `offesty` = %f, `offestz` = %f, `rotx` = %f, `roty` = %f, `rotz` = %f, `scalex` = %f, `scaley` = %f, `scalez` = %f WHERE `id` = %d",
    ClothesInfo[playerid][slot][cBoneID], ClothesInfo[playerid][slot][cOffsetX], ClothesInfo[playerid][slot][cOffsetY], ClothesInfo[playerid][slot][cOffsetZ], ClothesInfo[playerid][slot][cRotX], ClothesInfo[playerid][slot][cRotY], ClothesInfo[playerid][slot][cRotZ], ClothesInfo[playerid][slot][cScaleX], ClothesInfo[playerid][slot][cScaleY], ClothesInfo[playerid][slot][cScaleZ], ClothesInfo[playerid][slot][cID]);
    mysql_function_query(1, query, false, "", "");
    return 1;
    }


    stock EditClothing(playerid, index)
    {
    if(GetPVarInt(playerid, "EditingNow") == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Please finish the current operation.");
    format(msg, sizeof(msg), "Editing now your {00FF00}%s{FFFFFF} - Index {00FF00}%d{FFFFFF}.", GetModelName(ClothesInfo[playerid][index][cModelID]), index);
    SendClientMessage(playerid, -1, msg);
    SetPVarInt(playerid, "EditingSlot", index);
    SetPVarInt(playerid, "EditingNow", 1);
    if(!IsPlayerAttachedObjectSlotUsed(playerid, index))
    {
    SetPlayerAttachedObject(playerid, index, ClothesInfo[playerid][index][cModelID], ClothesInfo[playerid][index][cBoneID], ClothesInfo[playerid][index][cOffsetX], ClothesInfo[playerid][index][cOffsetY], ClothesInfo[playerid][index][cOffsetZ], ClothesInfo[playerid][index][cRotX], ClothesInfo[playerid][index][cRotY], ClothesInfo[playerid][index][cRotZ], ClothesInfo[playerid][index][cScaleX], ClothesInfo[playerid][index][cScaleY], ClothesInfo[playerid][index][cScaleZ]);
    }
    EditAttachedObject(playerid, index);
    return 1;
    }


    stock ReplaceClothing(playerid, index)
    {
    RemovePlayerAttachedObject(playerid, index);
    SetPlayerAttachedObject(playerid, index, ClothesInfo[playerid][index][cModelID], ClothesInfo[playerid][index][cBoneID], ClothesInfo[playerid][index][cOffsetX], ClothesInfo[playerid][index][cOffsetY], ClothesInfo[playerid][index][cOffsetZ], ClothesInfo[playerid][index][cRotX], ClothesInfo[playerid][index][cRotY], ClothesInfo[playerid][index][cRotZ], ClothesInfo[playerid][index][cScaleX], ClothesInfo[playerid][index][cScaleY], ClothesInfo[playerid][index][cScaleZ]);
    }


    stock PlaceClothing(playerid, index)
    {
    if(IsPlayerAttachedObjectSlotUsed(playerid, index))
    {
    format(msg, sizeof(msg), "You have removed your {00FF00}%s{FFFFFF}.", GetModelName(ClothesInfo[playerid][index][cModelID]));
    SendClientMessage(playerid, -1, msg);
    RemovePlayerAttachedObject(playerid, index);
    }
    else
    {
    format(msg, sizeof(msg), "You have placed your {00FF00}%s{FFFFFF}.", GetModelName(ClothesInfo[playerid][index][cModelID]));
    SendClientMessage(playerid, -1, msg);
    SetPlayerAttachedObject(playerid, index, ClothesInfo[playerid][index][cModelID], ClothesInfo[playerid][index][cBoneID], ClothesInfo[playerid][index][cOffsetX], ClothesInfo[playerid][index][cOffsetY], ClothesInfo[playerid][index][cOffsetZ], ClothesInfo[playerid][index][cRotX], ClothesInfo[playerid][index][cRotY], ClothesInfo[playerid][index][cRotZ], ClothesInfo[playerid][index][cScaleX], ClothesInfo[playerid][index][cScaleY], ClothesInfo[playerid][index][cScaleZ]);
    }
    return 1;
    }


    stock DisplayClothing(playerid)
    {
    for(new i = 0; i < MAX_MODELS; i++)
    {
    if(ClothesInfo[playerid][i][cOn])
    {
    format(msg, sizeof(msg), "%s (Index %d)\n", GetModelName(ClothesInfo[playerid][i][cModelID]), i);
    strcat(dstr, msg);
    }
    else
    {
    format(msg, sizeof(msg), "EMPTY (Index %d)\n", i);
    strcat(dstr, msg);
    }
    }
    ShowDialog(playerid, D_CLOTHES, DIALOG_STYLE_LIST, "Clothes List", dstr, "Select", "Cancel", ON_CLOTHES_LIST);
    return 1;
    }


    stock ShowDialog(playerid, dialogid, style, caption[], info[], button1[], button2[], status)
    {
    SetPVarInt(playerid, "DialogStatus", status);
    ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
    dstr = "";
    return 1;
    }


    stock GetModelName(model)
    {
    new name[64];
    for(new i = 0; i < sizeof(ModelsInfo); i++)
    {
    if(model == ModelsInfo[i][modelID])
    {
    format(name, sizeof(name), "%s", ModelsInfo[i][modelName]);
    }
    }
    return name;
    }


    stock RemoveFromSlot(playerid, slot)
    {
    format(query, sizeof(query), "DELETE FROM `clothes` WHERE `id` = %d", ClothesInfo[playerid][slot][cID]);
    mysql_function_query(1, query, true, "OnRemoveFromSlot", "id", playerid, slot);
    }


    forward OnRemoveFromSlot(playerid, slot);
    public OnRemoveFromSlot(playerid, slot)
    {
    ClothesInfo[playerid][slot][cOn] = false;
    ClothesInfo[playerid][slot][cModelID] = 0;
    ClothesInfo[playerid][slot][cBoneID] = 0;
    ClothesInfo[playerid][slot][cOffsetX] = 0.0;
    ClothesInfo[playerid][slot][cOffsetY] = 0.0;
    ClothesInfo[playerid][slot][cOffsetZ] = 0.0;
    ClothesInfo[playerid][slot][cRotX] = 0.0;
    ClothesInfo[playerid][slot][cRotY] = 0.0;
    ClothesInfo[playerid][slot][cRotZ] = 0.0;
    ClothesInfo[playerid][slot][cScaleX] = 0.0;
    ClothesInfo[playerid][slot][cScaleY] = 0.0;
    ClothesInfo[playerid][slot][cScaleZ] = 0.0;
    RemovePlayerAttachedObject(playerid, slot);
    return 1;
    }


    stock ResetClothes(playerid)
    {
    for(new i = 0; i < MAX_MODELS; i++)
    {
    if(ClothesInfo[playerid][i][cOn] == true)
    {
    RemoveFromSlot(playerid, i);
    }
    }
    }


    stock GetName(playerid)
    {
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    return pName;
    }


    stock SyntaxMSG(playerid, message[])
    {
    format(msg, sizeof(msg), "{AFAFAF}USAGE:{FFFFFF} %s", message);
    return SendClientMessage(playerid, -1, msg);
    }


    stock GetBoneName(boneid)
    {
    new bone[64];
    switch(boneid)
    {
    case 1: bone = "Spine";
    case 2: bone = "Head";
    case 3: bone = "Left upper arm";
    case 4: bone = "Right upper arm";
    case 5: bone = "Left hand";
    case 6: bone = "Right hand";
    case 7: bone = "Left thigh";
    case 8: bone = "Right thigh";
    case 9: bone = "Left foot";
    case 10: bone = "Right foot";
    case 11: bone = "Right calf";
    case 12: bone = "Left calf";
    case 13: bone = "Left forearm";
    case 14: bone = "Right forearm";
    case 15: bone = "Left clavicle (shoulder)";
    case 16: bone = "Right clavicle (shoulder)";
    case 17: bone = "Neck";
    case 18: bone = "Jaw";
    }
    return bone;
    }