CMD:lock(playerid, params[])
{
if(GetPVarInt(playerid, "LoggedIn") == 0) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: You need to be logged in to use this command.");
new string[128], Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i<MAX_HOUSES; i++)
{
if(fexist(HousePath(i)))
{
if(IsPlayerInRangeOfPoint(playerid, 2, House[i][ExtPosX], House[i][ExtPosY], House[i][ExtPosZ]) || IsPlayerInRangeOfPoint(playerid, 2, House[i][IntPosX], House[i][IntPosY], House[i][IntPosZ]))
{
if(Player[playerid][HouseID] == House[i][hID])
{
if(House[i][hLocked] == 0)
{
House[i][hLocked] = 1;
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 1);
format(string, sizeof(string), " * %s locks the door to the house.", GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_LIGHTPURPLE, 10, 7000);
SendClientMessage(playerid, COLOR_LIGHTPURPLE, string);
}
else
{
House[i][hLocked] = 0;
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 1);
format(string, sizeof(string), " * %s unlocks the door to the house.", GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_LIGHTPURPLE, 10, 7000);
SendClientMessage(playerid, COLOR_LIGHTPURPLE, string);
}
}
else return SendClientMessage(playerid, COLOR_GREY, "You don't own this house.");
}
}
}
return 1;
}
CMD:lock(playerid, params[])
{
if(GetPVarInt(playerid, "LoggedIn") == 0) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: You need to be logged in to use this command.");
new string[128], Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i<MAX_HOUSES; i++)
{
if(fexist(HousePath(i)))
{
if(IsPlayerInRangeOfPoint(playerid, 2, House[i][ExtPosX], House[i][ExtPosY], House[i][ExtPosZ]) || IsPlayerInRangeOfPoint(playerid, 2, House[i][IntPosX], House[i][IntPosY], House[i][IntPosZ]))
{
if(Player[playerid][HouseID] == House[i][hID])
{
if(House[i][hLocked] == 0)
{
House[i][hLocked] = 1;
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 1);
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 1);//If I repeated this code, it will work
format(string, sizeof(string), " * %s locks the door to the house.", GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_LIGHTPURPLE, 10, 7000);
SendClientMessage(playerid, COLOR_LIGHTPURPLE, string);
}
else
{
House[i][hLocked] = 0;
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 1);
vApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 1); // same here
format(string, sizeof(string), " * %s unlocks the door to the house.", GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_LIGHTPURPLE, 10, 7000);
SendClientMessage(playerid, COLOR_LIGHTPURPLE, string);
}
}
else return SendClientMessage(playerid, COLOR_GREY, "You don't own this house.");
}
}
}
return 1;
}
public OnPlayerSpawn(playerid) { PreloadAnimationLib(playerid, "BD_FIRE"); }
You should use "PreloadAnimationLib" function.
Ex. Код:
public OnPlayerSpawn(playerid) { PreloadAnimationLib(playerid, "BD_FIRE"); } |
I have the animation library pre loaded and I even have the animation used for something else and it works fine there with no changes to ApplyAnimation. Anyone know the issue?
|
It's a samp bug, you should write the Animation code twice, Look at the Applyanimation codes to understand what do I mean:
pawn Код:
|
new variable = 0;
if(variable == 0) //Gets called because variable is equal to 0
{
variable = 1; //variable is now equal to 1
}
else //Gets called because variable is no longer equal to 0
{
variable = 0; //variable is equal to 0 again, nothing changes.
}
CMD:lock(playerid, params[])
{
if(!GetPVarInt(playerid, "LoggedIn")) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: You need to be logged in to use this command.");
for(new i = 0; i < MAX_HOUSES; i++)
{
if(!fexist(HousePath(i))) continue;
if(IsPlayerInRangeOfPoint(playerid, 2, House[i][ExtPosX], House[i][ExtPosY], House[i][ExtPosZ]) || IsPlayerInRangeOfPoint(playerid, 2, House[i][IntPosX], House[i][IntPosY], House[i][IntPosZ]))
{
if(Player[playerid][HouseID] != House[i][hID]) return SendClientMessage(playerid, COLOR_GREY, "You don't own this house.");
new string[60];
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 1);
format(string, sizeof(string), (House[i][hLocked]) ? (" * %s unlocks the door to the house.") : (" * %s locks the door to the house."), GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_LIGHTPURPLE, 10, 7000);
SendClientMessage(playerid, COLOR_LIGHTPURPLE, string);
House[i][hLocked] = (House[i][hLocked]) ? (0) : (1);
break;
}
}
return 1;
}
Your code won't work because you are using 'if' instead of 'else if'. It would work like this:
pawn Код:
pawn Код:
|
No... the command will work, but not the way you want it to.
Try the code I gave you and see if anything changes. |
ApplyAnimation(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync)
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 0, 1);
CMD:lock(playerid, params[])
{
if(!GetPVarInt(playerid, "LoggedIn")) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: You need to be logged in to use this command.");
for(new i = 0; i < MAX_HOUSES; i++)
{
if(!fexist(HousePath(i))) continue;
if(IsPlayerInRangeOfPoint(playerid, 2, House[i][ExtPosX], House[i][ExtPosY], House[i][ExtPosZ]) || IsPlayerInRangeOfPoint(playerid, 2, House[i][IntPosX], House[i][IntPosY], House[i][IntPosZ]))
{
if(Player[playerid][HouseID] != House[i][hID]) return SendClientMessage(playerid, COLOR_GREY, "You don't own this house.");
new string[60];
ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 0, 1);
format(string, sizeof(string), (House[i][hLocked]) ? (" * %s unlocks the door to the house.") : (" * %s locks the door to the house."), GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_LIGHTPURPLE, 10, 7000);
SendClientMessage(playerid, COLOR_LIGHTPURPLE, string);
House[i][hLocked] = (House[i][hLocked]) ? (0) : (1);
break;
}
}
return 1;
}
Oh my god... I don't know how I missed it... you were putting the 'forcesync' parameter in place of the 'timer' parameter.
Код:
ApplyAnimation(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync) pawn Код:
Use this: pawn Код:
https://sampwiki.blast.hk/wiki/ApplyAnimation |