0.3e Toy Editor.
#1

Can someone help update my Toy Editor to version 0.3e, because i am using old one and it's hard to edit toys in there.
The same is with gates.
PHP код:
CMD:toys(playeridparams[])
{
    
ShowPlayerDialogplayeridTOYSDIALOG_STYLE_LIST"Toy Menu""Attach/Dettach a Toy\nEdit a Toy\nDelete a Toy","Select""Cancel" );
    return 
1;

PHP код:
stock ShowEditMenu(playerid)
{
    if(
IsPlayerAttachedObjectSlotUsed(playeridslotselection[playerid]))
    {
         
RemovePlayerAttachedObject(playeridslotselection[playerid]);
    }
    
SetPlayerAttachedObject(playeridslotselection[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(stringgsizeof(stringg), "%sBone (%s)\n"stringgHoldingBones[PlayerToyInfo[playerid][slotselection[playerid]][ptBone]]);
    
format(stringgsizeof(stringg), "%sOffset X (%f)\n"stringg,(PlayerToyInfo[playerid][slotselection[playerid]][ptPosX]*100));
    
format(stringgsizeof(stringg), "%sOffset Y (%f)\n"stringg,(PlayerToyInfo[playerid][slotselection[playerid]][ptPosY]*100));
    
format(stringgsizeof(stringg), "%sOffset Z (%f)\n"stringg,(PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ]*100));
    
format(stringgsizeof(stringg), "%sRotation X (%f)\n"stringgPlayerToyInfo[playerid][slotselection[playerid]][ptRotX]);
    
format(stringgsizeof(stringg), "%sRotation Y (%f)\n"stringgPlayerToyInfo[playerid][slotselection[playerid]][ptRotY]);
    
format(stringgsizeof(stringg), "%sRotation Z (%f)\n",stringgPlayerToyInfo[playerid][slotselection[playerid]][ptRotZ]);
    
format(stringgsizeof(stringg), "%sScale X (%f)\n",stringgPlayerToyInfo[playerid][slotselection[playerid]][ptScaleX]);
    
format(stringgsizeof(stringg), "%sScale Y (%f)\n",stringgPlayerToyInfo[playerid][slotselection[playerid]][ptScaleY]);
    
format(stringgsizeof(stringg), "%sScale Z (%f)\n" ,stringgPlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ]);
     
ShowPlayerDialog(playeridEDITTOYS2DIALOG_STYLE_LIST"Toy Menu: Edit"stringg"Select""Cancel");

PHP код:
    if((dialogid == BUYTOYS) && response)
    {
        new 
stringg[512];
        for(new 
x;x<MAX_PLAYERTOYS;x++)
        {
            new 
name[24];
            
format(namesizeof(name), "None");
            for(new 
i;i<sizeof(HoldingObjectsAll);i++)
            {
                if(
HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                {
                    
format(namesizeof(name), "%s"HoldingObjectsAll[i][holdingmodelname]);
                }
            }
            for(new 
i;i<sizeof(HoldingObjectsPlat);i++)
            {
                if(
HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                {
                    
format(namesizeof(name), "%s"HoldingObjectsPlat[i][holdingmodelname]);
                }
            }
            
format(stringgsizeof(stringg), "%s(%d) %s (Bone: %s)\n"stringgxnameHoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
        }
        
ShowPlayerDialog(playeridBUYTOYS2DIALOG_STYLE_LIST"Select a Slot"stringg"Select""Cancel");
    }
    if((
dialogid == BUYTOYS2) && response)
    {
        if(
listitem >= && PlayerInfo[playerid][pDonateRank] < || listitem >= && PlayerInfo[playerid][pBuddyInvited] == 1) return SendClientMessageEx(playeridCOLOR_WHITE"* You must be a Bronze VIP + to use that slot!");
        if(
listitem >= && PlayerInfo[playerid][pDonateRank] < 2) return SendClientMessageEx(playeridCOLOR_WHITE"* You must be a Silver VIP + to use that slot!");
        if(
listitem >= && PlayerInfo[playerid][pDonateRank] < 3) return SendClientMessageEx(playeridCOLOR_WHITE"* You must be a Gold VIP + to use that slot!");
        if(
PlayerToyInfo[playerid][listitem][ptModelID] != 0) return SendClientMessageEx(playeridCOLOR_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(stringgsizeof(stringg), "%s%s ($%d)\n"stringgHoldingObjects[x][holdingmodelname], HoldingObjects[x][holdingprice]);
        }
        
ShowPlayerDialog(playeridBUYTOYS3DIALOG_STYLE_LIST"Select an Item"stringg"Buy""Cancel");
    }
    if((
dialogid == BUYTOYS3) && response)
    {
        if(
GetPlayerCash(playerid) < HoldingObjects[listitem][holdingprice])
        {
            
SendClientMessageEx(playeridCOLOR_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(stringsizeof(string), "* You have purchased %s for $%d (Slot: %d)"HoldingObjects[listitem][holdingmodelname], HoldingObjects[listitem][holdingprice], slotselection[playerid]);
            
SendClientMessageEx(playeridCOLOR_REDstring);
            
SendClientMessageEx(playeridCOLOR_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(namesizeof(name), "None");
                for(new 
i;i<sizeof(HoldingObjectsAll);i++)
                {
                    if(
HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsAll[i][holdingmodelname]);
                    }
                }
                for(new 
i;i<sizeof(HoldingObjectsPlat);i++)
                {
                    if(
HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsPlat[i][holdingmodelname]);
                    }
                }
                
format(stringgsizeof(stringg), "%s(%d) %s (Bone: %s)\n"stringgxnameHoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
            }
            
ShowPlayerDialog(playeridWEARTOYDIALOG_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(namesizeof(name), "None");
                for(new 
i;i<sizeof(HoldingObjectsAll);i++)
                {
                    if(
HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsAll[i][holdingmodelname]);
                    }
                }
                for(new 
i;i<sizeof(HoldingObjectsPlat);i++)
                {
                    if(
HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsPlat[i][holdingmodelname]);
                    }
                }
                
format(stringgsizeof(stringg), "%s(%d) %s (Bone: %s)\n"stringgxnameHoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
            }
            
ShowPlayerDialog(playeridEDITTOYSDIALOG_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(namesizeof(name), "None");
                for(new 
i;i<sizeof(HoldingObjectsAll);i++)
                {
                    if(
HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsAll[i][holdingmodelname]);
                    }
                }
                for(new 
i;i<sizeof(HoldingObjectsPlat);i++)
                {
                    if(
HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsPlat[i][holdingmodelname]);
                    }
                }
                
format(stringgsizeof(stringg), "%s(%d) %s (Bone: %s)\n"stringgxnameHoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
            }
            
ShowPlayerDialog(playeridDELETETOYDIALOG_STYLE_LIST"Select a Toy"stringg"Delete""Cancel");
        }
    }
    if((
dialogid == EDITTOYS) && response)
    {
        if(
PlayerToyInfo[playerid][listitem][ptModelID] == 0)
        {
            
ShowPlayerDialog(playerid0DIALOG_STYLE_MSGBOX"Toy Menu: Edit""Woops! You don't have anything on that slot""OK""");
        }
        else
        {
            
SendClientMessageEx(playeridCOLOR_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(playeridEDITTOYSBONEDIALOG_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(playeridEDITTOYSPXDIALOG_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(playeridEDITTOYSPYDIALOG_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(playeridEDITTOYSPZDIALOG_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(playeridEDITTOYSRXDIALOG_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(playeridEDITTOYSRYDIALOG_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(playeridEDITTOYSRZDIALOG_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(playeridEDITTOYSSXDIALOG_STYLE_INPUT"Toy Menu: Edit","Input an X Scale from 0.5 to 2""Enter""Cancel");
            }
            else if(
listitem == 8)
            {
                
ShowPlayerDialog(playeridEDITTOYSSYDIALOG_STYLE_INPUT"Toy Menu: Edit","Input an Y Scale from 0.5 to 2""Enter""Cancel");
            }
            else if(
listitem == 9)
            {
                
ShowPlayerDialog(playeridEDITTOYSSZDIALOG_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(namesizeof(name), "None");
                for(new 
i;i<sizeof(HoldingObjectsAll);i++)
                {
                    if(
HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsAll[i][holdingmodelname]);
                    }
                }
                for(new 
i;i<sizeof(HoldingObjectsPlat);i++)
                {
                    if(
HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsPlat[i][holdingmodelname]);
                    }
                }
                
format(stringgsizeof(stringg), "%s(%d) %s (Bone: %s)\n"stringgxnameHoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
            }
            
ShowPlayerDialog(playeridEDITTOYSDIALOG_STYLE_LIST"Select a Toy"stringg"Select""Cancel");
        }
    }
    if(
dialogid == EDITTOYSPX)
    {
        if(
response)
        {
            new 
Float:offset floatstr(inputtext);
            if(
offset < -100offset 0;
            else if(
offset 100offset 100;
            
offset offset/100;
            
PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = offset;
        }
        
ShowEditMenu(playerid);
    }
    if(
dialogid == EDITTOYSPY)
    {
        if(
response)
        {
            new 
Float:offset floatstr(inputtext);
            if(
offset < -100offset 0;
            else if(
offset 100offset 100;
            
offset offset/100;
            
PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = offset;
        }
        
ShowEditMenu(playerid);
    }
    if(
dialogid == EDITTOYSPZ)
    {
        if(
response)
        {
            new 
Float:offset floatstr(inputtext);
            if(
offset < -100offset 0;
            else if(
offset 100offset 100;
            
offset offset/100;
            
PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = offset;
        }
        
ShowEditMenu(playerid);
    }
    if(
dialogid == EDITTOYSRX)
    {
        if(
response)
        {
            new 
Float:offset floatstr(inputtext);
            if(
offset < -100offset 0;
            else if(
offset 360offset 360;
            
PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = offset;
        }
        
ShowEditMenu(playerid);
    }
    if(
dialogid == EDITTOYSRY)
    {
        if(
response)
        {
            new 
Float:offset floatstr(inputtext);
            if(
offset < -100offset 0;
            else if(
offset 360offset 360;
            
PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = offset;
        }
        
ShowEditMenu(playerid);
    }
    if(
dialogid == EDITTOYSRZ)
    {
        if(
response)
        {
            new 
Float:offset floatstr(inputtext);
            if(
offset < -100offset 0;
            else if(
offset 360offset 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] < 1337offset 0.5;
            else if(
offset && PlayerInfo[playerid][pAdmin] < 1337offset 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] < 1337offset 0.5;
            else if(
offset && PlayerInfo[playerid][pAdmin] < 1337offset 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] < 1337offset 0.5;
            else if(
offset && PlayerInfo[playerid][pAdmin] < 1337offset 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(playerid0DIALOG_STYLE_MSGBOX"Toy Menu: Attach/Deattach""Woops! You don't have anything to put on from that slot""OK""");
        }
        else
        {
            if(
IsPlayerAttachedObjectSlotUsed(playeridlistitem))
            {
                new 
name[24];
                
format(namesizeof(name), "None");
                for(new 
i;i<sizeof(HoldingObjectsAll);i++)
                   {
                    if(
HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsAll[i][holdingmodelname]);
                    }
                }
                for(new 
i;i<sizeof(HoldingObjectsPlat);i++)
                   {
                    if(
HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsPlat[i][holdingmodelname]);
                    }
                }
                
format(stringsizeof(string), "Successfully dettached %s (Bone: %s) (Slot: %d)"nameHoldingBones[PlayerToyInfo[playerid][listitem][ptBone]], listitem);
                
SendClientMessageEx(playeridCOLOR_REDstring);
                
RemovePlayerAttachedObject(playeridlistitem);
            }
            else
            {
                
SetPlayerAttachedObject(playeridlistitemPlayerToyInfo[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(namesizeof(name), "None");
                for(new 
i;i<sizeof(HoldingObjectsAll);i++)
                   {
                    if(
HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
                    {
                        
format(namesizeof(name), "%s"HoldingObjectsAll[i][holdingmodelname]);
                    }
                }
                
format(stringsizeof(string), "Successfully attached %s (Bone: %s) (Slot: %d)"nameHoldingBones[PlayerToyInfo[playerid][listitem][ptBone]], listitem);
                
SendClientMessageEx(playeridCOLOR_REDstring);
            }
        }
    }
    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(playeridlistitem))
        {
            
RemovePlayerAttachedObject(playeridlistitem);
        }
        
format(stringsizeof(string), "You have deleted your toy in slot %d"listitem);
        
ShowPlayerDialog(playerid0DIALOG_STYLE_MSGBOX"Toy Menu"string"OK""");
    } 
And someone can say how can i edit gates using 0.3e Editor?
Reply
#2

You want to update your Toy Editor to this?:

Reply
#3

Yes.
Reply
#4

Isn't it easier to use attachments.pwn from SA-MP server package? Check it out, you can edit object list in there, or instead of list just make a parameter to attach command.
Reply
#5

I can add attachments.amx as filterscript? And if it will work when i type /toys.
Reply
#6

Yes, you can add attachments.amx as a filterscript, just change a command name in script to yours and job done. You can add your objects easly to the list:

pawn Код:
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"},
    [...]
But if you add too many objects, they might not appear in list, or just name will be cutted in half. In that case, just increase that string value:

pawn Код:
new string[4010+1];
It's located in OnDialogResponse callback. In my opinion, you should use that one, I am using it as well. It's saving one line to the serverlog.txt (prints message) but you can easly change it to whatever you want (i.e. saving it to your own file or something).
Reply
#7

I can edit object when i type /attachments but it don't saves when i do /dat /wat
Reply
#8

Quote:
Originally Posted by FaZeRs
Посмотреть сообщение
I can edit object when i type /attachments but it don't saves when i do /dat /wat
In attachments editor you've got only one command, which is: /attachments. And it's all dialog based, it's user friendly. And I've told you already, attached object in being SAVED to the serverlog.txt. Read my previous post.
Reply
#9

Come on guys they are called "Accessories" not "Toys" whoever named them that is a goofball.
Reply
#10

Here:
Код:
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);
	}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)