Help about SWAT Rope bug
#1

In this script, when two players use command duday at one time, after them finished, there're some bug of object. The object of the rope will appear in their position and it's not destroyed (I think the player who use this command later will having bug object of rope). How to fix it.
When only one player use this command, it's ok, no error. But when more than 2 player, there some bug of later people.
Код HTML:
new rope[58];
CMD:duday(playerid,params[])
{
    new Float:X, Float:Y, Float:Z, Float:Angle, Float:health;

    GetPlayerHealth(playerid,health);
    SetPVarFloat(playerid, "pPreGodHealth", health);
    SetPlayerHealth(playerid, 0x7FB00000);
   
    GetPlayerPos(playerid, X, Y, Z);
    GetXYInFrontOfPlayer(playerid, X, Y, 2.0);
   
    SetPlayerPos(playerid, X, Y, Z);
    SetPVarInt(playerid,"rappelling",1);
    PlayerInfo[playerid][pRope] -= 2;
    GameTextForPlayer(playerid, "~B~S.W.A.T ~R~Du day", 5000, 1);
    rope[1] = CreateDynamicObject(19089, X, Y, Z+5, 0, 0, Angle);
    rope[2] = CreateDynamicObject(19089, X, Y, Z+3, 0, 0, Angle);
    rope[3] = CreateDynamicObject(19089, X, Y, Z+1, 0, 0, Angle);
    rope[4] = CreateDynamicObject(19089, X, Y, Z-2, 0, 0, Angle);
    rope[5] = CreateDynamicObject(19089, X, Y, Z-5, 0, 0, Angle);
    rope[6] = CreateDynamicObject(19089, X, Y, Z-7, 0, 0, Angle);
    rope[7] = CreateDynamicObject(19089, X, Y, Z-9, 0, 0, Angle);
    rope[8] = CreateDynamicObject(19089, X, Y, Z-10, 0, 0, Angle);
    rope[9] = CreateDynamicObject(19089, X, Y, Z-12, 0, 0, Angle);
    rope[10] = CreateDynamicObject(19089, X, Y, Z-17, 0, 0, Angle);
    rope[11] = CreateDynamicObject(19089, X, Y, Z-25, 0, 0, Angle);
    rope[12] = CreateDynamicObject(19089, X, Y, Z-28, 0, 0, Angle);
    rope[13] = CreateDynamicObject(19089, X, Y, Z-31, 0, 0, Angle);
    rope[14] = CreateDynamicObject(19089, X, Y, Z-34, 0, 0, Angle);
    rope[15] = CreateDynamicObject(19089, X, Y, Z-38, 0, 0, Angle);
    rope[16] = CreateDynamicObject(19089, X, Y, Z-41, 0, 0, Angle);
    rope[17] = CreateDynamicObject(19089, X, Y, Z-45, 0, 0, Angle);
    rope[18] = CreateDynamicObject(19089, X, Y, Z-49, 0, 0, Angle);
    rope[19] = CreateDynamicObject(19089, X, Y, Z-51, 0, 0, Angle);
    rope[20] = CreateDynamicObject(19089, X, Y, Z-57, 0, 0, Angle);
    rope[21] = CreateDynamicObject(19089, X, Y, Z-61, 0, 0, Angle);
    rope[22] = CreateDynamicObject(19089, X, Y, Z-65, 0, 0, Angle);
    rope[23] = CreateDynamicObject(19089, X, Y, Z-69, 0, 0, Angle);
    rope[24] = CreateDynamicObject(19089, X, Y, Z-73, 0, 0, Angle);
    rope[25] = CreateDynamicObject(19089, X, Y, Z-77, 0, 0, Angle);
    rope[26] = CreateDynamicObject(19089, X, Y, Z-80, 0, 0, Angle);
    rope[27] = CreateDynamicObject(19089, X, Y, Z-85, 0, 0, Angle);
    rope[28] = CreateDynamicObject(19089, X, Y, Z-89, 0, 0, Angle);
    rope[29] = CreateDynamicObject(19089, X, Y, Z-90, 0, 0, Angle);
    rope[30] = CreateDynamicObject(19089, X, Y, Z-95, 0, 0, Angle);
    rope[31] = CreateDynamicObject(19089, X, Y, Z-87, 0, 0, Angle);
    rope[32] = CreateDynamicObject(19089, X, Y, Z-100, 0, 0, Angle);
    rope[33] = CreateDynamicObject(19089, X, Y, Z-105, 0, 0, Angle);
    rope[34] = CreateDynamicObject(19089, X, Y, Z-110, 0, 0, Angle);
    rope[35] = CreateDynamicObject(19089, X, Y, Z-115, 0, 0, Angle);
    rope[36] = CreateDynamicObject(19089, X, Y, Z-120, 0, 0, Angle);
    rope[37] = CreateDynamicObject(19089, X, Y, Z-125, 0, 0, Angle);
    rope[38] = CreateDynamicObject(19089, X, Y, Z-130, 0, 0, Angle);
    rope[39] = CreateDynamicObject(19089, X, Y, Z-135, 0, 0, Angle);
    rope[40] = CreateDynamicObject(19089, X, Y, Z-140, 0, 0, Angle);
    rope[41] = CreateDynamicObject(19089, X, Y, Z-145, 0, 0, Angle);
    rope[42] = CreateDynamicObject(19089, X, Y, Z-150, 0, 0, Angle);
    rope[43] = CreateDynamicObject(19089, X, Y, Z-155, 0, 0, Angle);
    rope[45] = CreateDynamicObject(19089, X, Y, Z-160, 0, 0, Angle);
    rope[46] = CreateDynamicObject(19089, X, Y, Z-165, 0, 0, Angle);
    rope[47] = CreateDynamicObject(19089, X, Y, Z-170, 0, 0, Angle);
    rope[48] = CreateDynamicObject(19089, X, Y, Z-175, 0, 0, Angle);
    rope[49] = CreateDynamicObject(19089, X, Y, Z-180, 0, 0, Angle);
    rope[50] = CreateDynamicObject(19089, X, Y, Z-185, 0, 0, Angle);
    rope[51] = CreateDynamicObject(19089, X, Y, Z-190, 0, 0, Angle);
    rope[52] = CreateDynamicObject(19089, X, Y, Z-195, 0, 0, Angle);
    rope[53] = CreateDynamicObject(19089, X, Y, Z-200, 0, 0, Angle);
    rope[54] = CreateDynamicObject(19089, X, Y, Z-205, 0, 0, Angle);
    rope[55] = CreateDynamicObject(19089, X, Y, Z-210, 0, 0, Angle);
    rope[56] = CreateDynamicObject(19089, X, Y, Z-215, 0, 0, Angle);
    rope[57] = CreateDynamicObject(19089, X, Y, Z-220, 0, 0, Angle);
    ApplyAnimation(playerid,"ped","abseil",4.0,0,0,0,1,0);
    return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new Float:health;
    if((newkeys && KEY_SPRINT) && GetPVarInt(playerid, "rappelling") == 1)
    {
        for(new i = 0 ;i < 58; i++)
        {
           DestroyDynamicObject(rope[i]);
        }
        health = GetPVarFloat(playerid, "pPreGodHealth");
        SetPlayerHealth(playerid,health);
        DeletePVar(playerid, "pPreGodHealth");
        SetPVarInt(playerid,"rappelling",0);
        ClearAnimations(playerid);
        return 1;
    }
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)