Set Players Armour
#1

Hello, well im trying to make a drug give player armour when he uses it, it should give him +3% of armour, but if the player already has 30% of armour the drug shouldent give him no armour, here is my code, I tried to set something myself but fail(never had deals with this kinda thing)

Код:
Crackeffect(playerid)
{
if (GetPlayerArmour(playerid)<1)
{
Jizzing[playerid] = SetTimerEx("EffectTime0",JIZZTIME,0,"i",playerid);
SendClientMessage(playerid, COLOR_WHITE, "You started using {FF9900}crack");
SetPlayerDrunkLevel (playerid, 6000);
SetPlayerWeather(playerid, -66);
SetPlayerArmour(playerid,+3.0);
SetPVarInt(playerid,"usingdrugs",1);
}
else if (GetPlayerArmour(playerid)>29)
{
SendClientMessage(playerid,0xFFFFFFFF,"You cant reach a higher armour level from now.");
}
}
Reply
#2

pawn Код:
Crackeffect(playerid)
{
    new Float:a;
    GetPlayerArmour(playerid,a);
    if (a >= 30) return SendClientMessage(playerid,0xFFFFFFFF,"You cant reach a higher armour level from now.");
    Jizzing[playerid] = SetTimerEx("EffectTime0",JIZZTIME,0,"i",playerid);
    SendClientMessage(playerid, COLOR_WHITE, "You started using {FF9900}crack");
    SetPlayerDrunkLevel (playerid, 6000);
    SetPlayerWeather(playerid, -66);
    SetPlayerArmour(playerid,a + 3);
    GetPlayerArmour(playerid,a);
    if(a > 30) SetPlayerArmour(playerid,30);
    SetPVarInt(playerid,"usingdrugs",1);
}
Reply
#3

try this
pawn Код:
Crackeffect(playerid)
{
    if(GetPlayerArmour(playerid) < 29)
    {
        Jizzing[playerid] = SetTimerEx("EffectTime0", JIZZTIME, 0, "i", playerid);
        SendClientMessage(playerid, COLOR_WHITE, "You started using {FF9900}crack");
        SetPlayerDrunkLevel(playerid, 6000);
        SetPlayerWeather(playerid, -66);
        SetPlayerArmour(playerid, 3.0);
        SetPVarInt(playerid, "usingdrugs", 1);
    }
    else SendClientMessage(playerid,0xFFFFFFFF,"You cant reach a higher armour level from now.");
}
Reply
#4

Always use indentation, it's easier to read and process.
Also Armour and Health, are floats.
Here you go:

pawn Код:
Crackeffect(playerid)
{
    if(GetPlayerArmour(playerid)<1.0)
    {
        Jizzing[playerid] = SetTimerEx("EffectTime0",JIZZTIME,0,"i",playerid);
        SendClientMessage(playerid, COLOR_WHITE, "You started using {FF9900}crack");
        SetPlayerDrunkLevel (playerid, 6000);
        SetPlayerWeather(playerid, -66);
        SetPlayerArmour(playerid,GetPlayerArmour(playerid)+ 3.0);
        SetPVarInt(playerid,"usingdrugs",1);
    }
    else
    {
        SendClientMessage(playerid,0xFFFFFFFF,"You cant reach a higher armour level from now.");
        return 1;
    }
    return 1;
}
Edit: I got pwn twice ®_©
Reply
#5

varthshenon, thank you for your code, it saved my day.


-Thanks to others aswel.
Reply
#6

Quote:
Originally Posted by Compton
Посмотреть сообщение
varthshenon, thank you for your code, it saved my day.


-Thanks to others aswel.
pawn Код:
Crackeffect(playerid)
{
    if(GetPlayerArmour(playerid) >= 29.0) return SendClientMessage(playerid,0xFFFFFFFF,"You cant reach a higher armour level from now.");
    //if(GetPVarInt(playerid,"usingdrugs") == 1) return SendClientMessage(playerid,0xFFFFFFFF,"You are already using drugs."); //
    Jizzing[playerid] = SetTimerEx("EffectTime0",JIZZTIME,0,"i",playerid);
    SendClientMessage(playerid, COLOR_WHITE, "You started using {FF9900}crack");
    SetPlayerDrunkLevel (playerid, 6000);
    SetPlayerWeather(playerid, -66);
    SetPlayerArmour(playerid,GetPlayerArmour(playerid)+ 3.0);
    SetPVarInt(playerid,"usingdrugs",1);
    return 1;
}
Saves you a couples of lines, and btw why is there no check to see if the user is already using drugs? SetPVarInt(playerid,"usingdrugs",1); ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)