Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Sprawdzanie lvlu gracza


  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 18.05.2011 15:33

Witam. Wpadłem na taki pomysł, aby sprawdzać czy gracz ma większy lvl niż 100tny, a jeżeli tak to, żeby miał z tego jakiś bonus ;] Jednak jak zwykle coś spiepsułem...

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];

new const nazwa[] = "Snajper";
new const opis[] = "150 procent obrazen z AWP(+inteligencja), 1/2 szansy na natychmiastowe zabicie z noza(PPM)";
new const bronie = 1<<CSW_DEAGLE | 1<<CSW_AWP;
new const zdrowie = 20;
new const kondycja = 25;
new const inteligencja = 0;
new const wytrzymalosc = 20;

new 100lvl = cod_get_user_level(id);

public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
ma_klase[id] = true;

public cod_class_disabled(id)
ma_klase[id] = false;

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);

if(weapon == CSW_KNIFE && damage > 20.0 && random_num(1,2) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

if(weapon == CSW_AWP)
cod_inflict_damage(idattacker, this, damage*0.5, 0.5, idinflictor, damagebits);

if(100lvl =< 100)
{
if(get_user_weapon(idattacker) == CSW_AWP && !random(3) && damagebits & DMG_BULLET)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}

}

return HAM_IGNORED;
}

public ProSnajper
{
if(100lvl =< 100)
{
nazwa[] = "Profesjonalny Snajper";
new const opis[] = "1/3 na natychmiastowe zabicie, 150%% obrazen z AWP(+inteligencja), 1/2 szansy na natychmiastowe zabicie z noza(PPM)";
new const zdrowie = 40;
new const kondycja = 45;
new const inteligencja = 20;
new const wytrzymalosc = 40;
}
}


Takie errory mam:
123.sma(19) : error 020: invalid symbol name ""
123.sma(53) : error 029: invalid expression, assumed zero
123.sma(53) : error 029: invalid expression, assumed zero
123.sma(53) : error 029: invalid expression, assumed zero
123.sma(53) : fatal error 107: too many error messages on one line

codmod.inc mam - uprzedzam głupie pytania...

Gdzie jest błąd?

Użytkownik kisiel96 edytował ten post 18.05.2011 15:33

  • +
  • -
  • 0

#2 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 18.05.2011 15:52

z tego co pamiętam to zmienna nie może sie zaczynać od liczy (jakoś tak)

nie znam się na codzie, ale

new 100lvl = cod_get_user_level(id); 


to było na początku czy sam to dodałeś?

PS co z tego że masz codmod.inc jak nie jest w include (chyba że w codzie ten plik jest sam w include to sory)

#3 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 18.05.2011 16:09

Sam dodałem... A co do codmod.inc - źle sformułowałem... Jest tam gdzie powinien być.
  • +
  • -
  • 0

#4 Optymalny193

    Wszechwidzący

  • Zbanowany

Reputacja: 30
Życzliwy

  • Postów:294
  • Imię:Paweł
  • Lokalizacja:Europa
Offline

Napisano 18.05.2011 16:19

Znaczek powinien być chyba taki:
>=

a nie taki:
=<


#5 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 18.05.2011 16:34

tak, powinno być "większe-równe" a nie na odwrót

Dodano 18 maj 2011 - 16:36:
ale dziwnie podświetla tą zmienną 100lvl na niebiesko... spróbuj zamienić wszystkie 100lvl na np. "lvl100"

#6 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 18.05.2011 17:21

Faktycznie... Dzięki... Ale co z faktem, iż nie chce się to skompilować...? Próbowałem zrobić przez new bool:ma_lvl[33] i true i false ale też nie wyszło...

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits, id)


Wystarczyło tu dopisać id :]
Aczkolwiek, nie wiem jak powiększyć statystyki jeszcze...
I zrobiłem przez new bool:malvl[33] - również sie skompilowało :] Teraz tylko muszę sprawdzić czy to działa w grze oraz wykombinować dodawanie pktów ;] (pewnie rozwiąże to tak, jak w perkach typu buty komandosa)

Użytkownik kisiel96 edytował ten post 18.05.2011 17:51

  • +
  • -
  • 0

#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 19.05.2011 06:57

new 100lvl = cod_get_user_level(id);
usun to nie ma to sensu

public ProSnajper
{
        if(cod_get_user_level(id) >= 100)
                {
                        nazwa[] = "Profesjonalny Snajper";
                        new const opis[] = "1/3 na natychmiastowe zabicie, 150%% obrazen z AWP(+inteligencja), 1/2 szansy na natychmiastowe zabicie z noza(PPM)";
                        new const zdrowie = 40;
                        new const kondycja = 45;
                        new const inteligencja = 20;
                        new const wytrzymalosc = 40;
                }
}

f(cod_get_user_level(id) >= 100)
                {
                        if(get_user_weapon(idattacker) == CSW_AWP && !random(3) && damagebits & DMG_BULLET)
                                cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
                }

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych