[Ajuda] Sistema de Escolha de Int
#1

Boas a todos,
Esta й a primeira vez que venho aqui pedir auxнlio, pois estou aqui com um problema.

Bem, й o seguinte, eu estou a tentar criar um sistema de escolha de interiores para o meu GM RP, neste momento tenho o script incompleto pois nao consigo criar uma funзao de maneira a que, ao comprar a casa, o player consiga mudar o int da mesma.

Tenho os seguintes codes:
Код:
if(strcmp(cmd, "/comprarcasa", true) == 0)
		{
		    if(IsPlayerConnected(playerid))
		    {
				new Float:oldposx, Float:oldposy, Float:oldposz;
				new playername[MAX_PLAYER_NAME];
				GetPlayerName(playerid, playername, sizeof(playername));
				GetPlayerPos(playerid, oldposx, oldposy, oldposz);
				for(new h = 0; h < sizeof(Houses); h++)
				{
					if(PlayerToPoint(2.0, playerid, Houses[h][EnterX], Houses[h][EnterY], Houses[h][EnterZ]) && Houses[h][Owned] == 0)
					{
					    if(Houses[h][HousePrice] == 0)
					    {
					        SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "*{FF0000} Erro:{FFFFFF} O preco da casa nao foi escolhido, poder nao ser para uso.");
							return 1;
					    }
						if(PlayerInfo[playerid][pHouseKey] != 255 && strcmp(playername, Houses[PlayerInfo[playerid][pHouseKey]][Owner], true) == 0)
						{
							SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "*{FF0000} Erro:{FFFFFF} Apenas poderas ter uma casa, para compares uma nova, teras que vernder a tua acutal primeiro.");
							return 1;
						}
						if(Houses[h][Owned] == 1)
						{
							SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "*{FF0000} Erro:{FFFFFF} Casa Jб tem Dono.");
							return 1;
						}
						if(GetPlayerEuros(playerid) >= Houses[h][HousePrice])
						{
						    if(PlayerInfo[playerid][pescritura] == 1)
					    	{
					    	    PlayerInfo[playerid][pescritura] = 0;
		      					PlayerInfo[playerid][pHouseKey] = h;
		      					PlayerInfo[playerid][pAluguer] = 0;
								Houses[h][Owned] = 1;
								Houses[h][Money] = 0;
								strmid(Houses[h][Owner], playername, 0, strlen(playername), 255);
								GivePlayerEuros(playerid,-Houses[h][HousePrice]);
								TextDrawShowForPlayer(playerid, HouseInt[playerid][3]);
								TextDrawShowForPlayer(playerid, HouseInt[playerid][4]);
								TextDrawShowForPlayer(playerid, HouseInt[playerid][5]);
								TextDrawShowForPlayer(playerid, HouseInt[playerid][6]);
								TextDrawShowForPlayer(playerid, HouseInt[playerid][7]);
								TextDrawShowForPlayer(playerid, HouseInt[playerid][8]);
								TextDrawSetSelectable(HouseInt[playerid][5], 1);
								TextDrawSetSelectable(HouseInt[playerid][8], 1);
								SetPlayerPos(playerid,Houses[h][ExitX],Houses[h][ExitY],Houses[h][ExitZ]);
								SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "*{CCCC00} Info:{FFFFFF} Compraste com sucesso a tua casa!");
			       				PlayerActionMessage(playerid,15.0,"entrega uma mala cheia de dinheiro б agencia imobliaria, que dao em troca a chave da casa.");
								ChangeStreamPickupModel(Houses[h][PickupID],1239);
								SaveHouses();
								UpdateHouses(h);
								OnPlayerDataSave(playerid);
								return 1;
							}
							else
							{
								SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "Tens de tratar da papelada na camara municipal!");
								return 1;
							}
						}
						else
						{
							SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "*{FF0000} Erro:{FFFFFF} Nao tens dinheiro suficiente!");
							return 1;
						}
					}
				}
			}
			return 1;
		}
Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
	if(clickedid == HouseInt[playerid][5]
	{
		SetPlayerCameraPos(playerid, 125,125,125);
	    TextDrawHideForPlayer(playerid, HouseInt[playerid][2]);
	    TextDrawHideForPlayer(playerid, HouseInt[playerid][5]);
	    TextDrawHideForPlayer(playerid, HouseInt[playerid][8]);
		TextDrawShowForPlayer(playerid, HouseInt[playerid][9]);
		TextDrawShowForPlayer(playerid, HouseInt[playerid][10]);
		TextDrawShowForPlayer(playerid, HouseInt[playerid][11]);
	}
	if(clickedid == HouseInt[playerid][8]
	{
	    Houses[id][ExitX] = 223.043991;
		Houses[id][ExitY] = 1289.259888;
		Houses[id][ExitZ] = 1082.199951;
		Houses[id][ExitInterior] = 1;

        }
	
	return 1;
}
Ora o meu problema situa-se no HouseInt[playerid][8], que й o Utilizar, e que, apos o player fazer /comprarcasa o telporta para os ints, de maneira a que possa visualiza-los e escolher o desejado.

Gostava de saber se e possivel fazer algo tipo GetPlayerHouseID, ou uma coisa do genero, visto que quando o player compra a casa ja fica com a key definida.

Se me pudessem ajudar, ficaria agradecido, obrigado.
Reply
#2

pawn Код:
stock pCasa(playerid) return PlayerInfo[playerid][pHouseKey];
//ou
#define pCasa(%0) PlayerInfo[%0][pHouseKey]
Deve ser isto nгo ?
Reply
#3

Penso que sim, irei experimentar, obrigado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)