I need little help in House System (to change checkpoint to..)
#1

Hello, I made Home System and i dont know
how to change the red checkpoint to green House Pickup.
I could replace it, but how do I make command in it? Because it shows me that I should be on the checkpoint or the pickup and I'm actually on it. How do I destroy the checkpoint when users want to sell a house? or i want to delete the pickup.
I'd appreciate it if you could help me arrange the commands:

house[i] = CPS_AddCheckpoint(houseInfo[i][opos][0], houseInfo[i][opos][1], houseInfo[i][opos][2], 1.5, 100);

------

public OnPlayerEnterCheckpoint(playerid)
{
for(new i; i < maxHouses; i++)
{
if(houseInfo[i][exist] && CPS_IsPlayerInCheckpoint(playerid, house[i]))
{
playerInfo[playerid][ohouse] = i;
if(strlen(houseInfo[i][owner]) > 1)
{
if(!strcmp(houseInfo[i][owner], GetName(playerid)))
{
GetPlayerPos(playerid, playerInfo[playerid][pos][0], playerInfo[playerid][pos][1], playerInfo[playerid][pos][2]);
SetPlayerVirtualWorld(playerid, i);
playerInfo[playerid][entered] = 1;
SetPlayerInterior(playerid, houseInfo[i][interior]);
SetPlayerPos(playerid, houseInfo[i][ipos][0], houseInfo[i][ipos][1], houseInfo[i][ipos][2]);
format(str, sizeof(str), ".%s ,הוכנסת אוטומאטית לביתך", GetName(playerid));
SendClientMessage(playerid, 0xFF9900AA, str);
}
}
}
}
}
-----

public OnPlayerLeaveCheckpoint(playerid) playerInfo[playerid][ohouse] = 0;
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
if(!strcmp("/house", cmd, true))
{
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house [command] :שימוש");
if(!strcmp("create", cmd, true))
{
assert(IsPlayerAdmin(playerid));
houseInfo[++houses][exist] = 1;
new Floatpos[3];
GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
houseInfo[houses][opos][0] = ppos[0];
houseInfo[houses][opos][1] = ppos[1];
houseInfo[houses][opos][2] = ppos[2];
Delete3DTextLabel(htd[houses]);
format(str, sizeof(str), "%d :מספר הבית\n\r$%d :מחיר הבית\n\r%d :מספר חדרים", houses, houseInfo[houses][price], houseInfo[houses][rooms]);
htd[houses] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[houses][opos][0], houseInfo[houses][opos][1], houseInfo[houses][opos][2], 40.0, 0);
house[houses] = CPS_AddCheckpoint(ppos[0], ppos[1], ppos[2], 1.5, 100);
format(str, sizeof(str), ".%d יצרת את בית מספר", houses);
return SendClientMessage(playerid, 0x16EB43FF, str);
}

----

CPS_RemoveCheckpoint(house[hid]);

i want to replace this with "Green house" id "1273".
Please Help me, and sorry for my bad english.
Reply
#2

put [.pawn]on the start of the code and [./pawn] on the end of the code so the code can be read easier.

This are functions and callbacks you should use:
CreatePickup
DestroyPickup
OnPlayerPickUpPickup
DisablePlayerCheckpoint
Reply
#3

Ty its Work ! but....
when player whant to buy a house, he got this Error Message "You must be On the checkpoint"
And the player actually on the Checkpoint and he can not buy the house.
here is code:

if(!strcmp("buy", cmd, true))
{
if(!playerInfo[playerid][ohouse]) return SendClientMessage(playerid, 0xFF0000AA, "You must be On the checkpoint"); // => Translate for u..
if(playerInfo[playerid][houseid] != 0) return SendClientMessage(playerid, 0xFF0000AA, ".лбш йщ мк бйъ");
if(GetPlayerMoney(playerid) < houseInfo[playerInfo[playerid][ohouse]][price])
{
format(str, sizeof(str), ".$%d бйъ жд темд", houseInfo[playerInfo[playerid][ohouse]][price]);
return SendClientMessage(playerid, 0xFF0000AA, str);
}
format(houseInfo[playerInfo[playerid][ohouse]][owner], MAX_PLAYER_NAME, GetName(playerid));
playerInfo[playerid][houseid] = playerInfo[playerid][ohouse];
GivePlayerMoney(playerid, -houseInfo[playerInfo[playerid][ohouse]][price]);
Delete3DTextLabel(htd[playerInfo[playerid][ohouse]]);
format(str, sizeof(str), "%d :осфш дбйъ\nсев бйъ: еймд\n\r%s :бтмйн", playerInfo[playerid][ohouse], houseInfo[playerInfo[playerid][ohouse]][owner]);
htd[playerInfo[playerid][ohouse]] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[playerInfo[playerid][ohouse]][opos][0], houseInfo[playerInfo[playerid][ohouse]][opos][1], houseInfo[playerInfo[playerid][ohouse]][opos][2], 40.0, 0);
format(str, sizeof(str), ".%d чрйъ аъ бйъ осфш", playerInfo[playerid][ohouse]);
return SendClientMessage(playerid, 0x16EB43FF, str);
}

------

public OnPlayerLeaveCheckpoint(playerid) playerInfo[playerid][ohouse] = 0;

how i replace the public "OnPlayerLeaveCheckPoint" to the house pickup? Does it matter?
--------------------

public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new i; i < maxHouses; i++)
{
if(houseInfo[i][exist] && OnPlayerPickUpPickup(playerid, house[i]))
{
playerInfo[playerid][ohouse] = i;
if(strlen(houseInfo[i][owner]) > 1)
{
if(!strcmp(houseInfo[i][owner], GetName(playerid)))
{
GetPlayerPos(playerid, playerInfo[playerid][pos][0], playerInfo[playerid][pos][1], playerInfo[playerid][pos][2]);
SetPlayerVirtualWorld(playerid, i);
playerInfo[playerid][entered] = 1;
SetPlayerInterior(playerid, houseInfo[i][interior]);
SetPlayerPos(playerid, houseInfo[i][ipos][0], houseInfo[i][ipos][1], houseInfo[i][ipos][2]);
format(str, sizeof(str), ".%s ,делрсъ аеиеоаийъ мбйък", GetName(playerid));
SendClientMessage(playerid, 0xFF9900AA, str);
}
}
}
}
}
Reply
#4

This is an easy problem, please help me.
Reply
#5

UPPPPP
Reply
#6

uppppppppppp
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)