13.01.2016, 19:05
Hi friends please I need help to move this system to dini , not far from MySQL, please help, sorry for my bad English
something like this other system is saved with dini
thank you very much , and I hope you can help
Код:
/* Clothing System by Paul AKA ImTheGod Enjoy!! COPY RIGHTS RESERVED. */ #include <a_samp> #include <zcmd> #include <sscanf2> #include <h_colors> #include <a_mysql> 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; }
Код:
//------------------------------------------------- // // This is an example of using the EditAttachedObject functions // to allow the player to customize their character. // // h02 2012 // // SA-MP 0.3e and above // //------------------------------------------------- #include <a_samp> #include <dini> #pragma tabsize 0 #define DIALOG_ATTACH_INDEX 13500 #define DIALOG_ATTACH_INDEX_SELECTION DIALOG_ATTACH_INDEX+1 #define DIALOG_ATTACH_EDITREPLACE DIALOG_ATTACH_INDEX+2 #define DIALOG_ATTACH_MODEL_SELECTION DIALOG_ATTACH_INDEX+3 #define DIALOG_ATTACH_BONE_SELECTION DIALOG_ATTACH_INDEX+4 new PlayerText:ComproOBJETO[MAX_PLAYERS]; new PlayerText:EliminoOBJETO[MAX_PLAYERS]; enum _spao { pmodel[12] } enum AttachmentEnum { attachmodel, attachname[24], modelPrice } #define MAX_OSLOTS MAX_PLAYER_ATTACHED_OBJECTS new AttachmentObjects[][AttachmentEnum] = { {18632, "FishingRod", 50000}, {18633, "GTASAWrench1", 50000}, {18634, "GTASACrowbar1", 50000}, {18635, "GTASAHammer1", 50000}, {18636, "PoliceCap1", 50000}, {18637, "PoliceShield1", 50000}, {18638, "HardHat1", 50000}, {18639, "BlackHat1", 50000}, {18640, "Hair1", 50000}, {18975, "Hair2", 50000}, {19136, "Hair4", 50000}, {19274, "Hair5", 50000}, {18641, "Flashlight1", 50000}, {18642, "Taser1", 50000}, {18643, "LaserPointer1", 50000}, {19080, "LaserPointer2", 50000}, {19081, "LaserPointer3", 50000}, {19082, "LaserPointer4", 50000}, {19083, "LaserPointer5", 50000}, {19084, "LaserPointer6", 50000}, {18644, "Screwdriver1", 35000}, {18645, "MotorcycleHelmet1", 50000}, {18865, "MobilePhone1", 50000}, {18866, "MobilePhone2", 50000}, {18867, "MobilePhone3", 50000}, {18868, "MobilePhone4", 50000}, {18869, "MobilePhone5", 50000}, {18870, "MobilePhone6", 50000}, {18871, "MobilePhone7", 50000}, {18872, "MobilePhone8", 50000}, {18873, "MobilePhone9", 50000}, {18874, "MobilePhone10", 50000}, {18875, "Pager1", 50000}, {18890, "Rake1", 50000}, {18891, "Bandana1", 50000}, {18892, "Bandana2", 50000}, {18893, "Bandana3", 50000}, {18894, "Bandana4", 50000}, {18895, "Bandana5", 50000}, {18896, "Bandana6", 50000}, {18897, "Bandana7", 50000}, {18898, "Bandana8", 50000}, {18899, "Bandana9", 50000}, {18900, "Bandana10", 50000}, {18901, "Bandana11", 50000}, {18902, "Bandana12", 50000}, {18903, "Bandana13", 50000}, {18904, "Bandana14", 50000}, {18905, "Bandana15", 50000}, {18906, "Bandana16", 50000}, {18907, "Bandana17", 50000}, {18908, "Bandana18", 50000}, {18909, "Bandana19", 50000}, {18910, "Bandana20", 50000}, {18911, "Mask1", 50000}, {18912, "Mask2", 50000}, {18913, "Mask3", 50000}, {18914, "Mask4", 50000}, {18915, "Mask5", 50000}, {18916, "Mask6", 50000}, {18917, "Mask7", 50000}, {18918, "Mask8", 50000}, {18919, "Mask9", 50000}, {18920, "Mask10", 50000}, {18921, "Beret1", 50000}, {18922, "Beret2", 50000}, {18923, "Beret3", 50000}, {18924, "Beret4", 50000}, {18925, "Beret5", 50000}, {18926, "Hat1", 50000}, {18927, "Hat2", 50000}, {18928, "Hat3", 50000}, {18929, "Hat4", 50000}, {18930, "Hat5", 50000}, {18931, "Hat6", 50000}, {18932, "Hat7", 50000}, {18933, "Hat8", 50000}, {18934, "Hat9", 50000}, {18935, "Hat10", 50000}, {18936, "Helmet1", 50000}, {18937, "Helmet2", 50000}, {18938, "Helmet3", 50000}, {18939, "CapBack1", 50000}, {18940, "CapBack2", 50000}, {18941, "CapBack3", 50000}, {18942, "CapBack4", 50000}, {18943, "CapBack5", 50000}, {18944, "HatBoater1", 50000}, {18945, "HatBoater2", 50000}, {18946, "HatBoater3", 50000}, {18947, "HatBowler1", 50000}, {18948, "HatBowler2", 50000}, {18949, "HatBowler3", 50000}, {18950, "HatBowler4", 50000}, {18951, "HatBowler5", 50000}, {18952, "BoxingHelmet1", 50000}, {18953, "CapKnit1", 50000}, {18954, "CapKnit2", 50000}, {18955, "CapOverEye1", 50000}, {18956, "CapOverEye2", 50000}, {18957, "CapOverEye3", 50000}, {18958, "CapOverEye4", 50000}, {18959, "CapOverEye5", 50000}, {18960, "CapRimUp1", 50000}, {18961, "CapTrucker1", 50000}, {18962, "CowboyHat2", 50000}, {18963, "CJElvisHead", 50000}, {18964, "SkullyCap1", 50000}, {18965, "SkullyCap2", 50000}, {18966, "SkullyCap3", 50000}, {18967, "HatMan1", 50000}, {18968, "HatMan2", 50000}, {18969, "HatMan3", 50000}, {18970, "HatTiger1", 50000}, {18971, "HatCool1", 50000}, {18972, "HatCool2", 50000}, {18973, "HatCool3", 50000}, {18974, "MaskZorro1", 50000}, {18976, "MotorcycleHelmet2", 50000}, {18977, "MotorcycleHelmet3", 50000}, {18978, "MotorcycleHelmet4", 50000}, {18979, "MotorcycleHelmet5", 50000}, {19006, "GlassesType1", 50000}, {19007, "GlassesType2", 50000}, {19008, "GlassesType3", 50000}, {19009, "GlassesType4", 50000}, {19010, "GlassesType5", 50000}, {19011, "GlassesType6", 50000}, {19012, "GlassesType7", 50000}, {19013, "GlassesType8", 50000}, {19014, "GlassesType9", 50000}, {19015, "GlassesType10", 50000}, {19016, "GlassesType11", 50000}, {19017, "GlassesType12", 50000}, {19018, "GlassesType13", 50000}, {19019, "GlassesType14", 50000}, {19020, "GlassesType15", 50000}, {19021, "GlassesType16", 50000}, {19022, "GlassesType17", 50000}, {19023, "GlassesType18", 50000}, {19024, "GlassesType19", 50000}, {19025, "GlassesType20", 50000}, {19026, "GlassesType21", 50000}, {19027, "GlassesType22", 50000}, {19028, "GlassesType23", 50000}, {19029, "GlassesType24", 50000}, {19030, "GlassesType25", 50000}, {19031, "GlassesType26", 50000}, {19032, "GlassesType27", 50000}, {19033, "GlassesType28", 50000}, {19034, "GlassesType29", 50000}, {19035, "GlassesType30", 50000}, {19036, "HockeyMask1", 50000}, {19037, "HockeyMask2", 50000}, {19038, "HockeyMask3", 50000}, {19039, "WatchType1", 50000}, {19040, "WatchType2", 50000}, {19041, "WatchType3", 50000}, {19042, "WatchType4", 50000}, {19043, "WatchType5", 50000}, {19044, "WatchType6", 50000}, {19045, "WatchType7", 50000}, {19046, "WatchType8", 50000}, {19047, "WatchType9", 50000}, {19048, "WatchType10", 50000}, {19049, "WatchType11", 50000}, {19050, "WatchType12", 50000}, {19051, "WatchType13", 50000}, {19052, "WatchType14", 50000}, {19053, "WatchType15", 50000}, {19085, "EyePatch1", 50000}, {19086, "ChainsawDildo1", 50000}, {19090, "PomPomBlue", 50000}, {19091, "PomPomRed", 50000}, {19092, "PomPomGreen", 50000}, {19093, "HardHat2", 50000}, {19094, "BurgerShotHat1", 50000}, {19095, "CowboyHat1", 50000}, {19096, "CowboyHat3", 50000}, {19097, "CowboyHat4", 50000}, {19098, "CowboyHat5", 50000}, {19099, "PoliceCap2", 50000}, {19100, "PoliceCap3", 50000}, {19101, "ArmyHelmet1", 50000}, {19102, "ArmyHelmet2", 50000}, {19103, "ArmyHelmet3", 50000}, {19104, "ArmyHelmet4", 50000}, {19105, "ArmyHelmet5", 50000}, {19106, "ArmyHelmet6", 50000}, {19107, "ArmyHelmet7", 50000}, {19108, "ArmyHelmet8", 50000}, {19109, "ArmyHelmet9", 50000}, {19110, "ArmyHelmet10", 50000}, {19111, "ArmyHelmet11", 50000}, {19112, "ArmyHelmet12", 50000}, {19113, "SillyHelmet1", 50000}, {19114, "SillyHelmet2", 50000}, {19115, "SillyHelmet3", 50000}, {19116, "PlainHelmet1", 50000}, {19117, "PlainHelmet2", 50000}, {19118, "PlainHelmet3", 50000}, {19119, "PlainHelmet4", 50000}, {19120, "PlainHelmet5", 50000}, {19137, "CluckinBellHat1", 50000}, {19138, "PoliceGlasses1", 50000}, {19139, "PoliceGlasses2", 50000}, {19140, "PoliceGlasses3", 50000}, {19141, "SWATHelmet1", 50000}, {19142, "SWATArmour1", 50000}, {19160, "HardHat3", 50000}, {19161, "PoliceHat1", 50000}, {19162, "PoliceHat2", 50000}, {19163, "GimpMask1", 50000}, {19317, "bassguitar01", 50000}, {19318, "flyingv01", 50000}, {19319, "warlock01", 50000}, {19330, "fire_hat01", 50000}, {19331, "fire_hat02", 50000}, {19346, "hotdog01", 50000}, {19347, "badge01", 50000}, {19348, "cane01", 50000}, {19349, "monocle01", 50000}, {19350, "moustache01", 50000}, {19351, "moustache02", 50000}, {19352, "tophat01", 50000}, {19487, "tophat02", 50000}, {19488, "HatBowler6", 50000}, {19513, "whitephone", 50000}, {19578, "Banana", 50000}, {19418, "HandCuff", 50000}, {6865, "Mascara de vaca, 50000"} }; new AttachmentBones[][94] = { {"Cuerpo {009191}>>"}, {"Cabeza {009191}>>"}, {"Hombro izquiedo {009191}>>"}, {"Hombro derecho {009191}>>"}, {"Mano izquierda {009191}>>"}, {"Mano derecha {009191}>>"}, {"Muslo izquierdo {009191}>>"}, {"Muslo Derecho {009191}>>"}, {"Pie Izquierdo {009191}>>"}, {"Pie Derecho {009191}>>"}, {"Pantorilla Derecha {009191}>>"}, {"Pantorilla Izquierda {009191}>>"}, {"Antebrazo izquierdo {009191}>>"}, {"Antebrazo Derecho {009191}>>"}, {"Clavicula izquierda {009191}>>"}, {"Clavicula Derecha {009191}>>"}, {"Cuello {009191}>>"}, {"Mandibula {009191}>>"} }; public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext, "/objetos", true)) { new string[400]; for(new x;x<MAX_PLAYER_ATTACHED_OBJECTS;x++) { if(IsPlayerAttachedObjectSlotUsed(playerid, x)) format(string, sizeof(string), "%sSlot:%d Item:%s {00FF31}(en uso) \n",string, x,AttachmentObjects[x][attachname]); else format(string, sizeof(string), "%sSlot:%d - vacio\n", string, x); } ShowPlayerDialog(playerid, DIALOG_ATTACH_INDEX_SELECTION, DIALOG_STYLE_LIST, \ "{00FF00}Sistema de Objetos {FFFFFF}BL", string, "Seleccionar", "Cancelar"); return 1; } return 0; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_ATTACH_INDEX_SELECTION: { if(response) { if(IsPlayerAttachedObjectSlotUsed(playerid, listitem)) { ShowPlayerDialog(playerid, DIALOG_ATTACH_EDITREPLACE, DIALOG_STYLE_MSGBOX, \ "{00FF00}Modificacion de objeto", "Preciona {00BFA5}Editar {FFFFFF}para Editar la posicion del objeto\nPreciona {AD0610}Borrar {FFFFFF}para eliminarlo.", "Editar", "Borrar"); } else { new string[4000+1]; for(new x;x<sizeof(AttachmentObjects);x++) { format(string, sizeof(string), "%s%s\t\t\t\t{80FF00}$%d\n", string, AttachmentObjects[x][attachname],AttachmentObjects[x][modelPrice]); } ShowPlayerDialog(playerid, DIALOG_ATTACH_MODEL_SELECTION, DIALOG_STYLE_LIST, \ "{00FF00}Selecciona el objeto", string, "Select", "Cancel"); } { SetPVarInt(playerid, "AttachmentIndexSel", listitem); } } return 1; } case DIALOG_ATTACH_EDITREPLACE: { if(response) EditAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel")); else { new file[256]; new name[24]; new string[80]; new x=GetPVarInt(playerid, "AttachmentIndexSel"); new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15]; GetPlayerName(playerid,name,24); format(file,sizeof(file),"Player Objects/%s.ini",name); RemovePlayerAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel")); SendClientMessage(playerid, 0xFF0000FF, "[SERVER]: Objeto eliminado correctamente."); format(string, sizeof(string), "OBJETO ~r~ELIMINADO ~w~EXITOSAMENTE!", x); PlayerTextDrawSetString(playerid,EliminoOBJETO[playerid], string); PlayerTextDrawShow(playerid, EliminoOBJETO[playerid]); SetTimerEx("quitar", 5000, 0, "d", playerid); if(!dini_Exists(file)) return 1; format(f1,15,"O_Model_%d",x); format(f2,15,"O_Bone_%d",x); format(f3,15,"O_OffX_%d",x); format(f4,15,"O_OffY_%d",x); format(f5,15,"O_OffZ_%d",x); format(f6,15,"O_RotX_%d",x); format(f7,15,"O_RotY_%d",x); format(f8,15,"O_RotZ_%d",x); format(f9,15,"O_ScaleX_%d",x); format(f10,15,"O_ScaleY_%d",x); format(f11,15,"O_ScaleZ_%d",x); dini_Unset(file,f1); dini_Unset(file,f2); dini_Unset(file,f3); dini_Unset(file,f4); dini_Unset(file,f5); dini_Unset(file,f6); dini_Unset(file,f7); dini_Unset(file,f8); dini_Unset(file,f9); dini_Unset(file,f10); dini_Unset(file,f11); DeletePVar(playerid, "AttachmentIndexSel"); } return 1; } case DIALOG_ATTACH_MODEL_SELECTION: { new price = AttachmentObjects[playerid][modelPrice]; if(GetPlayerMoney(playerid) >= price) { if(response) { if(GetPVarInt(playerid, "AttachmentUsed") == 1) EditAttachedObject(playerid, listitem); else { SetPVarInt(playerid, "AttachmentModelSel", AttachmentObjects[listitem][attachmodel]); new string[256+250]; for(new x;x<sizeof(AttachmentBones);x++) { format(string, sizeof(string), "%s%s\n", string, AttachmentBones[x]); } ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \ "{00FF00}Lugar en donde quieres que se adapte tu objeto", string, "Seleccionar", "Cancelar"); } } else DeletePVar(playerid, "AttachmentIndexSel"); } else { SendClientMessage(playerid, 0xFF0000FF, "[ERROR]: No tienes suficiente dinero para comprar este objeto."); } return 1; } case DIALOG_ATTACH_BONE_SELECTION: { if(response) { new price = AttachmentObjects[playerid][modelPrice]; SetPlayerAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel"), GetPVarInt(playerid, "AttachmentModelSel"), listitem+1); EditAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel")); GivePlayerMoney(playerid,-price); SendClientMessage(playerid, 0xE2C800FF, "ATENCION: Esta prohibido el uso de tamaсo excesivo de un objeto"); SendClientMessage(playerid, 0xE2C800FF, "ATENCION: Si editas el tamaсo de tu objeto muy grande podras ser baneado del servidor!"); } DeletePVar(playerid, "AttachmentIndexSel"); DeletePVar(playerid, "AttachmentModelSel"); return 1; } } return 0; } 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 ) { /*new debug_string[256+1]; format(debug_string,256,"SetPlayerAttachedObject(playerid,%d,%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f)", index,modelid,boneid,fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ);*/ new string[80]; SetPlayerAttachedObject(playerid,index,modelid,boneid,fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ); SendClientMessage(playerid, 0xFFFFFFFF, "{009482}[SERVER]: Edicion finalizada. Objeto guardado correctamente."); format(string, sizeof(string), "OBJETO COMPRADO ~p~EXITOSAMENTE!", modelid); PlayerTextDrawSetString(playerid,ComproOBJETO[playerid], string); PlayerTextDrawShow(playerid, ComproOBJETO[playerid]); SetTimerEx("compro", 5000, 0, "d", playerid); new file[256]; new name[24]; new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15]; GetPlayerName(playerid,name,24); format(file,sizeof(file),"Player Objects/%s.ini",name); if(!dini_Exists(file)) return 1; format(f1,15,"O_Model_%d",index); format(f2,15,"O_Bone_%d",index); format(f3,15,"O_OffX_%d",index); format(f4,15,"O_OffY_%d",index); format(f5,15,"O_OffZ_%d",index); format(f6,15,"O_RotX_%d",index); format(f7,15,"O_RotY_%d",index); format(f8,15,"O_RotZ_%d",index); format(f9,15,"O_ScaleX_%d",index); format(f10,15,"O_ScaleY_%d",index); format(f11,15,"O_ScaleZ_%d",index); dini_IntSet(file,f1,modelid); dini_IntSet(file,f2,boneid); dini_FloatSet(file,f3,fOffsetX); dini_FloatSet(file,f4,fOffsetY); dini_FloatSet(file,f5,fOffsetZ); dini_FloatSet(file,f6,fRotX); dini_FloatSet(file,f7,fRotY); dini_FloatSet(file,f8,fRotZ); dini_FloatSet(file,f9,fScaleX); dini_FloatSet(file,f10,fScaleY); dini_FloatSet(file,f11,fScaleZ); return 1; } public OnPlayerConnect(playerid) { new file[256]; new name[24]; new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15]; GetPlayerName(playerid,name,24); format(file,sizeof(file),"Player Objects/%s.ini",name); if(!dini_Exists(file)) { dini_Create(file); for(new x;x<MAX_OSLOTS;x++) { if(IsPlayerAttachedObjectSlotUsed(playerid, x)) { format(f1,15,"O_Model_%d",x); format(f2,15,"O_Bone_%d",x); format(f3,15,"O_OffX_%d",x); format(f4,15,"O_OffY_%d",x); format(f5,15,"O_OffZ_%d",x); format(f6,15,"O_RotX_%d",x); format(f7,15,"O_RotY_%d",x); format(f8,15,"O_RotZ_%d",x); format(f9,15,"O_ScaleX_%d",x); format(f10,15,"O_ScaleY_%d",x); format(f11,15,"O_ScaleZ_%d",x); dini_IntSet(file,f1,0); dini_IntSet(file,f2,0); dini_FloatSet(file,f3,0.0); dini_FloatSet(file,f4,0.0); dini_FloatSet(file,f5,0.0); dini_FloatSet(file,f6,0.0); dini_FloatSet(file,f7,0.0); dini_FloatSet(file,f8,0.0); dini_FloatSet(file,f9,0.0); dini_FloatSet(file,f10,0.0); dini_FloatSet(file,f11,0.0); //AL COMPRAR UN BOJETO ComproOBJETO[playerid] = CreatePlayerTextDraw(playerid,313.000000, 142.000000, "OBJETO COMPRADO: LENTES NEGROS 1"); PlayerTextDrawAlignment(playerid,ComproOBJETO[playerid], 2); PlayerTextDrawBackgroundColor(playerid,ComproOBJETO[playerid], 255); PlayerTextDrawFont(playerid,ComproOBJETO[playerid], 2); PlayerTextDrawLetterSize(playerid,ComproOBJETO[playerid], 0.429998, 1.899999); PlayerTextDrawColor(playerid,ComproOBJETO[playerid], -1); PlayerTextDrawSetOutline(playerid,ComproOBJETO[playerid], 1); PlayerTextDrawSetProportional(playerid,ComproOBJETO[playerid], 1); PlayerTextDrawSetSelectable(playerid,ComproOBJETO[playerid], 0); EliminoOBJETO[playerid] = CreatePlayerTextDraw(playerid,313.000000, 142.000000, "OBJETO COMPRADO: LENTES NEGROS 1"); PlayerTextDrawAlignment(playerid,EliminoOBJETO[playerid], 2); PlayerTextDrawBackgroundColor(playerid,EliminoOBJETO[playerid], 255); PlayerTextDrawFont(playerid,EliminoOBJETO[playerid], 2); PlayerTextDrawLetterSize(playerid,EliminoOBJETO[playerid], 0.429998, 1.899999); PlayerTextDrawColor(playerid,EliminoOBJETO[playerid], -1); PlayerTextDrawSetOutline(playerid,EliminoOBJETO[playerid], 1); PlayerTextDrawSetProportional(playerid,EliminoOBJETO[playerid], 1); PlayerTextDrawSetSelectable(playerid,EliminoOBJETO[playerid], 0); } } } } forward compro(playerid); public compro(playerid) { PlayerTextDrawHide(playerid, ComproOBJETO[playerid]); } forward quitar(playerid); public quitar(playerid) { PlayerTextDrawHide(playerid, EliminoOBJETO[playerid]); } public OnPlayerSpawn(playerid) { new file[256]; new name[24]; new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15]; GetPlayerName(playerid,name,24); format(file,sizeof(file),"Player Objects/%s.ini",name); if(!dini_Exists(file)) return 1; for(new x;x<MAX_OSLOTS;x++) { format(f1,15,"O_Model_%d",x); format(f2,15,"O_Bone_%d",x); format(f3,15,"O_OffX_%d",x); format(f4,15,"O_OffY_%d",x); format(f5,15,"O_OffZ_%d",x); format(f6,15,"O_RotX_%d",x); format(f7,15,"O_RotY_%d",x); format(f8,15,"O_RotZ_%d",x); format(f9,15,"O_ScaleX_%d",x); format(f10,15,"O_ScaleY_%d",x); format(f11,15,"O_ScaleZ_%d",x); if(dini_Int(file,f1)!=0) { SetPlayerAttachedObject(playerid,x,dini_Int(file,f1),dini_Int(file,f2),dini_Float(file,f3),dini_Float(file,f4),dini_Float(file,f5),dini_Float(file,f6),dini_Float(file,f7),dini_Float(file,f8),dini_Float(file,f9),dini_Float(file,f10),dini_Float(file,f11)); } } return 1; } stock GetAttachedModelName(modelid) { new returnt[64]; switch(modelid) { case 18632: { format(returnt,sizeof(returnt), "FishingRod"); } case 18633: { format(returnt,sizeof(returnt), "GTASAWrench1"); } case 18634: { format(returnt,sizeof(returnt), "GTASACrowbar1"); } case 18635: { format(returnt,sizeof(returnt), "GTASAHammer1"); } case 18636: { format(returnt,sizeof(returnt), "PoliceCap1"); } case 18637: { format(returnt,sizeof(returnt), "PoliceShield1"); } case 18638: { format(returnt,sizeof(returnt), "HardHat1"); } case 18639: { format(returnt,sizeof(returnt), "BlackHat1"); } case 18640: { format(returnt,sizeof(returnt), "Hair1"); } case 18975: { format(returnt,sizeof(returnt), "Hair2"); } case 19136: { format(returnt,sizeof(returnt), "Hair4"); } case 19274: { format(returnt,sizeof(returnt), "Hair5"); } case 18641: { format(returnt,sizeof(returnt), "Flashlight1"); } case 18642: { format(returnt,sizeof(returnt), "Taser1"); } case 18643: { format(returnt,sizeof(returnt), "LaserPointer1"); } case 19080: { format(returnt,sizeof(returnt), "LaserPointer2"); } case 19081: { format(returnt,sizeof(returnt), "LaserPointer3"); } case 19082: { format(returnt,sizeof(returnt), "LaserPointer4"); } case 19083: { format(returnt,sizeof(returnt), "LaserPointer5"); } case 19084: { format(returnt,sizeof(returnt), "LaserPointer6"); } case 18644: { format(returnt,sizeof(returnt), "Screwdriver1"); } case 18645: { format(returnt,sizeof(returnt), "MotorcycleHelmet1"); } case 18865: { format(returnt,sizeof(returnt), "MobilePhone1"); } case 18866: { format(returnt,sizeof(returnt), "MobilePhone2"); } case 18867: { format(returnt,sizeof(returnt), "MobilePhone3"); } case 18868: { format(returnt,sizeof(returnt), "MobilePhone4"); } case 18869: { format(returnt,sizeof(returnt), "MobilePhone5"); } case 18870: { format(returnt,sizeof(returnt), "MobilePhone6"); } case 18871: { format(returnt,sizeof(returnt), "MobilePhone7"); } case 18872: { format(returnt,sizeof(returnt), "MobilePhone8"); } case 18873: { format(returnt,sizeof(returnt), "MobilePhone9"); } case 18874: { format(returnt,sizeof(returnt), "MobilePhone10"); } case 18875: { format(returnt,sizeof(returnt), "Pager1"); } case 18890: { format(returnt,sizeof(returnt), "Rake1"); } case 18891: { format(returnt,sizeof(returnt), "Bandana1"); } case 18892: { format(returnt,sizeof(returnt), "Bandana2"); } case 18893: { format(returnt,sizeof(returnt), "Bandana3"); } case 18894: { format(returnt,sizeof(returnt), "Bandana4"); } case 18895: { format(returnt,sizeof(returnt), "Bandana5"); } case 18896: { format(returnt,sizeof(returnt), "Bandana6"); } case 18897: { format(returnt,sizeof(returnt), "Bandana7"); } case 18898: { format(returnt,sizeof(returnt), "Bandana8"); } case 18899: { format(returnt,sizeof(returnt), "Bandana9"); } case 18900: { format(returnt,sizeof(returnt), "Bandana10"); } case 18901: { format(returnt,sizeof(returnt), "Bandana11"); } case 18902: { format(returnt,sizeof(returnt), "Bandana12"); } case 18903: { format(returnt,sizeof(returnt), "Bandana13"); } case 18904: { format(returnt,sizeof(returnt), "Bandana14"); } case 18905: { format(returnt,sizeof(returnt), "Bandana15"); } case 18906: { format(returnt,sizeof(returnt), "Bandana16"); } case 18907: { format(returnt,sizeof(returnt), "Bandana17"); } case 18908: { format(returnt,sizeof(returnt), "Bandana18"); } case 18909: { format(returnt,sizeof(returnt), "Bandana19"); } case 18910: { format(returnt,sizeof(returnt), "Bandana20"); } case 18911: { format(returnt,sizeof(returnt), "Mask1"); } case 18912: { format(returnt,sizeof(returnt), "Mask2"); } case 18913: { format(returnt,sizeof(returnt), "Mask3"); } case 18914: { format(returnt,sizeof(returnt), "Mask4"); } case 18915: { format(returnt,sizeof(returnt), "Mask5"); } case 18916: { format(returnt,sizeof(returnt), "Mask6"); } case 18917: { format(returnt,sizeof(returnt), "Mask7"); } case 18918: { format(returnt,sizeof(returnt), "Mask8"); } case 18919: { format(returnt,sizeof(returnt), "Mask9"); } case 18920: { format(returnt,sizeof(returnt), "Mask10"); } case 18921: { format(returnt,sizeof(returnt), "Beret1"); } case 18922: { format(returnt,sizeof(returnt), "Beret2"); } case 18923: { format(returnt,sizeof(returnt), "Beret3"); } case 18924: { format(returnt,sizeof(returnt), "Beret4"); } case 18925: { format(returnt,sizeof(returnt), "Beret5"); } case 18926: { format(returnt,sizeof(returnt), "Hat1"); } case 18927: { format(returnt,sizeof(returnt), "Hat2"); } case 18928: { format(returnt,sizeof(returnt), "Hat3"); } case 18929: { format(returnt,sizeof(returnt), "Hat4"); } case 18930: { format(returnt,sizeof(returnt), "Hat5"); } case 18931: { format(returnt,sizeof(returnt), "Hat6"); } case 18932: { format(returnt,sizeof(returnt), "Hat7"); } case 18933: { format(returnt,sizeof(returnt), "Hat8"); } case 18934: { format(returnt,sizeof(returnt), "Hat9"); } case 18935: { format(returnt,sizeof(returnt), "Hat10"); } case 18936: { format(returnt,sizeof(returnt), "Helmet1"); } case 18937: { format(returnt,sizeof(returnt), "Helmet2"); } case 18938: { format(returnt,sizeof(returnt), "Helmet3"); } case 18939: { format(returnt,sizeof(returnt), "CapBack1"); } case 18940: { format(returnt,sizeof(returnt), "CapBack2"); } case 18941: { format(returnt,sizeof(returnt), "CapBack3"); } case 18942: { format(returnt,sizeof(returnt), "CapBack4"); } case 18943: { format(returnt,sizeof(returnt), "CapBack5"); } case 18944: { format(returnt,sizeof(returnt), "HatBoater1"); } case 18945: { format(returnt,sizeof(returnt), "HatBoater2"); } case 18946: { format(returnt,sizeof(returnt), "HatBoater3"); } case 18947: { format(returnt,sizeof(returnt), "HatBowler1"); } case 18948: { format(returnt,sizeof(returnt), "HatBowler2"); } case 18949: { format(returnt,sizeof(returnt), "HatBowler3"); } case 18950: { format(returnt,sizeof(returnt), "HatBowler4"); } case 18951: { format(returnt,sizeof(returnt), "HatBowler5"); } case 18952: { format(returnt,sizeof(returnt), "BoxingHelmet1"); } case 18953: { format(returnt,sizeof(returnt), "CapKnit1"); } case 18954: { format(returnt,sizeof(returnt), "CapKnit2"); } case 18955: { format(returnt,sizeof(returnt), "CapOverEye1"); } case 18956: { format(returnt,sizeof(returnt), "CapOverEye2"); } case 18957: { format(returnt,sizeof(returnt), "CapOverEye3"); } case 18958: { format(returnt,sizeof(returnt), "CapOverEye4"); } case 18959: { format(returnt,sizeof(returnt), "CapOverEye5"); } case 18960: { format(returnt,sizeof(returnt), "CapRimUp1"); } case 18961: { format(returnt,sizeof(returnt), "CapTrucker1"); } case 18962: { format(returnt,sizeof(returnt), "CowboyHat2"); } case 18963: { format(returnt,sizeof(returnt), "CJElvisHead"); } case 18964: { format(returnt,sizeof(returnt), "SkullyCap1"); } case 18965: { format(returnt,sizeof(returnt), "SkullyCap2"); } case 18966: { format(returnt,sizeof(returnt), "SkullyCap3"); } case 18967: { format(returnt,sizeof(returnt), "HatMan1"); } case 18968: { format(returnt,sizeof(returnt), "HatMan2"); } case 18969: { format(returnt,sizeof(returnt), "HatMan3"); } case 18970: { format(returnt,sizeof(returnt), "HatTiger1"); } case 18971: { format(returnt,sizeof(returnt), "HatCool1"); } case 18972: { format(returnt,sizeof(returnt), "HatCool2"); } case 18973: { format(returnt,sizeof(returnt), "HatCool3"); } case 18974: { format(returnt,sizeof(returnt), "MaskZorro1"); } case 18976: { format(returnt,sizeof(returnt), "MotorcycleHelmet2"); } case 18977: { format(returnt,sizeof(returnt), "MotorcycleHelmet3"); } case 18978: { format(returnt,sizeof(returnt), "MotorcycleHelmet4"); } case 18979: { format(returnt,sizeof(returnt), "MotorcycleHelmet5"); } case 19006: { format(returnt,sizeof(returnt), "GlassesType1"); } case 19007: { format(returnt,sizeof(returnt), "GlassesType2"); } case 19008: { format(returnt,sizeof(returnt), "GlassesType3"); } case 19009: { format(returnt,sizeof(returnt), "GlassesType4"); } case 19010: { format(returnt,sizeof(returnt), "GlassesType5"); } case 19011: { format(returnt,sizeof(returnt), "GlassesType6"); } case 19012: { format(returnt,sizeof(returnt), "GlassesType7"); } case 19013: { format(returnt,sizeof(returnt), "GlassesType8"); } case 19014: { format(returnt,sizeof(returnt), "GlassesType9"); } case 19015: { format(returnt,sizeof(returnt), "GlassesType10"); } case 19016: { format(returnt,sizeof(returnt), "GlassesType11"); } case 19017: { format(returnt,sizeof(returnt), "GlassesType12"); } case 19018: { format(returnt,sizeof(returnt), "GlassesType13"); } case 19019: { format(returnt,sizeof(returnt), "GlassesType14"); } case 19020: { format(returnt,sizeof(returnt), "GlassesType15"); } case 19021: { format(returnt,sizeof(returnt), "GlassesType16"); } case 19022: { format(returnt,sizeof(returnt), "GlassesType17"); } case 19023: { format(returnt,sizeof(returnt), "GlassesType18"); } case 19024: { format(returnt,sizeof(returnt), "GlassesType19"); } case 19025: { format(returnt,sizeof(returnt), "GlassesType20"); } case 19026: { format(returnt,sizeof(returnt), "GlassesType21"); } case 19027: { format(returnt,sizeof(returnt), "GlassesType22"); } case 19028: { format(returnt,sizeof(returnt), "GlassesType23"); } case 19029: { format(returnt,sizeof(returnt), "GlassesType24"); } case 19030: { format(returnt,sizeof(returnt), "GlassesType25"); } case 19031: { format(returnt,sizeof(returnt), "GlassesType26"); } case 19032: { format(returnt,sizeof(returnt), "GlassesType27"); } case 19033: { format(returnt,sizeof(returnt), "GlassesType28"); } case 19034: { format(returnt,sizeof(returnt), "GlassesType29"); } case 19035: { format(returnt,sizeof(returnt), "GlassesType30"); } case 19036: { format(returnt,sizeof(returnt), "HockeyMask1"); } case 19037: { format(returnt,sizeof(returnt), "HockeyMask2"); } case 19038: { format(returnt,sizeof(returnt), "HockeyMask3"); } case 19039: { format(returnt,sizeof(returnt), "WatchType1"); } case 19040: { format(returnt,sizeof(returnt), "WatchType2"); } case 19041: { format(returnt,sizeof(returnt), "WatchType3"); } case 19042: { format(returnt,sizeof(returnt), "WatchType4"); } case 19043: { format(returnt,sizeof(returnt), "WatchType5"); } case 19044: { format(returnt,sizeof(returnt), "WatchType6"); } case 19045: { format(returnt,sizeof(returnt), "WatchType7"); } case 19046: { format(returnt,sizeof(returnt), "WatchType8"); } case 19047: { format(returnt,sizeof(returnt), "WatchType9"); } case 19048: { format(returnt,sizeof(returnt), "WatchType10"); } case 19049: { format(returnt,sizeof(returnt), "WatchType11"); } case 19050: { format(returnt,sizeof(returnt), "WatchType12"); } case 19051: { format(returnt,sizeof(returnt), "WatchType13"); } case 19052: { format(returnt,sizeof(returnt), "WatchType14"); } case 19053: { format(returnt,sizeof(returnt), "WatchType15"); } case 19079: { format(returnt,sizeof(returnt), "Parrot"); } case 19085: { format(returnt,sizeof(returnt), "EyePatch1"); } case 19086: { format(returnt,sizeof(returnt), "ChainsawDildo1"); } case 19090: { format(returnt,sizeof(returnt), "PomPomBlue"); } case 19091: { format(returnt,sizeof(returnt), "PomPomRed"); } case 19092: { format(returnt,sizeof(returnt), "PomPomGreen"); } case 19093: { format(returnt,sizeof(returnt), "HardHat2"); } case 19094: { format(returnt,sizeof(returnt), "BurgerShotHat1"); } case 19095: { format(returnt,sizeof(returnt), "CowboyHat1"); } case 19096: { format(returnt,sizeof(returnt), "CowboyHat3"); } case 19097: { format(returnt,sizeof(returnt), "CowboyHat4"); } case 19098: { format(returnt,sizeof(returnt), "CowboyHat5"); } case 19099: { format(returnt,sizeof(returnt), "PoliceCap2"); } case 19100: { format(returnt,sizeof(returnt), "PoliceCap3"); } case 19101: { format(returnt,sizeof(returnt), "ArmyHelmet1"); } case 19102: { format(returnt,sizeof(returnt), "ArmyHelmet2"); } case 19103: { format(returnt,sizeof(returnt), "ArmyHelmet3"); } case 19104: { format(returnt,sizeof(returnt), "ArmyHelmet4"); } case 19105: { format(returnt,sizeof(returnt), "ArmyHelmet5"); } case 19106: { format(returnt,sizeof(returnt), "ArmyHelmet6"); } case 19107: { format(returnt,sizeof(returnt), "ArmyHelmet7"); } case 19108: { format(returnt,sizeof(returnt), "ArmyHelmet8"); } case 19109: { format(returnt,sizeof(returnt), "ArmyHelmet9"); } case 19110: { format(returnt,sizeof(returnt), "ArmyHelmet10"); } case 19111: { format(returnt,sizeof(returnt), "ArmyHelmet11"); } case 19112: { format(returnt,sizeof(returnt), "ArmyHelmet12"); } case 19113: { format(returnt,sizeof(returnt), "SillyHelmet1"); } case 19114: { format(returnt,sizeof(returnt), "SillyHelmet2"); } case 19115: { format(returnt,sizeof(returnt), "SillyHelmet3"); } case 19116: { format(returnt,sizeof(returnt), "PlainHelmet1"); } case 19117: { format(returnt,sizeof(returnt), "PlainHelmet2"); } case 19118: { format(returnt,sizeof(returnt), "PlainHelmet3"); } case 19119: { format(returnt,sizeof(returnt), "PlainHelmet4"); } case 19120: { format(returnt,sizeof(returnt), "PlainHelmet5"); } case 19137: { format(returnt,sizeof(returnt), "CluckinBellHat1"); } case 19138: { format(returnt,sizeof(returnt), "PoliceGlasses1"); } case 19139: { format(returnt,sizeof(returnt), "PoliceGlasses2"); } case 19140: { format(returnt,sizeof(returnt), "PoliceGlasses3"); } case 19141: { format(returnt,sizeof(returnt), "SWATHelmet1"); } case 19142: { format(returnt,sizeof(returnt), "SWATArmour1"); } case 19160: { format(returnt,sizeof(returnt), "HardHat3"); } case 19161: { format(returnt,sizeof(returnt), "PoliceHat1"); } case 19162: { format(returnt,sizeof(returnt), "PoliceHat2"); } case 19163: { format(returnt,sizeof(returnt), "GimpMask1"); } case 19317: { format(returnt,sizeof(returnt), "bassguitar01"); } case 19318: { format(returnt,sizeof(returnt), "flyingv01"); } case 19319: { format(returnt,sizeof(returnt), "warlock01"); } case 19330: { format(returnt,sizeof(returnt), "fire_hat01"); } case 19331: { format(returnt,sizeof(returnt), "fire_hat02"); } case 19346: { format(returnt,sizeof(returnt), "hotdog01"); } case 19347: { format(returnt,sizeof(returnt), "badge01"); } case 19348: { format(returnt,sizeof(returnt), "cane01"); } case 19349: { format(returnt,sizeof(returnt), "monocle01"); } case 19350: { format(returnt,sizeof(returnt), "moustache01"); } case 19351: { format(returnt,sizeof(returnt), "moustache02"); } case 19352: { format(returnt,sizeof(returnt), "tophat01"); } default: { format(returnt,sizeof(returnt), "Un-listed item"); } } return returnt; }