SA-MP Forums Archive
Explode cmd - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Explode cmd (/showthread.php?tid=504627)



Explode cmd - LocMax - 05.04.2014

pawn Код:
CMD:explode(playerid,params[])
{
    if(PlayerInfo[playerid][Admin] >= 1 || IsPlayerAdmin(playerid))
    {
        if(isnull(params)) return SendClientMessage(playerid, RED, "/explode [target]");
        else
        {
            if(!IsPlayerConnected(strval(params)) || strval(params) == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED, "Target ID is not valid.");
            new Float:X, Float:Y, Float:Z, Float:ohp, Float:oar, Float:nhp, Float:nar;
            GetPlayerPos(strval(params), X, Y, Z);
            GetPlayerHealth(strval(params), ohp);
            GetPlayerArmour(strval(params), oar);
            CreateExplosion(X, Y, Z, 7, 500);
            SendClientMessage(playerid, -1, "Target has been exploded. Checking results...");
            GetPlayerHealth(strval(params), nhp);
            GetPlayerArmour(strval(params), nar);
            if(oar == nar) SendClientMessage(playerid, -1, "Target's armour did not change.");
            else if(nar != oar) SendClientMessage(playerid, -1, "Target's armour changed.");
            if(ohp == nhp) SendClientMessage(playerid, -1, "Target's health did not change.");
            else if(nhp != ohp) SendClientMessage(playerid, -1, "Target's health changed.");
            new stra[110];
            format(stra,sizeof(stra), "(ADMIN) %s(%d) (level: %d) has exploded %s(%d). (/explode)", PlayerName(playerid), playerid, PlayerInfo[playerid][Admin], PlayerName(strval(params)), strval(params));
            SendAdminMessage(stra, 1);
            stra = "\0";
        }
    }
    else return SendClientMessage(playerid, RED, "Access Denied. Admin level 1 is required to use this command.");
    return 1;
}
The problem is, after I explode someone, the health/armour will change but the message will still show that it did NOT change, anybody have any tips?


Re: Explode cmd - Dokins - 05.04.2014

pawn Код:
CMD:explode(playerid,params[])
{
    if(PlayerInfo[playerid][Admin] >= 1 || IsPlayerAdmin(playerid))
    {
        if(isnull(params)) return SendClientMessage(playerid, RED, "/explode [target]");
        else
        {
            if(!IsPlayerConnected(strval(params)) || strval(params) == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED, "Target ID is not valid.");
            new Float:X, Float:Y, Float:Z, Float:ohp, Float:oar, Float:nhp, Float:nar;
            GetPlayerPos(strval(params), X, Y, Z);
            GetPlayerHealth(strval(params), ohp);
            GetPlayerArmour(strval(params), oar);
            CreateExplosion(X, Y, Z, 7, 500);
            SendClientMessage(playerid, -1, "Target has been exploded. Checking results...");
            GetPlayerHealth(strval(params), nhp);
            GetPlayerArmour(strval(params), nar);
            if(oar == nar) SendClientMessage(playerid, -1, "Target's armour did not change.");
            if(nar != oar) SendClientMessage(playerid, -1, "Target's armour changed.");
            if(ohp == nhp) SendClientMessage(playerid, -1, "Target's health did not change.");
            if(nhp != ohp) SendClientMessage(playerid, -1, "Target's health changed.");
            new stra[110];
            format(stra,sizeof(stra), "(ADMIN) %s(%d) (level: %d) has exploded %s(%d). (/explode)", PlayerName(playerid), playerid, PlayerInfo[playerid][Admin], PlayerName(strval(params)), strval(params));
            SendAdminMessage(stra, 1);
            stra = "\0";
        }
    }
    else return SendClientMessage(playerid, RED, "Access Denied. Admin level 1 is required to use this command.");
    return 1;
}
I think it was defaulting else if.

Try that.

Also take a look at this: https://sampforum.blast.hk/showthread.php?tid=167419


Re: Explode cmd - LocMax - 05.04.2014

Nope, still same.


Re: Explode cmd - Dokins - 05.04.2014

