CMD:toys(playerid, params[])
{
ShowPlayerDialog( playerid, TOYS, DIALOG_STYLE_LIST, "Toy Menu", "Attach/Dettach a Toy\nEdit a Toy\nDelete a Toy","Select", "Cancel" );
return 1;
}
stock ShowEditMenu(playerid)
{
if(IsPlayerAttachedObjectSlotUsed(playerid, slotselection[playerid]))
{
RemovePlayerAttachedObject(playerid, slotselection[playerid]);
}
SetPlayerAttachedObject(playerid, slotselection[playerid], PlayerToyInfo[playerid][slotselection[playerid]][ptModelID],
PlayerToyInfo[playerid][slotselection[playerid]][ptBone], PlayerToyInfo[playerid][slotselection[playerid]][ptPosX],
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY], PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ],
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX], PlayerToyInfo[playerid][slotselection[playerid]][ptRotY],
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ], PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX],
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY], PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ]);
new stringg[512];
format(stringg, sizeof(stringg), "%sBone (%s)\n", stringg, HoldingBones[PlayerToyInfo[playerid][slotselection[playerid]][ptBone]]);
format(stringg, sizeof(stringg), "%sOffset X (%f)\n", stringg,(PlayerToyInfo[playerid][slotselection[playerid]][ptPosX]*100));
format(stringg, sizeof(stringg), "%sOffset Y (%f)\n", stringg,(PlayerToyInfo[playerid][slotselection[playerid]][ptPosY]*100));
format(stringg, sizeof(stringg), "%sOffset Z (%f)\n", stringg,(PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ]*100));
format(stringg, sizeof(stringg), "%sRotation X (%f)\n", stringg, PlayerToyInfo[playerid][slotselection[playerid]][ptRotX]);
format(stringg, sizeof(stringg), "%sRotation Y (%f)\n", stringg, PlayerToyInfo[playerid][slotselection[playerid]][ptRotY]);
format(stringg, sizeof(stringg), "%sRotation Z (%f)\n",stringg, PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ]);
format(stringg, sizeof(stringg), "%sScale X (%f)\n",stringg, PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX]);
format(stringg, sizeof(stringg), "%sScale Y (%f)\n",stringg, PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY]);
format(stringg, sizeof(stringg), "%sScale Z (%f)\n" ,stringg, PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ]);
ShowPlayerDialog(playerid, EDITTOYS2, DIALOG_STYLE_LIST, "Toy Menu: Edit", stringg, "Select", "Cancel");
}
if((dialogid == BUYTOYS) && response)
{
new stringg[512];
for(new x;x<MAX_PLAYERTOYS;x++)
{
new name[24];
format(name, sizeof(name), "None");
for(new i;i<sizeof(HoldingObjectsAll);i++)
{
if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
}
}
for(new i;i<sizeof(HoldingObjectsPlat);i++)
{
if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
}
}
format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
}
ShowPlayerDialog(playerid, BUYTOYS2, DIALOG_STYLE_LIST, "Select a Slot", stringg, "Select", "Cancel");
}
if((dialogid == BUYTOYS2) && response)
{
if(listitem >= 3 && PlayerInfo[playerid][pDonateRank] < 1 || listitem >= 3 && PlayerInfo[playerid][pBuddyInvited] == 1) return SendClientMessageEx(playerid, COLOR_WHITE, "* You must be a Bronze VIP + to use that slot!");
if(listitem >= 4 && PlayerInfo[playerid][pDonateRank] < 2) return SendClientMessageEx(playerid, COLOR_WHITE, "* You must be a Silver VIP + to use that slot!");
if(listitem >= 5 && PlayerInfo[playerid][pDonateRank] < 3) return SendClientMessageEx(playerid, COLOR_WHITE, "* You must be a Gold VIP + to use that slot!");
if(PlayerToyInfo[playerid][listitem][ptModelID] != 0) return SendClientMessageEx(playerid, COLOR_YELLOW, "* You already have something in that slot. Delete it with /toys");
slotselection[playerid] = listitem;
new stringg[5000];
for(new x;x<sizeof(HoldingObjects);x++)
{
format(stringg, sizeof(stringg), "%s%s ($%d)\n", stringg, HoldingObjects[x][holdingmodelname], HoldingObjects[x][holdingprice]);
}
ShowPlayerDialog(playerid, BUYTOYS3, DIALOG_STYLE_LIST, "Select an Item", stringg, "Buy", "Cancel");
}
if((dialogid == BUYTOYS3) && response)
{
if(GetPlayerCash(playerid) < HoldingObjects[listitem][holdingprice])
{
SendClientMessageEx(playerid, COLOR_WHITE, "* You can't afford that!");
}
else
{
GivePlayerCash(playerid, -HoldingObjects[listitem][holdingprice]);
PlayerToyInfo[playerid][slotselection[playerid]][ptModelID] = HoldingObjects[listitem][holdingmodelid];
new modelid = PlayerToyInfo[playerid][slotselection[playerid]][ptModelID];
if((modelid >= 19006 && modelid <= 19035) || (modelid >= 19138 && modelid <= 19140))
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.9;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.35;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 90.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 90.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
}
else if(modelid >= 18891 && modelid <= 18910)
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.15;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 90.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 180.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 90.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
}
else if(modelid >= 18926 && modelid <= 18935)
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.1;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
}
else if(modelid >= 18911 && modelid <= 18920)
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.1;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.035;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 90.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 180.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 90.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
}
else if(modelid == 19078 || modelid == 19078)
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 16;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 180.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 180.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
}
else if((modelid >= 18641 && modelid <= 18644) || (modelid >= 19080 && modelid <= 19084) || modelid == 18890)
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 6;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
}
else
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
}
format(string, sizeof(string), "* You have purchased %s for $%d (Slot: %d)", HoldingObjects[listitem][holdingmodelname], HoldingObjects[listitem][holdingprice], slotselection[playerid]);
SendClientMessageEx(playerid, COLOR_RED, string);
SendClientMessageEx(playerid, COLOR_WHITE, "HINT: Use /toys to wear/edit this");
}
}
if((dialogid == TOYS) && response)
{
if(listitem == 0)
{
new stringg[512];
for(new x;x<MAX_PLAYERTOYS;x++)
{
new name[24];
format(name, sizeof(name), "None");
for(new i;i<sizeof(HoldingObjectsAll);i++)
{
if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
}
}
for(new i;i<sizeof(HoldingObjectsPlat);i++)
{
if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
}
}
format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
}
ShowPlayerDialog(playerid, WEARTOY, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Select", "Cancel");
}
else if(listitem == 1)
{
new stringg[512];
for(new x;x<MAX_PLAYERTOYS;x++)
{
new name[24];
format(name, sizeof(name), "None");
for(new i;i<sizeof(HoldingObjectsAll);i++)
{
if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
}
}
for(new i;i<sizeof(HoldingObjectsPlat);i++)
{
if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
}
}
format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
}
ShowPlayerDialog(playerid, EDITTOYS, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Select", "Cancel");
}
else if(listitem == 2)
{
new stringg[512];
for(new x;x<MAX_PLAYERTOYS;x++)
{
new name[24];
format(name, sizeof(name), "None");
for(new i;i<sizeof(HoldingObjectsAll);i++)
{
if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
}
}
for(new i;i<sizeof(HoldingObjectsPlat);i++)
{
if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
}
}
format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
}
ShowPlayerDialog(playerid, DELETETOY, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Delete", "Cancel");
}
}
if((dialogid == EDITTOYS) && response)
{
if(PlayerToyInfo[playerid][listitem][ptModelID] == 0)
{
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Toy Menu: Edit", "Woops! You don't have anything on that slot", "OK", "");
}
else
{
SendClientMessageEx(playerid, COLOR_WHITE, "{AA3333}HINT:{FFFF00} Position your camera differently to better see where your editing.");
slotselection[playerid] = listitem;
ShowEditMenu(playerid);
}
}
if((dialogid == EDITTOYS2))
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid, EDITTOYSBONE, DIALOG_STYLE_LIST, "Select a Bone", "Spine\nHead\nLeft upper arm\nRight upper arm\nLeft hand\nRight hand\nLeft thigh\nRight thigh\nLeft foot\nRight foot\nRight calf\nLeft calf\nLeft forearm\nRight forearm\nLeft clavicle\nRight clavicle\nNeck\nJaw", "Select", "Cancel");
}
else if(listitem == 1)
{
ShowPlayerDialog(playerid, EDITTOYSPX, DIALOG_STYLE_INPUT, "Toy Menu: Edit", "Input an X Offset from -100 to 100 (Ex: 55, or 33.4)", "Enter", "Cancel");
}
else if(listitem == 2)
{
ShowPlayerDialog(playerid, EDITTOYSPY, DIALOG_STYLE_INPUT, "Toy Menu: Edit", "Input an Y Offset from -100 to 100 (Ex: 55, or 33.4)", "Enter", "Cancel");
}
else if(listitem == 3)
{
ShowPlayerDialog(playerid, EDITTOYSPZ, DIALOG_STYLE_INPUT, "Toy Menu: Edit", "Input an Z Offset from -100 to 100 (Ex: 55, or 33.4)", "Enter", "Cancel");
}
else if(listitem == 4)
{
ShowPlayerDialog(playerid, EDITTOYSRX, DIALOG_STYLE_INPUT, "Toy Menu: Edit", "Input an X Rotation from 0 to 360 (Ex: 90, or 270.4)", "Enter", "Cancel");
}
else if(listitem == 5)
{
ShowPlayerDialog(playerid, EDITTOYSRY, DIALOG_STYLE_INPUT, "Toy Menu: Edit", "Input an Y Rotation from 0 to 360 (Ex: 90, or 270.4)", "Enter", "Cancel");
}
else if(listitem == 6)
{
ShowPlayerDialog(playerid, EDITTOYSRZ, DIALOG_STYLE_INPUT, "Toy Menu: Edit", "Input an Z Rotation from 0 to 360 (Ex: 90, or 270.4)", "Enter", "Cancel");
}
else if(listitem == 7)
{
ShowPlayerDialog(playerid, EDITTOYSSX, DIALOG_STYLE_INPUT, "Toy Menu: Edit","Input an X Scale from 0.5 to 2", "Enter", "Cancel");
}
else if(listitem == 8)
{
ShowPlayerDialog(playerid, EDITTOYSSY, DIALOG_STYLE_INPUT, "Toy Menu: Edit","Input an Y Scale from 0.5 to 2", "Enter", "Cancel");
}
else if(listitem == 9)
{
ShowPlayerDialog(playerid, EDITTOYSSZ, DIALOG_STYLE_INPUT, "Toy Menu: Edit","Input an Z Scale from 0.5 to 2", "Enter", "Cancel");
}
}
else
{
new stringg[512];
for(new x;x<MAX_PLAYERTOYS;x++)
{
new name[24];
format(name, sizeof(name), "None");
for(new i;i<sizeof(HoldingObjectsAll);i++)
{
if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
}
}
for(new i;i<sizeof(HoldingObjectsPlat);i++)
{
if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
}
}
format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
}
ShowPlayerDialog(playerid, EDITTOYS, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Select", "Cancel");
}
}
if(dialogid == EDITTOYSPX)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < -100) offset = 0;
else if(offset > 100) offset = 100;
offset = offset/100;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSPY)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < -100) offset = 0;
else if(offset > 100) offset = 100;
offset = offset/100;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSPZ)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < -100) offset = 0;
else if(offset > 100) offset = 100;
offset = offset/100;
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSRX)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < -100) offset = 0;
else if(offset > 360) offset = 360;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSRY)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < -100) offset = 0;
else if(offset > 360) offset = 360;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSRZ)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < -100) offset = 0;
else if(offset > 360) offset = 360;
PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSSX)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < 0.5 && PlayerInfo[playerid][pAdmin] < 1337) offset = 0.5;
else if(offset > 2 && PlayerInfo[playerid][pAdmin] < 1337) offset = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSSY)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < 0.5 && PlayerInfo[playerid][pAdmin] < 1337) offset = 0.5;
else if(offset > 2 && PlayerInfo[playerid][pAdmin] < 1337) offset = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSSZ)
{
if(response)
{
new Float:offset = floatstr(inputtext);
if(offset < 0.5 && PlayerInfo[playerid][pAdmin] < 1337) offset = 0.5;
else if(offset > 2 && PlayerInfo[playerid][pAdmin] < 1337) offset = 2;
PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = offset;
}
ShowEditMenu(playerid);
}
if(dialogid == EDITTOYSBONE)
{
if(response)
{
PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = listitem+1;
}
ShowEditMenu(playerid);
}
if((dialogid == WEARTOY) && response)
{
if(PlayerToyInfo[playerid][listitem][ptModelID] == 0)
{
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Toy Menu: Attach/Deattach", "Woops! You don't have anything to put on from that slot", "OK", "");
}
else
{
if(IsPlayerAttachedObjectSlotUsed(playerid, listitem))
{
new name[24];
format(name, sizeof(name), "None");
for(new i;i<sizeof(HoldingObjectsAll);i++)
{
if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
}
}
for(new i;i<sizeof(HoldingObjectsPlat);i++)
{
if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
}
}
format(string, sizeof(string), "Successfully dettached %s (Bone: %s) (Slot: %d)", name, HoldingBones[PlayerToyInfo[playerid][listitem][ptBone]], listitem);
SendClientMessageEx(playerid, COLOR_RED, string);
RemovePlayerAttachedObject(playerid, listitem);
}
else
{
SetPlayerAttachedObject(playerid, listitem, PlayerToyInfo[playerid][listitem][ptModelID], PlayerToyInfo[playerid][listitem][ptBone], PlayerToyInfo[playerid][listitem][ptPosX], PlayerToyInfo[playerid][listitem][ptPosY], PlayerToyInfo[playerid][listitem][ptPosZ], PlayerToyInfo[playerid][listitem][ptRotX], PlayerToyInfo[playerid][listitem][ptRotY], PlayerToyInfo[playerid][listitem][ptRotZ],
PlayerToyInfo[playerid][listitem][ptScaleX], PlayerToyInfo[playerid][listitem][ptScaleY], PlayerToyInfo[playerid][listitem][ptScaleZ]);
new name[24];
format(name, sizeof(name), "None");
for(new i;i<sizeof(HoldingObjectsAll);i++)
{
if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
{
format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
}
}
format(string, sizeof(string), "Successfully attached %s (Bone: %s) (Slot: %d)", name, HoldingBones[PlayerToyInfo[playerid][listitem][ptBone]], listitem);
SendClientMessageEx(playerid, COLOR_RED, string);
}
}
}
if((dialogid == DELETETOY) && response)
{
PlayerToyInfo[playerid][listitem][ptModelID] = 0;
PlayerToyInfo[playerid][listitem][ptBone] = 0;
PlayerToyInfo[playerid][listitem][ptPosX] = 0.0;
PlayerToyInfo[playerid][listitem][ptPosY] = 0.0;
PlayerToyInfo[playerid][listitem][ptPosZ] = 0.0;
PlayerToyInfo[playerid][listitem][ptPosX] = 0.0;
PlayerToyInfo[playerid][listitem][ptPosY] = 0.0;
PlayerToyInfo[playerid][listitem][ptPosZ] = 0.0;
if(IsPlayerAttachedObjectSlotUsed(playerid, listitem))
{
RemovePlayerAttachedObject(playerid, listitem);
}
format(string, sizeof(string), "You have deleted your toy in slot %d", listitem);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Toy Menu", string, "OK", "");
}
new AttachmentObjects[][AttachmentEnum] =
{
// Mine.
{349, "Shotgun"},
{356, "M4"},
{346, "Pistol"},
{334, "Nitestick"},
{336, "Baseball bat"},
// SA-MP's.
{18632, "FishingRod"},
{18633, "GTASAWrench1"},
{18634, "GTASACrowbar1"},
{18635, "GTASAHammer1"},
{18636, "PoliceCap1"},
{18637, "PoliceShield1"},
[...]
new string[4010+1];
I can edit object when i type /attachments but it don't saves when i do /dat /wat
|
stock ShowEditMenu(playerid) { new iIndex = GetPVarInt(playerid, "ToySlot"); if(IsPlayerAttachedObjectSlotUsed(playerid, iIndex)) { RemovePlayerAttachedObject(playerid, iIndex); } if(PlayerToyInfo[playerid][iIndex][ptScaleX] == 0) { PlayerToyInfo[playerid][iIndex][ptScaleX] = 1.0; PlayerToyInfo[playerid][iIndex][ptScaleY] = 1.0; PlayerToyInfo[playerid][iIndex][ptScaleZ] = 1.0; } SetPlayerAttachedObject(playerid, iIndex, PlayerToyInfo[playerid][iIndex][ptModelID], PlayerToyInfo[playerid][iIndex][ptBone], PlayerToyInfo[playerid][iIndex][ptPosX], PlayerToyInfo[playerid][iIndex][ptPosY], PlayerToyInfo[playerid][iIndex][ptPosZ], PlayerToyInfo[playerid][iIndex][ptRotX], PlayerToyInfo[playerid][iIndex][ptRotY], PlayerToyInfo[playerid][iIndex][ptRotZ], PlayerToyInfo[playerid][iIndex][ptScaleX], PlayerToyInfo[playerid][iIndex][ptScaleY], PlayerToyInfo[playerid][iIndex][ptScaleZ]); new stringg[128]; format(stringg, sizeof(stringg), "Bone (%s)\nOffset", HoldingBones[PlayerToyInfo[playerid][iIndex][ptBone]]); ShowPlayerDialog(playerid, EDITTOYS2, DIALOG_STYLE_LIST, "Toy Menu: Edit", stringg, "Select", "Cancel"); } if((dialogid == EDITTOYS) && response) { if(PlayerToyInfo[playerid][listitem][ptModelID] == 0) { ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Toy Menu: Edit", "Woops! You don't have anything in that slot.", "OK", ""); } else { SendClientMessageEx(playerid, COLOR_WHITE, "{AA3333}HINT:{FFFF00} Position your camera differently to better see where your editing."); SetPVarInt(playerid, "ToySlot", listitem); ShowEditMenu(playerid); } } if((dialogid == EDITTOYS2)) { if(response) switch(listitem) { case 0: ShowPlayerDialog(playerid, EDITTOYSBONE, DIALOG_STYLE_LIST, "Select a Bone", "Spine\nHead\nLeft upper arm\nRight upper arm\nLeft hand\nRight hand\nLeft thigh\nRight thigh\nLeft foot\nRight foot\nRight calf\nLeft calf\nLeft forearm\nRight forearm\nLeft clavicle\nRight clavicle\nNeck\nJaw", "Select", "Cancel"); case 1: { SendClientMessage(playerid, COLOR_WHITE, "HINT: Hold {8000FF}~k~~PED_SPRINT~ {FFFFAA}to move your camera, press escape to cancel"); EditAttachedObject(playerid, GetPVarInt(playerid, "ToySlot")); } } else { new stringg[512]; for(new x;x<MAX_PLAYERTOYS;x++) { new name[24]; format(name, sizeof(name), "None"); for(new i;i<sizeof(HoldingObjectsAll);i++) { if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID]) { format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]); break; } } if(PlayerToyInfo[playerid][x][ptModelID] != 0 && (strcmp(name, "None", true) == 0)) { format(name, sizeof(name), "Obj ID: %d", PlayerToyInfo[playerid][x][ptModelID]); } format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]); } ShowPlayerDialog(playerid, EDITTOYS, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Select", "Cancel"); } } if(dialogid == EDITTOYSBONE) { if(response) { PlayerToyInfo[playerid][GetPVarInt(playerid, "ToySlot")][ptBone] = listitem+1; g_mysql_SaveToys(playerid,GetPVarInt(playerid, "ToySlot")); } ShowEditMenu(playerid); }