[AYUDA]Porque me sale estos error?
#1

Hola eh buscado un FS de un sistema de casa pero me sale estos errores y no que se se son ayъdenme por favor....

Код:
C:\Users\Win7\Desktop\DLM\pawno\include\streamer.inc(375) : warning 235: public function lacks forward declaration (symbol "OnPlayerEditObject")
C:\Users\Win7\Desktop\DLM\pawno\include\streamer.inc(397) : warning 235: public function lacks forward declaration (symbol "OnPlayerSelectObject")
C:\Users\Win7\Desktop\DLM\pawno\include\streamer.inc(399) : error 017: undefined symbol "SELECT_OBJECT_PLAYER_OBJECT"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(81) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(87) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(110) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(129) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(148) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(167) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(189) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(215) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(231) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(257) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(304) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(350) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(364) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(381) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(385) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(409) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(425) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(442) : warning 235: public function lacks forward declaration (symbol "OnDialogResponse")
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(469) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(488) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(504) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(520) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(525) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(529) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(533) : error 017: undefined symbol "ShowPlayerDialog"
C:\Users\Win7\Desktop\DLM\filterscripts\SISTEMADECASA.pwn(537) : error 017: undefined symbol "ShowPlayerDialog"

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


26 Errors.
este es le FS:

Код:
//Version 1.0
//Owner can now choose a house to spawn in.
//User files now save in Houses/Users folder.
//Fixed some minor bugs.

#include <a_samp>
#include <dini>
#include <zcmd>
#include <streamer>

//|0 = Disable | 1 = Enable
#define HMESSAGES 1 //Enable House purchase/sell messages.

#define DABOX 9164
#define MAX_HOUSES 100

#define COLOR_BLUE 0x1C10EFFF
#define COLOR_RED 0xC93639FF

#define ADMINLINE IsPlayerAdmin(playerid)

new hfile[256];
new idfile[150];
new ufile[256];

new HEnterCP[MAX_HOUSES];
new HExitCP[MAX_HOUSES];
new Text3D:HLabel[MAX_HOUSES];
new HMarker[MAX_HOUSES];

public OnFilterScriptInit()
{
	SetTimer("UpdateHouses", 15000, 1);
	for(new i=0; i<TotalHouses(); i++)
	{
		DisableInteriorEnterExits();
		format(hfile, sizeof(hfile), "/Houses/%d.ini", i);
		new Float:ECPX; ECPX = dini_Float(hfile, "ECPX");
		new Float:ECPY; ECPY = dini_Float(hfile, "ECPY");
		new Float:ECPZ; ECPZ = dini_Float(hfile, "ECPZ");
		new Float:ICPX; ICPX = dini_Float(hfile, "ICPX");
		new Float:ICPY; ICPY = dini_Float(hfile, "ICPY");
		new Float:ICPZ; ICPZ = dini_Float(hfile, "ICPZ");
		new hname[256]; hname = dini_Get(hfile, "Name");
		new hprice; hprice = dini_Int(hfile, "Price");
		new howner[256]; howner = dini_Get(hfile, "Owner");
		new hworld; hworld = dini_Int(hfile, "World");
		new str[250]; format(str, sizeof(str), "Name: %s\nPrice: %d\nOwner: %s", hname, hprice, howner);
		if(dini_Int(hfile, "CPSet") == 1) {
			HEnterCP[i] = CreateDynamicCP(ECPX, ECPY, ECPZ, 1, -1, -1, -1, 25);
			HExitCP[i] = CreateDynamicCP(ICPX, ICPY, ICPZ, 1, hworld, -1, -1, 25);
			HLabel[i] = CreateDynamic3DTextLabel(str, COLOR_BLUE, ECPX, ECPY, ECPZ+1, 40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 40.0);
			HMarker[i] = CreateDynamicMapIcon(ECPX, ECPY, ECPZ, 31, 0, -1, -1, -1, 45);
		}
	}
	return 1;
}

public OnFilterScriptExit()
{
	DestroyAllDynamicCPs();
	DestroyAllDynamic3DTextLabels();
	DestroyAllDynamicMapIcons();
}