pawn Код:
CMD:explode(playerid,params[])
{
    if(PlayerInfo[playerid][Admin] >= 1 || IsPlayerAdmin(playerid))
    {
        if(isnull(params)) return SendClientMessage(playerid, RED, "/explode [target]");
        else
        {
            if(!IsPlayerConnected(strval(params)) || strval(params) == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED, "Target ID is not valid.");
            new Float:X, Float:Y, Float:Z, Float:ohp, Float:oar, Float:nhp, Float:nar;
            GetPlayerPos(strval(params), X, Y, Z);
            GetPlayerHealth(strval(params), ohp);
            GetPlayerArmour(strval(params), oar);
            CreateExplosion(X, Y, Z, 7, 500);
            SendClientMessage(playerid, -1, "Target has been exploded. Checking results...");
            GetPlayerHealth(strval(params), nhp);
            GetPlayerArmour(strval(params), nar);
            if(floatcmp(ohp, nhp) == 0) SendClientMessage(playerid, -1, "Target's armour did not change.");
            if(floatcmp(nar, oar) == -1) SendClientMessage(playerid, -1, "Target's armour changed.");
            if(floatcmp(ohp, nhp)== 0)  SendClientMessage(playerid, -1, "Target's health did not change.");
            if(floatcmp(nhp, ohp) == -1) SendClientMessage(playerid, -1, "Target's health changed.");
            new stra[110];
            format(stra,sizeof(stra), "(ADMIN) %s(%d) (level: %d) has exploded %s(%d). (/explode)", PlayerName(playerid), playerid, PlayerInfo[playerid][Admin], PlayerName(strval(params)), strval(params));
            SendAdminMessage(stra, 1);
            stra = "\0";
        }
    }
    else return SendClientMessage(playerid, RED, "Access Denied. Admin level 1 is required to use this command.");
    return 1;
}
I used:

https://sampwiki.blast.hk/wiki/Floatcmp

Think it might be that.


Re: Explode cmd - LocMax - 05.04.2014

Still same ._.

I explode myself, I loose health and I get message:
"Target's armour did not change."
'Target's health did not change."

while it should be:
"Target's armour did not change."
"Target's health changed."


Re: Explode cmd - Dokins - 05.04.2014

pawn Код:
CMD:explode(playerid,params[])
{
    if(PlayerInfo[playerid][Admin] >= 1 || IsPlayerAdmin(playerid))
    {
        if(isnull(params)) return SendClientMessage(playerid, RED, "/explode [target]");
        else
        {
            if(!IsPlayerConnected(strval(params)) || strval(params) == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED, "Target ID is not valid.");
            new Float:X, Float:Y, Float:Z, Float:ohp, Float:oar, Float:nhp, Float:nar;
            GetPlayerPos(strval(params), X, Y, Z);
            GetPlayerHealth(strval(params), ohp);
            GetPlayerArmour(strval(params), oar);
            CreateExplosion(X, Y, Z, 7, 500);
            SendClientMessage(playerid, -1, "Target has been exploded. Checking results...");
            if(GetPlayerHealth(strval(params), nar) == oar)
            {
                SendClientMessage(playerid, -1, "Target's armour did not change.");
            }
            if(GetPlayerArmour(strval(params), nar) != oar)
            {
                SendClientMessage(playerid, -1, "Target's armour changed.");
            }
            if(GetPlayerHealth(strval(params), nhp) == ohp)
            {
                SendClientMessage(playerid, -1, "Target's health did not change.");
            }
            if(GetPlayerHealth(strval(params), nhp) != ohp)
            {
                SendClientMessage(playerid, -1, "Target's health changed.");
            }
           
            new stra[110];
            format(stra,sizeof(stra), "(ADMIN) %s(%d) (level: %d) has exploded %s(%d). (/explode)", PlayerName(playerid), playerid, PlayerInfo[playerid][Admin], PlayerName(strval(params)), strval(params));
            SendAdminMessage(stra, 1);
            stra = "\0";
        }
    }
    else return SendClientMessage(playerid, RED, "Access Denied. Admin level 1 is required to use this command.");
    return 1;
}
Give that a try, made it a little more clearer for myself.


Re: Explode cmd - LocMax - 05.04.2014

Well yeah, it works now but gotta test it on a hacker tho XD


Re: Explode cmd - Dokins - 05.04.2014

Have fun with that!


Grant.


Re: Explode cmd - PrivatioBoni - 05.04.2014

Apparently explosion type 8 is invisible so may be better for this? Unless I'm missing something. I've never used explosion 8 from what I remember, so it may well not work how I think it does.