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;
}


