Help move from mysql to dini
#1

Hi friends please I need help to move this system to dini , not far from MySQL, please help, sorry for my bad English

Код:
/*
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;
}
something like this other system is saved with dini
Код:
//-------------------------------------------------
//
// 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;
}
thank you very much , and I hope you can help
Reply
#2

By what i understand, dini is a command processing system. Are you trying to convert from mysql to flatfile?
Reply
#3

Quote:
Originally Posted by Rokzlive
Посмотреть сообщение
By what i understand, dini is a command processing system. Are you trying to convert from mysql to flatfile?
look at the second system is similar only this saved with Dini and the first with mysql, what I want is the first system to save with dini the second without using mysql
Excuse me for my bad english
Reply
#4

Look, nobody's gonna literally rewrite the whole script, especially if you want to "convert" it to such an outdated system..
Why would you use dini instead of mysql?
Quote:
Originally Posted by Rokzlive
Посмотреть сообщение
By what i understand, dini is a command processing system.
what
Reply
#5

Keep the queries and change the MySQL plugin's functions over to SQLite functions. (if you're trying to convert it because you don't have an SQL database)

Such as,

db_query(handlename, query[]) instead of mysql_[querytype]

db_open, db_close, etc.

https://sampwiki.blast.hk/wiki/SQLite

SQLite tutorial: https://sampforum.blast.hk/showthread.php?tid=449536
Reply
#6

That's a really poor decision, especially that its a pretty big script so I doubt anyone would simply just do it here for free.

Quote:
Originally Posted by Rokzlive
Посмотреть сообщение
By what i understand, dini is a command processing system. Are you trying to convert from mysql to flatfile?
I am afraid you don't understand.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)