CMD:hcreate(playerid, params[]) {
	format(idfile, sizeof(idfile), "/Houses/ids.ini");
	if(IsEditing(playerid) == 1) return SendClientMessage(playerid, COLOR_RED, "You are already editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
	if(!dini_Exists(idfile)) dini_Create(idfile), dini_IntSet(idfile, "ID", 0);
	else dini_IntSet(idfile, "ID", dini_Int(idfile, "ID")+1);

	new str[128];
	format(hfile, sizeof(hfile), "/Houses/%d.ini", dini_Int(idfile, "ID"));

	dini_Create(hfile);
	SetPVarInt(playerid, "EditID", dini_Int(idfile, "ID"));
	SetPVarInt(playerid, "Editing", 1);
	format(str, sizeof(str), "You are now editing House [ID:%d]", dini_Int(idfile, "ID"));
	SendClientMessage(playerid, COLOR_BLUE, str);
	ShowPlayerDialog(playerid, DABOX, DIALOG_STYLE_LIST, "House Edit - Menu", "Entrance Checkpoint\nExit Checkpoint\nSet Enter Coords\nSet Exit Coords\nSet House Name\nSet House Price\nTeleport\nSet Virtual World\nSet Spawn Position", "Ok", "Cancel");
	return 1;
}
CMD:hedit(playerid, params[]) {
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You have not yet created a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
	ShowPlayerDialog(playerid, DABOX, DIALOG_STYLE_LIST, "House Edit - Menu", "Entrance Checkpoint\nExit Checkpoint\nSet Enter Coords\nSet Exit Coords\nSet House Name\nSet House Price\nTeleport\nSet Virtual World\nSet Spawn Position", "Ok", "Cancel");
	return 1;
}
CMD:hsetcp(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);

	dini_FloatSet(hfile, "ECPX", X);
	dini_FloatSet(hfile, "ECPY", Y);
	dini_FloatSet(hfile, "ECPZ", Z);
	dini_IntSet(hfile, "CPSet", 1);

	DestroyDynamicMapIcon(HMarker[GetPlayerHouseID(playerid)]);
	DestroyDynamicCP(HEnterCP[GetPlayerHouseID(playerid)]);
	HEnterCP[GetPlayerHouseID(playerid)] = CreateDynamicCP(X, Y, Z, 1, -1, -1, -1, 25);
	HMarker[GetPlayerHouseID(playerid)] = CreateDynamicMapIcon(X, Y, Z, 31, 0, -1, -1, -1, 45);

	new str[128];
	format(str, sizeof(str), "House [ID:%d]'s enter checkpoint has been set to - X: %f, Y: %f, Z: %f.", GetPlayerHouseID(playerid), X, Y, Z);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Enter CP", str, "Ok", "Cancel");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hsetenterpos(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);

	dini_FloatSet(hfile, "ENTX", X);
	dini_FloatSet(hfile, "ENTY", Y);
	dini_FloatSet(hfile, "ENTZ", Z);
	dini_IntSet(hfile, "Interior", GetPlayerInterior(playerid));

	new str[128];
	format(str, sizeof(str), "House [ID:%d]'s enter position has been set to - X: %f, Y: %f, Z: %f [Interior:%d]", GetPlayerHouseID(playerid), X, Y, Z, GetPlayerInterior(playerid));
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Enter Coords", str, "Ok", "Cancel");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hsetexitpos(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);

	dini_FloatSet(hfile, "EXITX", X);
	dini_FloatSet(hfile, "EXITY", Y);
	dini_FloatSet(hfile, "EXITZ", Z);
	dini_IntSet(hfile, "Interior2", GetPlayerInterior(playerid));

	new str[128];
	format(str, sizeof(str), "House [ID:%d] exit position has been set to - X: %f, Y: %f, Z: %f.", GetPlayerHouseID(playerid), X, Y, Z);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Exit Coords", str, "Ok", "Cancel");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hsetspawnpos(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);

	dini_FloatSet(hfile, "SPAWNX", X);
	dini_FloatSet(hfile, "SPAWNY", Y);
	dini_FloatSet(hfile, "SPAWNZ", Z);
	dini_IntSet(hfile, "Interior", GetPlayerInterior(playerid));

	new str[128];
	format(str, sizeof(str), "House [ID:%d]'s spawn position has been set to - X: %f, Y: %f, Z: %f [Interior:%d]", GetPlayerHouseID(playerid), X, Y, Z, GetPlayerInterior(playerid));
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Spawn Position", str, "Ok", "Cancel");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hsetintcp(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);

	dini_FloatSet(hfile, "ICPX", X);
	dini_FloatSet(hfile, "ICPY", Y);
	dini_FloatSet(hfile, "ICPZ", Z);
	new hworld; hworld = dini_Int(hfile, "World");

	DestroyDynamicCP(HExitCP[GetPlayerHouseID(playerid)]);
	HExitCP[GetPlayerHouseID(playerid)] = CreateDynamicCP(X, Y, Z, 1, hworld, -1, -1, 25);

	new str[128];
	format(str, sizeof(str), "House [ID:%d] exit checkpoint has been set to - X: %f, Y: %f, Z: %f.", GetPlayerHouseID(playerid), X, Y, Z);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Exit CP", str, "Ok", "Cancel");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hsetname(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: '/hsetname <name>'");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new hname[128];
	sscanf(params, "s", hname);
	dini_Set(hfile, "Name", hname);

	new Float:ECPX; ECPX = dini_Float(hfile, "ECPX");
	new Float:ECPY; ECPY = dini_Float(hfile, "ECPY");
	new Float:ECPZ; ECPZ = dini_Float(hfile, "ECPZ");

	new hprice; hprice = dini_Int(hfile, "Price");
	new howner[256]; howner = dini_Get(hfile, "Owner");
	new str[250]; format(str, sizeof(str), "Name: %s\nPrice: %d\nOwner: %s", hname, hprice, howner);

	DestroyDynamic3DTextLabel(HLabel[GetPlayerHouseID(playerid)]);
	HLabel[GetPlayerHouseID(playerid)] = CreateDynamic3DTextLabel(str, COLOR_BLUE, ECPX, ECPY, ECPZ+1, 40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 40.0);

	format(str, sizeof(str), "House [ID:%d] name is now '%s'!", GetPlayerHouseID(playerid), hname);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Set Name", str, "Ok", "Cancel");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hsetworld(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: '/hsetworld <worldid>'");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new hworld;
	sscanf(params, "i", hworld);
	dini_IntSet(hfile, "World", hworld);

	new str[128];
	format(str, sizeof(str), "House [ID:%d]'s virtual world is now '%d'!", GetPlayerHouseID(playerid), hworld);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Set World", str, "Ok", "Cancel");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hsetprice(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: '/hsetprice <price>'");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new hprice;
	sscanf(params, "i", hprice);
	dini_IntSet(hfile, "Price", hprice);

	new Float:ECPX; ECPX = dini_Float(hfile, "ECPX");
	new Float:ECPY; ECPY = dini_Float(hfile, "ECPY");
	new Float:ECPZ; ECPZ = dini_Float(hfile, "ECPZ");

	new howner[256]; howner = dini_Get(hfile, "Owner");
	new hname[256]; hname = dini_Get(hfile, "Name");
	new str[250]; format(str, sizeof(str), "Name: %s\nPrice: %d\nOwner: %s", hname, hprice, howner);

	DestroyDynamic3DTextLabel(HLabel[GetPlayerHouseID(playerid)]);
	HLabel[GetPlayerHouseID(playerid)] = CreateDynamic3DTextLabel(str, COLOR_BLUE, ECPX, ECPY, ECPZ+1, 40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 40.0);

	format(str, sizeof(str), "House [ID:%d]'s price is now '%d'!", GetPlayerHouseID(playerid), hprice);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Set Price", str, "Ok", "Exit");
	SendClientMessage(playerid, COLOR_BLUE, str);
	return 1;
}
CMD:hcancel(playerid, params[]) {
	format(idfile, sizeof(idfile), "/Houses/ids.ini");
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not currently editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	DestroyDynamicCP(HExitCP[GetPlayerHouseID(playerid)]);
	DestroyDynamicCP(HEnterCP[GetPlayerHouseID(playerid)]);
	DestroyDynamic3DTextLabel(HLabel[GetPlayerHouseID(playerid)]);
	DestroyDynamicMapIcon(HMarker[GetPlayerHouseID(playerid)]);

	dini_Remove(hfile);
	dini_IntSet(idfile, "ID", dini_Int(idfile, "ID")-1);
	SetPVarInt(playerid, "EditID", -1);
	SetPVarInt(playerid, "Editing", 0);
	SendClientMessage(playerid, COLOR_BLUE, "You have canceled the current house editing!");
	return 1;
}
CMD:hdone(playerid, params[]) {
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not currently editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	new str[50];
	format(str, sizeof(str), "You have finished editing House [ID:%d]!", GetPlayerHouseID(playerid));
	SendClientMessage(playerid, COLOR_BLUE, str);
	SetPVarInt(playerid, "EditID", -1);
	SetPVarInt(playerid, "Editing", 0);
	return 1;
}
CMD:hopen(playerid, params[]) {
	if(IsEditing(playerid) == 1) return SendClientMessage(playerid, COLOR_RED, "You are already editing a house!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
	new hid;
	sscanf(params, "i", hid);
	format(hfile, sizeof(hfile), "/Houses/%d.ini", hid);
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: '/hopen <houseid>'");
	if(!dini_Exists(hfile)) return SendClientMessage(playerid, COLOR_RED, "ERROR: That house id does not exist!");

	SetPVarInt(playerid, "EditID", hid);
	SetPVarInt(playerid, "Editing", 1);
	new str[50];
	format(str, sizeof(str), "You are now editing House [ID:%d]", hid);
	SendClientMessage(playerid, COLOR_BLUE, str);
	ShowPlayerDialog(playerid, DABOX, DIALOG_STYLE_LIST, "House Edit - Menu", "Entrance Checkpoint\nExit Checkpoint\nSet Enter Coords\nSet Exit Coords\nSet House Name\nSet House Price\nTeleport\nSet Virtual World\nSet Spawn Position", "Ok", "Cancel");
	return 1;
}
CMD:hgoto(playerid, params[]) {
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: '/hgoto [enter/exit]'");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");

	if(strcmp(params,"enter",true) == 0) {
		new Float:X; X = dini_Float(hfile, "ENTX");
		new Float:Y; Y = dini_Float(hfile, "ENTY");
		new Float:Z; Z = dini_Float(hfile, "ENTZ");
		new Interior; Interior = dini_Int(hfile, "Interior");
		new hworld; hworld = dini_Int(hfile, "World");
		SetPlayerAt(playerid, X, Y, Z, Interior, hworld);
		SendClientMessage(playerid, COLOR_BLUE, "Teleported to entrance coords.");
	}
	else if(strcmp(params, "exit", true) == 0) {
	    new Float:X; X = dini_Float(hfile, "EXITX");
	    new Float:Y; Y = dini_Float(hfile, "EXITY");
	    new Float:Z; Z = dini_Float(hfile, "EXITZ");
	    new Interior2 = dini_Int(hfile, "Interior2");
		SetPlayerAt(playerid, X, Y, Z, Interior2, 0);
		SendClientMessage(playerid, COLOR_BLUE, "Teleported to exit coords.");
	}
	else {
		SendClientMessage(playerid, COLOR_BLUE, "USAGE: '/hgoto [enter/exit]'");
	}
	return 1;
}
CMD:hdelete(playerid, params[]) {
	new hid;
	sscanf(params, "i", hid);
	format(hfile, sizeof(hfile), "/Houses/%d.ini", hid);
	if(!dini_Exists(hfile)) return SendClientMessage(playerid, COLOR_RED, "ERROR: That house id does not exist!");
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: '/hdelete <houseid>'");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
	if(hid == GetPlayerHouseID(playerid))
	{
		SetPVarInt(playerid, "EditID", hid);
		SetPVarInt(playerid, "Editing", 1);
	}
	new str[50];
	format(str, sizeof(str), "You have deleted House [ID:%d]", hid);
	SendClientMessage(playerid, COLOR_BLUE, str);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Delete", str, "Ok", "Exit");
	return 1;
}
CMD:hdebug(playerid, params[]) {
	new hid;
	sscanf(params, "i", hid);
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "You must enter a house ID.");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
	format(idfile, sizeof(idfile), "/Houses/ids.ini");
	format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
	new id; id = dini_Int(idfile, "ID");
	new thouses; thouses = TotalHouses();
	new str[128];
	format(str, sizeof(str), "ID File: %d\nTotal Houses: %d\n", id, thouses);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Debug", str, "", "Exit");
	return 1;
}
CMD:hinfo(playerid, params[]) {
	new hid;
	sscanf(params, "i", hid);
	format(hfile, sizeof(hfile), "/Houses/%d.ini", hid);
	if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "You must enter a house ID.");
	if(!dini_Exists(hfile)) return SendClientMessage(playerid, COLOR_RED, "This House ID does not exist!");
 	if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
	new hname[256]; hname = dini_Get(hfile, "Name");
	new hprice; hprice = dini_Int(hfile, "Price");
	new Interior; Interior = dini_Int(hfile, "Interior");
	new howner[256]; howner = dini_Get(hfile, "Owner");
	new hworld; hworld = dini_Int(hfile, "World");
	new str[128];
	format(str, sizeof(str), "House Name: %s\nOwner: %s\nPrice: %d\nInterior: %d\nVirtual World: %d", hname, howner, hprice, Interior, hworld);
	ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Info", str, "", "Exit");
	return 1;
}
CMD:hcmds(playerid, params[]) {
	if(ADMINLINE) ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Commands", "/hdelete <houseid>\n/hgoto <entercp/exitcp>\nhopen <houseid>\n/hdone\n/hcancel\n/hsetprice\n/hsetname\n/hsetintcp\n/hsetcp\n/hsetexitpos\n/hsetenterpos\n/hsetspawnpos\n/hedit\n/hcreate\n/hdebug\n/hinfo <houseid>\n", "", "Exit");
	else if(!ADMINLINE) return SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
	return 1;
}

