Remove user created objects -
luckie12 - 16.05.2014
Hi, i have a script /campfire then it makes an campfire, but if more people do it, it creates multiple objects, thats ok, but how can i make it when a player does /removecamp then only HIS campfire removes and not all of the campfires
Re: Remove user created objects -
Lordzy - 16.05.2014
Create an array of size MAX_PLAYERS or the maximum players of your server. Store the object ID on those and you can then use it as per-player campfire control or remove them for a player only.
Re: Remove user created objects -
luckie12 - 16.05.2014
hmm example? so i can use it for all the parts like the /tent
Re: Remove user created objects -
Lordzy - 16.05.2014
Sure, here you go:
pawn Код:
new pObject[MAX_PLAYERS] = {INVALID_OBJECT_ID, ...};
public OnPlayerConnect(playerid)
{
pObject[playerid] = INVALID_OBJECT_ID; //Resetting the variable so that there won't be further confusion.
return 1;
}
//While creating object.
pObject[playerid] = CreateObject(....);
//While destroying the object:
DestroyObject(pObject[playerid]);
pObject[playerid] = INVALID_OBJECT_ID; //Also assign that array then to it's default value so later collission could be avoided.
//For checking if player has already created that stuff.
if(pObject[playerid] != INVALID_OBJECT_ID) //If the objectid array isn't at the invalid value, it means the object is created.
Re: Remove user created objects -
luckie12 - 16.05.2014
aaaaaaaaaaaaah thats difficult haha but i will try it thankyou!
Re: Remove user created objects -
luckie12 - 16.05.2014
it doesnt do anything, my script;
Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
new pObject[MAX_PLAYERS] = {INVALID_OBJECT_ID, ...};
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
pObject[playerid] = INVALID_OBJECT_ID;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/campfire", cmdtext, true, 10) == 0)
{
new Float:x, Float:y, Float:z;
new Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
if(pObject[playerid] != INVALID_OBJECT_ID) return SendClientMessage(playerid, -1, "You already have an campfire!");
pObject[playerid] = CreateObject(841, x+5,y,12.5000000,0,0,a); // change the object id
pObject[playerid] = CreateObject(841, x+5,y,12.5000000,0,0,a); // change the object id
pObject[playerid] = CreateObject(841, x+5,y,12.5000000,0,0,a); // change the object id
pObject[playerid] = CreateObject(3461, x+5,y,11.0000000,0,0,a); // change the object id
pObject[playerid] = SendClientMessage(playerid, -1, "You made an campfire!");
return 1;
}
if (strcmp("/removecamp", cmdtext, true, 10) == 0)
{
DestroyObject(pObject[playerid]);
pObject[playerid] = INVALID_OBJECT_ID;
return 1;
}
return 0;
}
Re: Remove user created objects -
luckie12 - 16.05.2014
....
Re: Remove user created objects -
luckie12 - 17.05.2014
....
Re: Remove user created objects -
Jefff - 17.05.2014
pawn Код:
#include <a_samp>
new pObject[4][MAX_PLAYERS] = {
{INVALID_OBJECT_ID, ...},
{INVALID_OBJECT_ID, ...},
{INVALID_OBJECT_ID, ...},
{INVALID_OBJECT_ID, ...}
};
DestroyCampFire(playerid)
{
for(new i=0; i != sizeof(pObject); i++)
if(pObject[i][playerid] != INVALID_OBJECT_ID)
{
DestroyObject(pObject[i][playerid]);
pObject[i][playerid] = INVALID_OBJECT_ID;
}
}
public OnPlayerDisconnect(playerid,reason)
{
DestroyCampFire(playerid);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/campfire", cmdtext, true) == 0)
{
if(pObject[0][playerid] != INVALID_OBJECT_ID) SendClientMessage(playerid, -1, "You already have an campfire!");
else{
new Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
pObject[0][playerid] = CreateObject(841, x+5,y,12.5000000,0,0,a); // change the object id
pObject[1][playerid] = CreateObject(841, x+5,y,12.5000000,0,0,a); // change the object id
pObject[2][playerid] = CreateObject(841, x+5,y,12.5000000,0,0,a); // change the object id
pObject[3][playerid] = CreateObject(3461, x+5,y,11.0000000,0,0,a); // change the object id
SendClientMessage(playerid, -1, "You made an campfire!");
}
return 1;
}
if(strcmp("/removecamp", cmdtext, true) == 0)
{
if(pObject[0][playerid] == INVALID_OBJECT_ID) SendClientMessage(playerid, -1, "You don't have an campfire!");
else DestroyCampFire(playerid);
return 1;
}
return 0;
}
Re: Remove user created objects -
luckie12 - 17.05.2014
1 Error:
Код:
C:\Users\Luc\Desktop\Nieuwe map\filterscripts\Camp.pwn(83) : error 033: array must be indexed (variable "pObject")