Very large amx size
#1

Hello SA-MP forum
This is a furniture filterscripts.When I compiled it.It took me about 4 second to did that.And I got the very large amx size...about 5MB.It even bigger than my gamemodes size.This filterscripts just only had 648 line...

Here`s filterscripts
(It not made by me.I just changed it language to Chinese and did some edit)
Код:
main ()
{
}

//Inc
#include <a_samp>
#include <Dini2>
#include <streamer>
#include "../include/gl_common.inc"

//define
#define GPC(%0) CallRemoteFunction("GPC", "i", %0)
#define GPCK(%0) CallRemoteFunction("GPCK", "i", %0)
#define GHID(%0) CallRemoteFunction("GHID", "i", %0)
#define MAX_FURNITURE 3500
#define SCM SendClientMessage
#define Dialog_Edit 4500
#define Dialog_Edit2 4503
#define Dialog_Down 4501
#define Dialog_GetRangeFurniture 4502
//
enum fInfo
{
	fID,
	fObject,
	fModel,
	Float:fX,
	Float:fY,
	Float:fZ,
	Float:fRX,
	Float:fRY,
	Float:fRZ,
	fvID,
	fInt,
	Text3D:fText,
	bool:fLiftup,
	fName[256],
	fOwner[256]
}
new FurnitureInfo[MAX_FURNITURE][fInfo];

new PlayerUseingFurniture[MAX_PLAYERS];
new bool:PlayerLiftup[MAX_PLAYERS];
new bool:PlayerEdit[MAX_PLAYERS];
new bool:PlayerPutDown[MAX_PLAYERS];

new RecoveryLiftTimer;
new ShowPlayerRangeFurniture[MAX_PLAYERS][MAX_FURNITURE];
//Forward
forward SaveFurniture(idx);
forward LoadFurniture();
forward CreateFurniture(ID);
forward Lift(playerid);
forward PutDown(playerid);
forward RecoveryLift();
//
public SaveFurniture(idx)
{
	new string[256];
	format(string,sizeof(string),"Furniture/%d.ini",idx);
	if(!fexist(string))
	{
	    dini_Create(string);
	}
	dini_IntSet(string,"Model",FurnitureInfo[idx][fModel]);
	dini_FloatSet(string,"X",FurnitureInfo[idx][fX]);
	dini_FloatSet(string,"Y",FurnitureInfo[idx][fY]);
	dini_FloatSet(string,"Z",FurnitureInfo[idx][fZ]);
	dini_FloatSet(string,"RX",FurnitureInfo[idx][fRX]);
	dini_FloatSet(string,"RY",FurnitureInfo[idx][fRY]);
	dini_FloatSet(string,"RZ",FurnitureInfo[idx][fRZ]);
	dini_IntSet(string,"vID",FurnitureInfo[idx][fvID]);
	dini_IntSet(string,"Int",FurnitureInfo[idx][fInt]);
	dini_Set(string,"Name",FurnitureInfo[idx][fName]);
	dini_Set(string,"Owner",FurnitureInfo[idx][fOwner]);
	return 1;
}

public LoadFurniture()
{
	for(new idx=1;idx<MAX_FURNITURE;idx++)
	{
		new string[256];
        format(string,sizeof(string),"Furniture/%d.ini",idx);
        if(fexist(string))
        {
            FurnitureInfo[idx][fID] = idx;
            FurnitureInfo[idx][fModel] = dini_Int(string,"Model");
            FurnitureInfo[idx][fX] = dini_Float(string,"X");
            FurnitureInfo[idx][fY] = dini_Float(string,"Y");
            FurnitureInfo[idx][fZ] = dini_Float(string,"Z");
            FurnitureInfo[idx][fRX] = dini_Float(string,"RX");
            FurnitureInfo[idx][fRY] = dini_Float(string,"RY");
            FurnitureInfo[idx][fRZ] = dini_Float(string,"RZ");
            FurnitureInfo[idx][fvID] = dini_Int(string,"vID");
            FurnitureInfo[idx][fInt] = dini_Int(string,"Int");
            FurnitureInfo[idx][fName] = dini_Get(string,"Name");
            FurnitureInfo[idx][fOwner] = dini_Get(string,"Owner");
            CreateFurniture(idx);
        }
	}
	return 1;
}

public CreateFurniture(ID)
{
	FurnitureInfo[ID][fObject] = CreateDynamicObject(FurnitureInfo[ID][fModel], FurnitureInfo[ID][fX], FurnitureInfo[ID][fY], FurnitureInfo[ID][fZ], FurnitureInfo[ID][fRX], FurnitureInfo[ID][fRY], FurnitureInfo[ID][fRZ], FurnitureInfo[ID][fvID], FurnitureInfo[ID][fInt]);
	new string[128];
	format(string, sizeof(string), "%d", FurnitureInfo[ID][fID]);
	FurnitureInfo[ID][fText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, FurnitureInfo[ID][fX], FurnitureInfo[ID][fY], FurnitureInfo[ID][fZ], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, FurnitureInfo[ID][fvID], FurnitureInfo[ID][fInt]);
	
    return 1;
}

public Lift(playerid)
{
    FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = true;
	PlayerLiftup[playerid] = true;
	ClearAnimations(playerid);
    ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 1, 1, 1);
	DestroyDynamic3DTextLabel(FurnitureInfo[PlayerUseingFurniture[playerid]][fText]);
    DestroyDynamicObject(FurnitureInfo[PlayerUseingFurniture[playerid]][fObject]);
	SetPlayerAttachedObject(playerid, 9, FurnitureInfo[PlayerUseingFurniture[playerid]][fModel], 1, 0, 0.6, 0, 0, 90, 0, 1, 1, 1);
	return 1;
}

public PutDown(playerid)
{
	PlayerPutDown[playerid] = false;
    FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = false;
    GetPlayerPos(playerid, FurnitureInfo[PlayerUseingFurniture[playerid]][fX], FurnitureInfo[PlayerUseingFurniture[playerid]][fY], FurnitureInfo[PlayerUseingFurniture[playerid]][fZ]);
    FurnitureInfo[PlayerUseingFurniture[playerid]][fZ] -= 1.0;
    FurnitureInfo[PlayerUseingFurniture[playerid]][fRX] = 0.0;
    FurnitureInfo[PlayerUseingFurniture[playerid]][fRY] = 0.0;
    FurnitureInfo[PlayerUseingFurniture[playerid]][fRZ] = 0.0;
    FurnitureInfo[PlayerUseingFurniture[playerid]][fvID] = GetPlayerVirtualWorld(playerid);
    FurnitureInfo[PlayerUseingFurniture[playerid]][fInt] = GetPlayerInterior(playerid);
    new name[256],pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	format(name, sizeof(name), "%s",pName);
	FurnitureInfo[PlayerUseingFurniture[playerid]][fOwner]=name;
    
    
    
    
    
    
    CreateFurniture(PlayerUseingFurniture[playerid]);
    SaveFurniture(FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
	return 1;
}

public RecoveryLift()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
	    if(!IsPlayerInAnyVehicle(i))
	    {
		    if(GetPlayerAnimationIndex(i))
		    {
		        if(PlayerLiftup[i] == true)
		        {
					new animlib[32];
			        new animname[32];
			        GetAnimationName(GetPlayerAnimationIndex(i), animlib, 32, animname, 32);
		            if(strcmp(animname, "crry_prtial", true) != 0)
		    		{
			            ApplyAnimation(i, "CARRY", "crry_prtial", 4.0, 0, 0, 1, 1, 1);
					}
				}
			}
		}
	}
	return 1;
}

//Stock

stock GetFurnitureID()
{
	new i=1;
	while(i != MAX_FURNITURE) {
	    if(FurnitureInfo[i][fID] == 0) {
	        return i;
		}
		i++;
	}
	return -1;
}

stock GetClosestFurniture(playerid)
{
	new i=1;
	while(i != MAX_FURNITURE) {
	    if(IsPlayerInRangeOfPoint(playerid, 1.5, FurnitureInfo[i][fX], FurnitureInfo[i][fY], FurnitureInfo[i][fZ]) && FurnitureInfo[i][fLiftup] == false) {
	        return i;
		}
		i++;
	}
	return -1;
}

PreloadAnimLib(playerid, animlib[])
{
	ApplyAnimation(playerid, animlib, "null", 0.0, 0, 0, 0, 0, 0);
}

//Function
public OnFilterScriptInit()
{
    LoadFurniture();
    RecoveryLiftTimer = SetTimer("RecoveryLift", 2000, true);
    for(new i=0; i<=MAX_PLAYERS; i++)
    {
		if(IsPlayerConnected(i))
		{
		    PlayerUseingFurniture[i] = 0;
		    PlayerLiftup[i] = false;
		    PlayerPutDown[i] = false;
		}
    }

	return 1;
}

public OnFilterScriptExit()
{
	KillTimer(RecoveryLiftTimer);

	for(new i=1; i<MAX_FURNITURE; i++)
	{
	    if(FurnitureInfo[i][fID] != 0)
	    {
			DestroyDynamic3DTextLabel(FurnitureInfo[i][fText]);
			DestroyDynamicObject(FurnitureInfo[i][fObject]);
			FurnitureInfo[i][fID] = 0;
		 	FurnitureInfo[i][fLiftup] = true;
	    }
	}
	return 1;
}

public OnPlayerConnect(playerid)
{
    PlayerUseingFurniture[playerid] = 0;
    PlayerLiftup[playerid] = false;
    PlayerPutDown[playerid] = false;
	//
	PreloadAnimLib(playerid, "CARRY");
	PreloadAnimLib(playerid, "Freeweights");
	return 1;
}

public OnPlayerDisconnect(playerid,reason)
{
    if(PlayerLiftup[playerid] == true)
	{
	    PlayerLiftup[playerid] = false;
    	FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = false;
    	CreateFurniture(PlayerUseingFurniture[playerid]);
    	//SaveFurniture(FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
    	RemovePlayerAttachedObject(playerid, 9);
	}
	if(PlayerEdit[playerid] == true)
	{
        PlayerEdit[playerid] = false;
    	FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = false;
    	new string[128];
	    format(string, sizeof(string), "%d", FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
	    FurnitureInfo[PlayerUseingFurniture[playerid]][fText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, FurnitureInfo[PlayerUseingFurniture[playerid]][fX], FurnitureInfo[PlayerUseingFurniture[playerid]][fY], FurnitureInfo[PlayerUseingFurniture[playerid]][fZ], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, FurnitureInfo[PlayerUseingFurniture[playerid]][fvID], FurnitureInfo[PlayerUseingFurniture[playerid]][fInt]);
    	//SaveFurniture(FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
	}
 	return 1;
}

public OnPlayerSpawn(playerid)
{
	if(PlayerLiftup[playerid] == true)
	{
	    SetPlayerAttachedObject(playerid, 9, FurnitureInfo[PlayerUseingFurniture[playerid]][fModel], 1, 0, 0.6, 0, 0, 90, 0, 1, 1, 1);
		SCM(playerid,0xFFFFFFC8,"* You just died, furniture has been restore to your hands up.");
	}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new idx;
	new cmd[256];
	cmd = str(cmdtext, idx);
	if(strcmp(cmd,"/Create",true) == 0)
	{
		if(!IsPlayerAdmin(playerid)) return 0;
		new tmp[128], Model, Float:x, Float:y, Float:z;
		new NewID = GetFurnitureID();
        tmp = str(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, 0xBFC0C2FF, "Use: /Create [Model]");
			return 1;
		}
		Model = strval(tmp);

		if(NewID == -1) return SCM(playerid, 0xFF0000C8, "* No extra furniture that you can not continue to create.");

		GetPlayerPos(playerid,x,y,z);
		FurnitureInfo[NewID][fID] = NewID;
		FurnitureInfo[NewID][fModel] = Model;
		FurnitureInfo[NewID][fX] = x +1;
		FurnitureInfo[NewID][fY] = y +1;
		FurnitureInfo[NewID][fZ] = z;
		FurnitureInfo[NewID][fRX] = 0;
		FurnitureInfo[NewID][fRY] = 0;
		FurnitureInfo[NewID][fRZ] = 0;
		FurnitureInfo[NewID][fvID] = GetPlayerVirtualWorld(playerid);
		FurnitureInfo[NewID][fInt] = GetPlayerInterior(playerid);
		FurnitureInfo[NewID][fLiftup] = false;
		
		new name[256],owner[256];
        format(name, sizeof(name), "未命名的家具");
	    FurnitureInfo[NewID][fName]=name;
	    format(owner, sizeof(owner), "幻想城系统");
	    FurnitureInfo[NewID][fOwner]=owner;
		
		
		
		
		CreateFurniture(NewID);
		SaveFurniture(NewID);
		return 1;
	}
	if(strcmp(cmd,"/Remove",true) == 0)
	{
        if(!IsPlayerAdmin(playerid)) return 0;
	    new tmp[128], id, string[256];
		tmp = str(cmdtext, idx);
		if(!strlen(tmp))
		{
			SCM(playerid, 0xB4B5B7FF, "Use: /Remove [Furniture ID]");
			return 1;
		}
		id = strval(tmp);
		if(FurnitureInfo[id][fLiftup] == true) return SCM(playerid, 0xFFFF00C8, "* Someone is using this furniture! (Can not delete)");
		DestroyDynamic3DTextLabel(FurnitureInfo[id][fText]);
		DestroyDynamicObject(FurnitureInfo[id][fObject]);
		FurnitureInfo[id][fID] = 0;
      	FurnitureInfo[id][fLiftup] = true;
		format(string, sizeof(string), "Furniture/%d.ini", id);
		if(fexist(string))
		{
			dini_Remove(string);
	     	format(string, sizeof(string), "* Successfully removed (Furniture ID: %d).", id);
	       	SCM(playerid, 0xFF0000C8, string);
		}
		else
		{
		    format(string, sizeof(string), "* Error (Furniture ID: %d).", id);
		    SCM(playerid, 0xFF0000C8, string);
		}
	    return 1;
	}
	/*if(strcmp(cmd,"/near",true) == 0)
	{
        Dialog(playerid, 4499, DIALOG_STYLE_MSGBOX, "搜索家具", "搜索你附近300米的家具,并传送过去,获得坐标\n收费 $500\n此功能非常耗资源,无论你找到还是未找到,马上花费 $500", "搜索", "取消");



		
	}*/
	return 0;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == 65536)
    {
        if(PlayerLiftup[playerid] == true) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}你正拿着家具", "Okay", "");
        if(PlayerEdit[playerid] == true) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}你正在编辑家具", "Okay", "");
		new string[256];
		new string2[256];
        if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
		{
            PlayerUseingFurniture[playerid] = GetClosestFurniture(playerid);
            if(PlayerUseingFurniture[playerid] != -1)
            {
				if(FurnitureInfo[PlayerUseingFurniture[playerid]][fvID]>1000)
				{
				if(GHID(playerid)+1000!=FurnitureInfo[PlayerUseingFurniture[playerid]][fvID])
				{
				format(string, sizeof(string), "{FFFF80}家具ID: %d", FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
				format(string2, sizeof(string2), "{ff0000}这不是你的家具\n\n{FFFFFF}%s\n{C0C0C0}By:%s", FurnitureInfo[PlayerUseingFurniture[playerid]][fName],FurnitureInfo[PlayerUseingFurniture[playerid]][fOwner]);
 		 		Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, string, string2, "Okay", "");
 		 		return 1;
				}
				}
				if(GetPlayerVirtualWorld(playerid) != FurnitureInfo[PlayerUseingFurniture[playerid]][fvID] || GetPlayerInterior(playerid) != FurnitureInfo[PlayerUseingFurniture[playerid]][fInt]) return 1;
				format(string, sizeof(string), "{FFFF80}家具ID: %d", FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
				format(string2, sizeof(string2), "{FFFFFF}%s\n{C0C0C0}By:%s", FurnitureInfo[PlayerUseingFurniture[playerid]][fName],FurnitureInfo[PlayerUseingFurniture[playerid]][fOwner]);
 		 		Dialog(playerid, Dialog_Edit, DIALOG_STYLE_MSGBOX, string, string2, "搬起", "选项");
			}
		}
    }
	return 1;
}

public OnPlayerUpdate(playerid)
{
 	new k, ud, lr;
	GetPlayerKeys(playerid, k, ud, lr);
    if(k == 128)
	{
	    if(PlayerLiftup[playerid] == true && PlayerPutDown[playerid] == false)
        {
            Dialog(playerid, Dialog_Down, DIALOG_STYLE_MSGBOX, "家具", "是否放下?", "放下", "取消");
        }
	}
	if(PlayerEdit[playerid] == true)
	{
        if(!IsPlayerInRangeOfPoint(playerid, 200, FurnitureInfo[PlayerUseingFurniture[playerid]][fX],FurnitureInfo[PlayerUseingFurniture[playerid]][fY],FurnitureInfo[PlayerUseingFurniture[playerid]][fZ]))
	    {
	    PlayerEdit[playerid] = false;
	    DestroyDynamicObject(FurnitureInfo[PlayerUseingFurniture[playerid]][fObject]);
	    CreateFurniture(PlayerUseingFurniture[playerid]);
	    CancelEdit(playerid);
	    
		FurnitureInfo[PlayerUseingFurniture[playerid]][fX] = FurnitureInfo[PlayerUseingFurniture[playerid]][fX];
		FurnitureInfo[PlayerUseingFurniture[playerid]][fY] = FurnitureInfo[PlayerUseingFurniture[playerid]][fY];
		FurnitureInfo[PlayerUseingFurniture[playerid]][fZ] = FurnitureInfo[PlayerUseingFurniture[playerid]][fZ];
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRX] = FurnitureInfo[PlayerUseingFurniture[playerid]][fRX];
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRY] = FurnitureInfo[PlayerUseingFurniture[playerid]][fRY];
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRZ] = FurnitureInfo[PlayerUseingFurniture[playerid]][fRZ];
	    FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = false;
	    
	    
	    
	    
	    Dialog(playerid,999,DIALOG_STYLE_MSGBOX,"{ff0000}警告","{FF0000}距离过远,自动退出,家具返回原来位置","Okay","");
        }
	}
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

	if(dialogid == Dialog_Edit)
	{
        if(response)
        {
			if(!IsPlayerInRangeOfPoint(playerid, 1.5, FurnitureInfo[PlayerUseingFurniture[playerid]][fX],FurnitureInfo[PlayerUseingFurniture[playerid]][fY],FurnitureInfo[PlayerUseingFurniture[playerid]][fZ])) return Dialog(playerid,999,DIALOG_STYLE_MSGBOX,"{ff0000}警告","{FF0000}你不在家具附近","Okay","");
			//ApplyAnimation(playerid, "CARRY", "liftup", 4, 0, 0, 0, 0, 0);
			SCM(playerid, -1, "提示:按鼠标右键可以放下家具");
			FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = true;
			PlayerLiftup[playerid] = true;
			ClearAnimations(playerid);
    		ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 1, 1, 1);
			DestroyDynamic3DTextLabel(FurnitureInfo[PlayerUseingFurniture[playerid]][fText]);
    		DestroyDynamicObject(FurnitureInfo[PlayerUseingFurniture[playerid]][fObject]);
			SetPlayerAttachedObject(playerid, 9, FurnitureInfo[PlayerUseingFurniture[playerid]][fModel], 1, 0, 0.6, 0, 0, 90, 0, 1, 1, 1);
		}
		if(!response)
        {
            new string[256];
            format(string, sizeof(string), "{FFFF80}家具ID: %d", FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
            Dialog(playerid, Dialog_Edit2, DIALOG_STYLE_LIST, string, "编辑位置\n家具名称", "选择", "关闭");
		}
	}
	
	
	if(dialogid == Dialog_Edit2)
	{
        if(response)
        {
            if(!IsPlayerInRangeOfPoint(playerid, 1.5, FurnitureInfo[PlayerUseingFurniture[playerid]][fX],FurnitureInfo[PlayerUseingFurniture[playerid]][fY],FurnitureInfo[PlayerUseingFurniture[playerid]][fZ])) return Dialog(playerid,999,DIALOG_STYLE_MSGBOX,"{ff0000}警告","{FF0000}你不在家具附近","Okay","");
			if(listitem == 0)
			{
			if(GetPlayerVirtualWorld(playerid)<1000) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}这个家具不在房子里,无法编辑", "Okay", "");
  			FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = true;
  			PlayerEdit[playerid] = true;
  			DestroyDynamic3DTextLabel(FurnitureInfo[PlayerUseingFurniture[playerid]][fText]);
			EditDynamicObject(playerid, FurnitureInfo[PlayerUseingFurniture[playerid]][fObject]);
			}
			if(listitem == 1)
			{
			Dialog(playerid,4505,DIALOG_STYLE_INPUT,"家具名称","设置你的家具名称,在按Y后会显示在对话框\n{ff0000}如果内容带有辱骂这个家具将会被删除","设置","取消");
			}
		}
	}
	if(dialogid == 4505)
	{
	    if(response)
	    {
        if(strlen(inputtext)<1) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}请输入家具名称", "Okay", "");
        if(strlen(inputtext)>20) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}最多20个字符", "Okay", "");
        new name[256];
	    format(name, sizeof(name), "%s",inputtext);
	    FurnitureInfo[PlayerUseingFurniture[playerid]][fName]=name;
	    Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "家具名称", "设置成功!", "Okay", "");
	    }
	}
	if(dialogid == Dialog_Down)
	{
	    if(response)
	    {
	    if(GetPlayerVirtualWorld(playerid)>0){if(GetPlayerVirtualWorld(playerid)<1000) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}禁止在非大世界里放下家具", "Okay", "");}
	    if(PlayerLiftup[playerid] == false) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}你手上没有拿着家具", "Okay","");
        ApplyAnimation(playerid, "CARRY", "putdwn", 4.0, 0, 0, 0, 0, 0);
      	SetTimerEx("PutDown", 1100, false, "i", playerid);
		RemovePlayerAttachedObject(playerid, 9);
		PlayerPutDown[playerid] = true;
		PlayerLiftup[playerid] = false;
		}
	}
	if(dialogid == 4499)
	{
		if(GPC(playerid)<500) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}你现金不够$500", "Okay","");
 	    CallRemoteFunction( "SPC1", "ii", playerid, 500 );//扣钱
	    new string[256];
		new id = 0;
		for(new i=1; i<MAX_FURNITURE; i++)
		{
			if(IsPlayerInRangeOfPoint(playerid, 300, FurnitureInfo[i][fX], FurnitureInfo[i][fY], FurnitureInfo[i][fZ]) && FurnitureInfo[i][fLiftup] == false)
			{
				new Smg[128];
				format(Smg, sizeof(Smg), "ID: %d\n", FurnitureInfo[i][fID]);
				strcat(string, Smg);
            	ShowPlayerRangeFurniture[playerid][id] = FurnitureInfo[i][fID];
          		id ++;
			}
		}
		if(id==0) return Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "{ff0000}警告", "{ff0000}你附近300米没有任何家具", "Okay","");
		Dialog(playerid, Dialog_GetRangeFurniture, DIALOG_STYLE_LIST, "传送最近家具", string, "传送","关闭");
	}
	if(dialogid == Dialog_GetRangeFurniture)
	{
		if(!response) return 1;
		SetPlayerPos(playerid,FurnitureInfo[PlayerUseingFurniture[playerid]][fX], FurnitureInfo[PlayerUseingFurniture[playerid]][fY], FurnitureInfo[PlayerUseingFurniture[playerid]][fZ]);
      	new string[256];
     	PlayerUseingFurniture[playerid] = ShowPlayerRangeFurniture[playerid][listitem];
		format(string, sizeof(string), "家具 %d 的坐标:\nX: %f\nY: %f\nZ: %f", FurnitureInfo[PlayerUseingFurniture[playerid]][fID],FurnitureInfo[PlayerUseingFurniture[playerid]][fX], FurnitureInfo[PlayerUseingFurniture[playerid]][fY], FurnitureInfo[PlayerUseingFurniture[playerid]][fZ]);
       	Dialog(playerid, 999, DIALOG_STYLE_MSGBOX, "家具坐标", string, "Okay", "");
	}
	return 0;
}

//Inc Public
public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
    
	new Float:oldX, Float:oldY, Float:oldZ,Float:oldRotX, Float:oldRotY, Float:oldRotZ;
	new string[256];
	format(string,sizeof(string),"%d", FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
	GetDynamicObjectPos(objectid, oldX, oldY, oldZ);
	GetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
	/*if(GetPVarInt(playerid,"IsSet")==0)
	{
	SetPVarFloat(playerid,"lastx",FurnitureInfo[PlayerUseingFurniture[playerid]][fX]);
	SetPVarFloat(playerid,"lasty",FurnitureInfo[PlayerUseingFurniture[playerid]][fY]);
	SetPVarFloat(playerid,"lastz",FurnitureInfo[PlayerUseingFurniture[playerid]][fY]);
	SetPVarFloat(playerid,"lastrx",FurnitureInfo[PlayerUseingFurniture[playerid]][fRX]);
	SetPVarFloat(playerid,"lastry",FurnitureInfo[PlayerUseingFurniture[playerid]][fRY]);
    SetPVarFloat(playerid,"lastrz",FurnitureInfo[PlayerUseingFurniture[playerid]][fRZ]);
    SetPVarInt(playerid,"lasti",FurnitureInfo[PlayerUseingFurniture[playerid]][fInt]);
    SetPVarInt(playerid,"lastv",FurnitureInfo[PlayerUseingFurniture[playerid]][fvID]);
    SetPVarString(playerid,"laststring",string);
    SetPVarInt(playerid,"IsSet",1);
    }
    
	if(!IsPlayerInRangeOfPoint(playerid, 10, FurnitureInfo[PlayerUseingFurniture[playerid]][fX],FurnitureInfo[PlayerUseingFurniture[playerid]][fY],FurnitureInfo[PlayerUseingFurniture[playerid]][fZ]))
	{
	    SetDynamicObjectPos(objectid, GetPVarFloat(playerid,"lastx"),GetPVarFloat(playerid,"lasty"),GetPVarFloat(playerid,"lastz"));
		SetDynamicObjectRot(objectid, GetPVarFloat(playerid,"lastrx"),GetPVarFloat(playerid,"lastry"),GetPVarFloat(playerid,"lastrz"));
		FurnitureInfo[PlayerUseingFurniture[playerid]][fX] = GetPVarFloat(playerid,"lastx");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fY] = GetPVarFloat(playerid,"lasty");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fZ] = GetPVarFloat(playerid,"lastz");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRX] = GetPVarFloat(playerid,"lastrx");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRY] = GetPVarFloat(playerid,"lastry");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRZ] = GetPVarFloat(playerid,"lastrz");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fvID] = GetPVarInt(playerid,"lastv");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fInt] = GetPVarInt(playerid,"lasti");
		FurnitureInfo[PlayerUseingFurniture[playerid]][fText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, FurnitureInfo[PlayerUseingFurniture[playerid]][fX], FurnitureInfo[PlayerUseingFurniture[playerid]][fY], FurnitureInfo[PlayerUseingFurniture[playerid]][fZ], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, FurnitureInfo[PlayerUseingFurniture[playerid]][fvID], FurnitureInfo[PlayerUseingFurniture[playerid]][fInt]);
	    FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = false;
	    PlayerEdit[playerid] = false;
	    Dialog(playerid,999,DIALOG_STYLE_MSGBOX,"{ff0000}警告","{FF0000}距离过远,自动退出,家具返回原来位置","Okay","");
        return 1;
    }*/
	if(response == EDIT_RESPONSE_FINAL)
	{
		FurnitureInfo[PlayerUseingFurniture[playerid]][fX] = x;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fY] = y;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fZ] = z;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRX] = rx;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRY] = ry;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRZ] = rz;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fvID] = GetPlayerVirtualWorld(playerid);
		FurnitureInfo[PlayerUseingFurniture[playerid]][fInt] = GetPlayerInterior(playerid);
		SetDynamicObjectPos(objectid, x, y, z);
		SetDynamicObjectRot(objectid, rx, ry, rz);
		FurnitureInfo[PlayerUseingFurniture[playerid]][fText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, FurnitureInfo[PlayerUseingFurniture[playerid]][fX], FurnitureInfo[PlayerUseingFurniture[playerid]][fY], FurnitureInfo[PlayerUseingFurniture[playerid]][fZ], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, FurnitureInfo[PlayerUseingFurniture[playerid]][fvID], FurnitureInfo[PlayerUseingFurniture[playerid]][fInt]);
		SaveFurniture(FurnitureInfo[PlayerUseingFurniture[playerid]][fID]);
 	    FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = false;
	    SCM(playerid,-1,"{FFFF80}保存");
	    PlayerEdit[playerid] = false;
	}
	if(response == EDIT_RESPONSE_CANCEL)
	{
		SetDynamicObjectPos(objectid, oldX, oldY, oldZ);
		SetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
		FurnitureInfo[PlayerUseingFurniture[playerid]][fX] = oldX;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fY] = oldY;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fZ] = oldZ;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRX] = oldRotX;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRY] = oldRotY;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fRZ] = oldRotZ;
		FurnitureInfo[PlayerUseingFurniture[playerid]][fvID] = GetPlayerVirtualWorld(playerid);
		FurnitureInfo[PlayerUseingFurniture[playerid]][fInt] = GetPlayerInterior(playerid);
		FurnitureInfo[PlayerUseingFurniture[playerid]][fText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, FurnitureInfo[PlayerUseingFurniture[playerid]][fX], FurnitureInfo[PlayerUseingFurniture[playerid]][fY], FurnitureInfo[PlayerUseingFurniture[playerid]][fZ], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, FurnitureInfo[PlayerUseingFurniture[playerid]][fvID], FurnitureInfo[PlayerUseingFurniture[playerid]][fInt]);
	    FurnitureInfo[PlayerUseingFurniture[playerid]][fLiftup] = false;
	    SCM(playerid,-1,"{FF0000}取消");
	    PlayerEdit[playerid] = false;
	}
	
	return 1;
}
Dialog(playerid, dialogid, style, caption[], info[], button1[], button2[])
{
    ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
	return SetPVarInt(playerid,"DialogID",dialogid);

}
stock str(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}
Where was wrong?Can you help me?Please!
Reply


Messages In This Thread
Very large amx size - by 3417512908 - 14.06.2018, 04:32
Re: Very large amx size - by 3417512908 - 14.06.2018, 04:39
Re: Very large amx size - by Shadow0707 - 14.06.2018, 05:07
Re: Very large amx size - by GTLS - 14.06.2018, 05:24
Re: Very large amx size - by Calisthenics - 14.06.2018, 07:44
Re: Very large amx size - by CodeStyle175 - 14.06.2018, 10:52
Re: Very large amx size - by AmigaBlizzard - 14.06.2018, 11:05
Re: Very large amx size - by 3417512908 - 15.06.2018, 13:47
Re: Very large amx size - by GTLS - 15.06.2018, 16:59
Re: Very large amx size - by CodeStyle175 - 15.06.2018, 17:58

Forum Jump:


Users browsing this thread: 2 Guest(s)