public OnPlayerConnect(playerid)
{
	format(ufile, sizeof(ufile), "/Houses/Users/%s.ini", pName(playerid));
	if(!dini_Exists(ufile)) AddUser(playerid);
	return 1;
}

public OnPlayerSpawn(playerid)
{
	format(ufile, sizeof(ufile), "/Houses/Users/%s.ini", pName(playerid));
	if(dini_Int(ufile, "SpawnOpt") == 1)
	{
		format(hfile, sizeof(hfile), "/Houses/%d.ini", dini_Int(ufile, "SpawnID"));
		new howner[256]; howner = dini_Get(hfile, "Owner");
		new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
		if(strfind(howner, nigname, true) == -1)
		{
			dini_IntSet(ufile, "SpawnOpt", 0);
			dini_IntSet(ufile, "SpawnID", -1);
			ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Spawn", "You will no longer spawn in this house!", "Ok", "");
			return 1;
		}
		SetPVarInt(playerid, "SpawnTimer", SetTimerEx("SetHouseSpawn", 1250, false, "i", playerid));
	}
	return 1;
}

public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
	for(new x=0; x<TotalHouses(); x++)
	{
		if(checkpointid == HEnterCP[x])
		{
			if(IsEditing(playerid) == 1) return 1;
			SetPVarInt(playerid, "EntID", x);
			ShowPlayerDialog(playerid, DABOX+2, DIALOG_STYLE_LIST, "House Menu", "Enter House\nPurchase House\nSet Password\nSell House\nSet Spawn", "Ok", "Cancel");
		}
		else if(checkpointid == HExitCP[x])
		{
			if(IsEditing(playerid) == 1) return 1;
			format(hfile, sizeof(hfile), "/Houses/%d.ini", x);
			new Float:EXITX; EXITX = dini_Float(hfile, "EXITX");
			new Float:EXITY; EXITY = dini_Float(hfile, "EXITY");
			new Float:EXITZ; EXITZ = dini_Float(hfile, "EXITZ");
			new Interior2; Interior2 = dini_Int(hfile, "Interior2");
			SetPlayerAt(playerid, EXITX, EXITY, EXITZ, Interior2, 0);
			SetPVarInt(playerid, "EntID", -1);
		}
	}
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  	if(dialogid == DABOX)
	{
		if(response)
		{
			  if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
			  switch(listitem)
		      {
  					case 0:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
						new Float:X, Float:Y, Float:Z;
						GetPlayerPos(playerid, X, Y, Z);

						dini_FloatSet(hfile, "ECPX", X);
						dini_FloatSet(hfile, "ECPY", Y);
						dini_FloatSet(hfile, "ECPZ", Z);
						dini_IntSet(hfile, "CPSet", 1);

						DestroyDynamicMapIcon(HMarker[GetPlayerHouseID(playerid)]);
						DestroyDynamicCP(HEnterCP[GetPlayerHouseID(playerid)]);
						HEnterCP[GetPlayerHouseID(playerid)] = CreateDynamicCP(X, Y, Z, 1, -1, -1, -1, 25);
						HMarker[GetPlayerHouseID(playerid)] = CreateDynamicMapIcon(X, Y, Z, 31, 0, -1, -1, -1, 45);

						new str[128];
						format(str, sizeof(str), "House [ID:%d] enter checkpoint has been set to\n X: %f, Y: %f, Z: %f.", GetPlayerHouseID(playerid), X, Y, Z);
						ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Enter CP", str, "Ok", "Cancel");
						SendClientMessage(playerid, COLOR_BLUE, str);
  					}
  					case 1:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
						new Float:X, Float:Y, Float:Z;
						GetPlayerPos(playerid, X, Y, Z);

						dini_FloatSet(hfile, "ICPX", X);
						dini_FloatSet(hfile, "ICPY", Y);
						dini_FloatSet(hfile, "ICPZ", Z);
						new hworld; hworld = dini_Int(hfile, "World");

						DestroyDynamicCP(HExitCP[GetPlayerHouseID(playerid)]);
						HExitCP[GetPlayerHouseID(playerid)] = CreateDynamicCP(X, Y, Z, 1, hworld, -1, -1, 25);

						new str[128];
						format(str, sizeof(str), "House [ID:%d] exit checkpoint has been set to -\n X: %f, Y: %f, Z: %f.", GetPlayerHouseID(playerid), X, Y, Z);
						ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Exit CP", str, "Ok", "Cancel");
						SendClientMessage(playerid, COLOR_BLUE, str);
  					}
  					case 2:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
						new Float:X, Float:Y, Float:Z;
						GetPlayerPos(playerid, X, Y, Z);

						dini_FloatSet(hfile, "ENTX", X);
						dini_FloatSet(hfile, "ENTY", Y);
						dini_FloatSet(hfile, "ENTZ", Z);
						dini_IntSet(hfile, "Interior", GetPlayerInterior(playerid));

						new str[128];
						format(str, sizeof(str), "House [ID:%d] enter position has been set to -\n X: %f, Y: %f, Z: %f [Interior:%d]", GetPlayerHouseID(playerid), X, Y, Z, GetPlayerInterior(playerid));
						ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Enter Position", str, "Ok", "Cancel");
						SendClientMessage(playerid, COLOR_BLUE, str);
  					}
  					case 3:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
						new Float:X, Float:Y, Float:Z;
						GetPlayerPos(playerid, X, Y, Z);

						dini_FloatSet(hfile, "EXITX", X);
						dini_FloatSet(hfile, "EXITY", Y);
						dini_FloatSet(hfile, "EXITZ", Z);
						dini_IntSet(hfile, "Interior2", GetPlayerInterior(playerid));

						new str[128];
						format(str, sizeof(str), "House [ID:%d] exit position has been set to -\n X: %f, Y: %f, Z: %f.", GetPlayerHouseID(playerid), X, Y, Z);
						ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Exit Position", str, "Ok", "Cancel");
						SendClientMessage(playerid, COLOR_BLUE, str);
  					}
  					case 4:
  					{
			            ShowPlayerDialog(playerid, DABOX+1, DIALOG_STYLE_INPUT, "House Edit - Set House Name", "Type in the name you would like for your house.", "Ok", "Cancel");
  					}
  					case 5:
  					{
			            ShowPlayerDialog(playerid, DABOX+3, DIALOG_STYLE_INPUT, "House Edit - Set House Price", "Type in the price you would like for your house.", "Ok", "Cancel");
  					}
  					case 6:
  					{
						ShowPlayerDialog(playerid, DABOX+6, DIALOG_STYLE_LIST, "House - Teleport", "Tele to Enter CP\nTele to Exit CP", "Ok", "Cancel");
  					}
  					case 7:
  					{
			            ShowPlayerDialog(playerid, DABOX+7, DIALOG_STYLE_INPUT, "House Edit - Set World", "Type in the virtual world you would like.", "Ok", "Cancel");
					}
  					case 8:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));
						new Float:X, Float:Y, Float:Z;
						GetPlayerPos(playerid, X, Y, Z);

						dini_FloatSet(hfile, "SPAWNX", X);
						dini_FloatSet(hfile, "SPAWNY", Y);
						dini_FloatSet(hfile, "SPAWNZ", Z);
						dini_IntSet(hfile, "Interior", GetPlayerInterior(playerid));

						new str[128];
						format(str, sizeof(str), "House [ID:%d]'s spawn position has been set to - X: %f, Y: %f, Z: %f [Interior:%d]", GetPlayerHouseID(playerid), X, Y, Z, GetPlayerInterior(playerid));
						ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Spawn Position", str, "Ok", "Cancel");
						SendClientMessage(playerid, COLOR_BLUE, str);
					}
			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+1)
	{
		if(response)
		{
			  if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
			  if(!strlen(inputtext)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must enter a house name below!");
			  {
					format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));

					new aname[128];
					format(aname, sizeof(aname), "%s", inputtext);

					dini_Set(hfile, "Name", aname);

					new Float:ECPX; ECPX = dini_Float(hfile, "ECPX");
					new Float:ECPY; ECPY = dini_Float(hfile, "ECPY");
					new Float:ECPZ; ECPZ = dini_Float(hfile, "ECPZ");

					new hprice; hprice = dini_Int(hfile, "Price");
					new howner[256]; howner = dini_Get(hfile, "Owner");
					new str[250]; format(str, sizeof(str), "Name: %s\nPrice: %d\nOwner: %s", aname, hprice, howner);

					DestroyDynamic3DTextLabel(HLabel[GetPlayerHouseID(playerid)]);
					HLabel[GetPlayerHouseID(playerid)] = CreateDynamic3DTextLabel(str, COLOR_BLUE, ECPX, ECPY, ECPZ+1, 40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 40.0);

					format(str, sizeof(str), "House [ID:%d]'s name is now '%s'!", GetPlayerHouseID(playerid), aname);
					ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Set Name", str, "Ok", "Cancel");
   			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+2)
	{
		if(response)
		{
			  switch(listitem)
		      {
  					case 0:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));
  					    new howner[256]; howner = dini_Get(hfile, "Owner");
						new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
 						if(dini_Int(hfile, "PassSet") == 1 && strfind(howner, nigname, true) == -1)
 						{
		     				ShowPlayerDialog(playerid, DABOX+5, DIALOG_STYLE_INPUT, "House - Password", "Type in the password for this house to enter.", "Ok", "Cancel");
		     				return 1;
 						}
						new Float:ENTX; ENTX = dini_Float(hfile, "ENTX");
						new Float:ENTY; ENTY = dini_Float(hfile, "ENTY");
						new Float:ENTZ; ENTZ = dini_Float(hfile, "ENTZ");
						new Interior = dini_Int(hfile, "Interior");
						new hworld; hworld = dini_Int(hfile, "World");
						SetPlayerAt(playerid, ENTX, ENTY, ENTZ, Interior, hworld);
  					}
  					case 1:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));
						new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
  					    new hprice; hprice = dini_Int(hfile, "Price");
  					    new howner[256]; howner = dini_Get(hfile, "Owner");
  					    new hname[256]; hname = dini_Get(hfile, "Name");
					    if(GetPlayerMoney(playerid) < hprice) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Purchase", "You do not have enough money to purchase\nthis house!", "Ok", "");
						if(strfind(howner, nigname, true) != -1) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Purchase", "You already own this house!", "Ok", "");
						dini_Set(hfile, "Owner", pName(playerid));
						GivePlayerMoney(playerid, -hprice);
						PlayerPlaySound(playerid, 1058, 0, 0, 0);
						PlayerPlaySound(playerid, 1149, 0, 0, 0);
						ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Purchase", "You have successfully purchased this house!", "", "Exit");
						#if HMESSAGES == 1
						new str[128];
						format(str, sizeof(str), "%s purchased the House '%s' [ID:%d] for $%d!", pName(playerid), hname, GetEntID(playerid), hprice);
						SendClientMessageToAll(COLOR_BLUE, str);
						#endif
  					}
  					case 2:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));
  					    new howner[256]; howner = dini_Get(hfile, "Owner");
						new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
						if(strfind(howner, nigname, true) == -1) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Options", "You are not the owner of this house!", "Ok", "");
						ShowPlayerDialog(playerid, DABOX+4, DIALOG_STYLE_INPUT, "House - Set Password", "Type in a password you would like for your house.", "Ok", "Cancel");
  					}
  					case 3:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));
  					    new howner[256]; howner = dini_Get(hfile, "Owner");
						new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
						if(strfind(howner, nigname, true) == -1) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Options", "You are not the owner of this house!", "Ok", "");
						ShowPlayerDialog(playerid, DABOX+8, DIALOG_STYLE_INPUT, "House - Sell House", "Are you sure you want to sell this house?\nType Yes or No", "Ok", "Cancel");
  					}
  					case 4:
  					{
						format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));
  					    new howner[256]; howner = dini_Get(hfile, "Owner");
						new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
						if(strfind(howner, nigname, true) == -1) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Options", "You are not the owner of this house!", "Ok", "");
						ShowPlayerDialog(playerid, DABOX+9, DIALOG_STYLE_INPUT, "House - Spawn", "Are you sure you want to spawn in this house?\nType Yes or No", "Ok", "Cancel");
  					}
			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+3)
	{
		if(response)
		{
			  if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
			  if(!strlen(inputtext)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must enter a price below!");
			  {
					format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));

					new hprice;
					sscanf(inputtext, "i", hprice);

					dini_IntSet(hfile, "Price", hprice);

					new Float:ECPX; ECPX = dini_Float(hfile, "ECPX");
					new Float:ECPY; ECPY = dini_Float(hfile, "ECPY");
					new Float:ECPZ; ECPZ = dini_Float(hfile, "ECPZ");

					new howner[256]; howner = dini_Get(hfile, "Owner");
					new hname[256]; hname = dini_Get(hfile, "Name");
					new str[250]; format(str, sizeof(str), "Name: %s\nPrice: %d\nOwner: %s", hname, hprice, howner);

					DestroyDynamic3DTextLabel(HLabel[GetPlayerHouseID(playerid)]);
					HLabel[GetPlayerHouseID(playerid)] = CreateDynamic3DTextLabel(str, COLOR_BLUE, ECPX, ECPY, ECPZ+1, 40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 40.0);

					format(str, sizeof(str), "House [ID:%d]'s price is now '%d'!", GetPlayerHouseID(playerid), hprice);
					ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Set Price", str, "Ok", "");
   			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+4)
	{
		if(response)
		{
			  if(!strlen(inputtext)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must enter a price below!");
			  {
					format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));

					new hpass[128];
					sscanf(inputtext, "s", hpass);
					dini_Set(hfile, "Password", hpass);
					dini_IntSet(hfile, "PassSet", 1);

					new str[128];
					format(str, sizeof(str), "The password for House [ID:%d] is now '%s'!", GetEntID(playerid), hpass);
					ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Options - Set Password", str, "Ok", "");
   			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+5)
	{
		if(response)
		{
			  if(!strlen(inputtext)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must enter a password below!");
			  {
					format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));

					new hpass[128];
					sscanf(inputtext, "s", hpass);
					new matchpass[256]; matchpass = dini_Get(hfile, "Password");

					if(strfind(matchpass, hpass, true) == -1) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Password", "Incorrect password...", "Ok", "");
					else {
						new Float:ENTX; ENTX = dini_Float(hfile, "ENTX");
						new Float:ENTY; ENTY = dini_Float(hfile, "ENTY");
						new Float:ENTZ; ENTZ = dini_Float(hfile, "ENTZ");
						new Interior = dini_Int(hfile, "Interior");
						new hworld = dini_Int(hfile, "World");
						SetPlayerAt(playerid, ENTX, ENTY, ENTZ, Interior, hworld);
					}
   			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+6)
	{
		if(response)
		{
			  if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
			  switch(listitem)
		      {
  					case 0:
  					{
		    			new Float:X; X = dini_Float(hfile, "ENTX");
						new Float:Y; Y = dini_Float(hfile, "ENTY");
						new Float:Z; Z = dini_Float(hfile, "ENTZ");
						new Interior; Interior = dini_Int(hfile, "Interior");
						new hworld; hworld = dini_Int(hfile, "World");
						SetPlayerAt(playerid, X, Y, Z, Interior, hworld);
			            ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Enter CP", "Successfully teleported to entrance coords.", "Ok", "");
  					}
  					case 1:
  					{
		    			new Float:X; X = dini_Float(hfile, "EXITX");
						new Float:Y; Y = dini_Float(hfile, "EXITY");
						new Float:Z; Z = dini_Float(hfile, "EXITZ");
						new Interior2; Interior2 = dini_Int(hfile, "Interior2");
						SetPlayerAt(playerid, X, Y, Z, Interior2, 0);
			            ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Exit CP", "Successfully teleported to exit coords.", "Ok", "");
  					}
			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+7)
	{
		if(response)
		{
			  if(IsEditing(playerid) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not editing a house!");
			  if(!strlen(inputtext)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must enter a price below!");
			  {
					format(hfile, sizeof(hfile), "/Houses/%d.ini", GetPlayerHouseID(playerid));

					new hworld;
					sscanf(inputtext, "i", hworld);

					dini_IntSet(hfile, "World", hworld);

					SetPlayerVirtualWorld(playerid, hworld);

					new str[128];
					format(str, sizeof(str), "House [ID:%d]'s virtual world is now '%d'!", GetPlayerHouseID(playerid), hworld);
					ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House Edit - Set World", str, "Ok", "");
   			  }
        }
        return 1;
    }
  	if(dialogid == DABOX+8)
	{
		if(response)
		{
			format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));
	 		new howner[256]; howner = dini_Get(hfile, "Owner");
			new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
			if(strfind(howner, nigname, true) == -1) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Options", "You are not the owner of this house!", "Ok", "");
		   	if(strfind(inputtext,"Yes",true) == 0)
			{
				new hprice; hprice = dini_Int(hfile, "Price");
				new hname[256]; hname = dini_Get(hfile, "Name");
				dini_Set(hfile, "Owner", "None");
				GivePlayerMoney(playerid, hprice);
				#if HMESSAGES == 1
				new str[128];
				format(str, sizeof(str), "%s sold the House '%s' [ID:%d] [Price: %d]!", pName(playerid), hname, GetEntID(playerid), hprice);
				SendClientMessageToAll(COLOR_BLUE, str);
				#endif
		 	}
		   	else if(strfind(inputtext,"No",true) == 0)
			{
   				SendClientMessage(playerid, COLOR_RED, "You decided not to sell your house...");
		 	}
		}
        return 1;
    }
  	if(dialogid == DABOX+9)
	{
		if(response)
		{
			format(hfile, sizeof(hfile), "/Houses/%d.ini", GetEntID(playerid));
			format(ufile, sizeof(ufile), "/Houses/Users/%s.ini", pName(playerid));
			if(!dini_Exists(ufile)) AddUser(playerid);
	 		new howner[256]; howner = dini_Get(hfile, "Owner");
			new nigname[MAX_PLAYER_NAME]; nigname = pName(playerid);
			if(strfind(howner, nigname, true) == -1) return ShowPlayerDialog(playerid, DABOX-1, DIALOG_STYLE_MSGBOX, "House - Options", "You are not the owner of this house!", "Ok", "");
		   	if(strfind(inputtext,"Yes",true) == 0)
			{
				dini_IntSet(ufile, "SpawnOpt", 1);
				dini_IntSet(ufile, "SpawnID", GetEntID(playerid));
				SendClientMessage(playerid, COLOR_BLUE, "You will now spawn in this house when you die!");
		 	}
		   	else if(strfind(inputtext,"No",true) == 0)
			{
   				SendClientMessage(playerid, COLOR_RED, "You decided not to spawn in this house...");
		 	}
		}
        return 1;
    }
    return 0;
}

stock pName(playerid)
{
	new gName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, gName, sizeof(gName));
	return gName;
}

stock IsEditing(playerid)
{
	return GetPVarInt(playerid, "Editing");
}

stock GetPlayerHouseID(playerid)
{
	return GetPVarInt(playerid, "EditID");
}

stock GetEntID(playerid)
{
	return GetPVarInt(playerid, "EntID");
}

stock TotalHouses()
{
	new tehcount;
	for(new i=0; i<MAX_HOUSES; i++)
	{
		format(hfile, sizeof(hfile), "/Houses/%d.ini", i);
		if(dini_Exists(hfile)) tehcount++;
	}
	return tehcount;
}

forward UpdateHouses();
public UpdateHouses()
{
	for(new i=0; i<TotalHouses(); i++)
	{
		DisableInteriorEnterExits();
		format(hfile, sizeof(hfile), "/Houses/%d.ini", i);
		new Float:ECPX; ECPX = dini_Float(hfile, "ECPX");
		new Float:ECPY; ECPY = dini_Float(hfile, "ECPY");
		new Float:ECPZ; ECPZ = dini_Float(hfile, "ECPZ");
		new Float:ICPX; ICPX = dini_Float(hfile, "ICPX");
		new Float:ICPY; ICPY = dini_Float(hfile, "ICPY");
		new Float:ICPZ; ICPZ = dini_Float(hfile, "ICPZ");
		new hname[256]; hname = dini_Get(hfile, "Name");
		new hprice; hprice = dini_Int(hfile, "Price");
		new howner[256]; howner = dini_Get(hfile, "Owner");
  		new hworld; hworld = dini_Int(hfile, "World");
		new str[250]; format(str, sizeof(str), "Name: %s\nPrice: %d\nOwner: %s", hname, hprice, howner);
		DestroyDynamicMapIcon(HMarker[i]);
		DestroyDynamicCP(HEnterCP[i]);
		DestroyDynamicCP(HExitCP[i]);
		DestroyDynamic3DTextLabel(HLabel[i]);
		if(dini_Int(hfile, "CPSet") == 1) {
			HEnterCP[i] = CreateDynamicCP(ECPX, ECPY, ECPZ, 1, -1, -1, -1, 25);
			HExitCP[i] = CreateDynamicCP(ICPX, ICPY, ICPZ, 1, hworld, -1, -1, 25);
			HLabel[i] = CreateDynamic3DTextLabel(str, COLOR_BLUE, ECPX, ECPY, ECPZ+1, 40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 40.0);
			HMarker[i] = CreateDynamicMapIcon(ECPX, ECPY, ECPZ, 31, 0, -1, -1, -1, 45);
		}
	}
	return 1;
}

stock SetPlayerAt(playerid, Float:X, Float:Y, Float:Z, interiorid, virtualworld)
{
	SetPlayerPos(playerid, X, Y, Z);
	SetPlayerInterior(playerid, interiorid);
	SetPlayerVirtualWorld(playerid, virtualworld);
	return 1;
}

stock AddUser(playerid)
{
	format(ufile, sizeof(ufile), "/Houses/Users/%s.ini", pName(playerid));
	dini_Create(ufile);
	dini_IntSet(ufile, "SpawnOpt", 0);
	dini_IntSet(ufile, "SpawnID", -1);
	return 1;
}

forward SetHouseSpawn(playerid);
public SetHouseSpawn(playerid)
{
	KillTimer(GetPVarInt(playerid, "SpawnTimer"));
	format(ufile, sizeof(ufile), "/Houses/Users/%s.ini", pName(playerid));
	format(hfile, sizeof(hfile), "/Houses/%d.ini", dini_Int(ufile, "SpawnID"));
	new Float:SPAWNX; SPAWNX = dini_Float(hfile, "SPAWNX");
	new Float:SPAWNY; SPAWNY = dini_Float(hfile, "SPAWNY");
	new Float:SPAWNZ; SPAWNZ = dini_Float(hfile, "SPAWNZ");
	new hint = dini_Int(hfile, "Interior");
	new hworld = dini_Int(hfile, "World");
	SetPlayerAt(playerid, SPAWNX, SPAWNY, SPAWNZ, hint, hworld);
	return 1;
}

stock sscanf(string[], format[], {Float,_}:...)
{
	#if defined isnull
		if (isnull(string))
	#else
		if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
	#endif
		{
			return format[0];
		}
	#pragma tabsize 4
	new
		formatPos = 0,
		stringPos = 0,
		paramPos = 2,
		paramCount = numargs(),
		delim = ' ';
	while (string[stringPos] && string[stringPos] <= ' ')
	{
		stringPos++;
	}
	while (paramPos < paramCount && string[stringPos])
	{
		switch (format[formatPos++])
		{
			case '\0':
			{
				return 0;
			}
			case 'i', 'd':
			{
				new
					neg = 1,
					num = 0,
					ch = string[stringPos];
				if (ch == '-')
				{
					neg = -1;
					ch = string[++stringPos];
				}
				do
				{
					stringPos++;
					if ('0' <= ch <= '9')
					{
						num = (num * 10) + (ch - '0');
					}
					else
					{
						return -1;
					}
				}
				while ((ch = string[stringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num * neg);
			}
			case 'h', 'x':
			{
				new
					num = 0,
					ch = string[stringPos];
				do
				{
					stringPos++;
					switch (ch)
					{
						case 'x', 'X':
						{
							num = 0;
							continue;
						}
						case '0' .. '9':
						{
							num = (num << 4) | (ch - '0');
						}
						case 'a' .. 'f':
						{
							num = (num << 4) | (ch - ('a' - 10));
						}
						case 'A' .. 'F':
						{
							num = (num << 4) | (ch - ('A' - 10));
						}
						default:
						{
							return -1;
						}
					}
				}
				while ((ch = string[stringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num);
			}
			case 'c':
			{
				setarg(paramPos, 0, string[stringPos++]);
			}
			case 'f':
			{
				setarg(paramPos, 0, _:floatstr(string[stringPos]));
			}
			case 'p':
			{
				delim = format[formatPos++];
				continue;
			}
			case '\'':
			{
				new
					end = formatPos - 1,
					ch;
				while ((ch = format[++end]) && ch != '\'') {}
				if (!ch)
				{
					return -1;
				}
				format[end] = '\0';
				if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
				{
					if (format[end + 1])
					{
						return -1;
					}
					return 0;
				}
				format[end] = '\'';
				stringPos = ch + (end - formatPos);
				formatPos = end + 1;
			}
			case 'u':
			{
				new
					end = stringPos - 1,
					id = 0,
					bool:num = true,
					ch;
				while ((ch = string[++end]) && ch != delim)
				{
					if (num)
					{
						if ('0' <= ch <= '9')
						{
							id = (id * 10) + (ch - '0');
						}
						else
						{
							num = false;
						}
					}
				}
				if (num && IsPlayerConnected(id))
				{
					setarg(paramPos, 0, id);
				}
				else
				{
					#if !defined foreach
						#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
						#define __SSCANF_FOREACH__
					#endif
					string[end] = '\0';
					num = false;
					new
						name[MAX_PLAYER_NAME];
					id = end - stringPos;
					foreach (Player, playerid)
					{
						GetPlayerName(playerid, name, sizeof (name));
						if (!strcmp(name, string[stringPos], true, id))
						{
							setarg(paramPos, 0, playerid);
							num = true;
							break;
						}
					}
					if (!num)
					{
						setarg(paramPos, 0, INVALID_PLAYER_ID);
					}
					string[end] = ch;
					#if defined __SSCANF_FOREACH__
						#undef foreach
						#undef __SSCANF_FOREACH__
					#endif
				}
				stringPos = end;
			}
			case 's', 'z':
			{
				new
					i = 0,
					ch;
				if (format[formatPos])
				{
					while ((ch = string[stringPos++]) && ch != delim)
					{
						setarg(paramPos, i++, ch);
					}
					if (!i)
					{
						return -1;
					}
				}
				else
				{
					while ((ch = string[stringPos++]))
					{
						setarg(paramPos, i++, ch);
					}
				}
				stringPos--;
				setarg(paramPos, i, '\0');
			}
			default:
			{
				continue;
			}
		}
		while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
		{
			stringPos++;
		}
		while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
		{
			stringPos++;
		}
		paramPos++;
	}
	do
	{
		if ((delim = format[formatPos++]) > ' ')
		{
			if (delim == '\'')
			{
				while ((delim = format[formatPos++]) && delim != '\'') {}
			}
			else if (delim != 'z')
			{
				return delim;
		    }
		}
	}
	while (delim > ' ');
	return 0;
}

Gracias de antemano
Reply
#2

ese error se debe a que no sabes pawn y quizб ni ingles basico
Reply
#3

Actualiza tus includes por que yo lo compile y funciona bien, busca la versiуn mas reciente de streamer, zcmd y dini
http://prntscr.com/brb501
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)