Jump to content

Doplnění životu a vesty


-KwC-Tonny

Recommended Posts

Ahoj předvádím vám svůj ůplně první FS já vím je to hodně lehke ale nějak se začít musí a protože nevím jestli jde protože nefunguje xEl tak vám jsem dám pwn a upravte si to jak chcete ;):klidek:

 

#include 

#pragma tabsize 0

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

public OnPlayerCommandText (playerid, cmdtext[])
{
    dcmd(hparmour, 8, cmdtext);
    return 0;
}

new bool:Block[100];

    public OnPlayerConnect(playerid)
{
    Block[playerid] = true;

return 1;
}

dcmd_hparmour(playerid, params[])
{
if(Block[playerid] == true)
{
#pragma unused params

 SetPlayerHealth(playerid, 100);
 SetPlayerArmour(playerid, 100);
 SendClientMessage(playerid, 0xFF0000FF, "Doplnil sis zdraví a vestu");

Block[playerid] = false;
    SetTimerEx("Odblokovat", 30000, 0, "i", playerid);
}
return 1;
}

forward Odblokovat(playerid);
public Odblokovat(playerid)
{
if(IsPlayerConnected(playerid)) Block[playerid] = true;
return 1;
}

Link to comment
Share on other sites

Bylo by lepší udělat to obráceně (false = povoleno & true = zakázáno), nemusel bys pak v OnPlayerConnect nastavovat hodnotu na true.

 

Nebo když už to chceš takto, tak jsi mohl použít.

new bool:Block[100] = true;
Link to comment
Share on other sites

Bylo by lepší udělat to obráceně (false = povoleno & true = zakázáno), nemusel bys pak v OnPlayerConnect nastavovat hodnotu na true.

 

Nebo když už to chceš takto, tak jsi mohl použít.

new bool:Block[100] = true;

 

V obou případech bys ale v OnPlayerDisconnect musel zjistit, jestli nemá hráč nastaven zákaz používání a případně proměnnou přenastavit na opačnou hodnotu.

 

Také tomu chybí pojistka, že se public vyvolaný timerem nespustí na prázdno. Při OnPlayerDisconnect ti chybí KillTimer.

 

Je zbytečné použít dcmd, pokud nevyužiješ parametry. Stačí se podívat, přes kolik podmínek musí projít příkaz s dcmd:

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1   
Link to comment
Share on other sites

new bool:Block[100] = true;

blbosť, to sa nastaví hodnota "true" iba premene Block[0] a ostatných 99 (0-99) bude mať hodnotu false... takže

 

new bool:Block[100] = {true,...};

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...