←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

ExecuteHam + TakeDamage nie zadaje obrażeń...


Best Answer Rivit 11.07.2015 20:23

Dobra, mam, jestem skończonym ******* idiotą

cod_register_perk(nazwa, opis, 40, 120);

+

public cod_class_enabled(id, wartosc)

No pewnie..

 

Zamknąć

Go to the full post

  • +
  • -
Rivit's Photo Rivit 07.07.2015

Witam,

siedzę już ze 3 dni nad tym i nie wiem...

 

Ten kod nie zadaje obrażeń:

public plugin_init()
{
    cod_register_perk(nazwa, opis, 40, 120);
}

public cod_class_enabled(id, wartosc)
{
    used[id] = false
    wartosc_p[id] = wartosc;
}

public cod_perk_used(id)
{
    if(used[id])
    {
        return PLUGIN_CONTINUE;
    }                                                            

fala(id);
used[id] = true

    return PLUGIN_CONTINUE
}

public fala(id)
{    

    new entlist[33], pid, num;
    num = find_sphere_class(id, "player", 400.0, entlist, 32);
    
    for (new i = 0; i < num; i++)
    {
        pid = entlist[i]
        if (is_user_alive(pid) && get_user_team(id) != get_user_team(pid))
            ExecuteHam(Ham_TakeDamage, pid, id, id, wartosc_p[id], 1<<1);
    }
}

 

 

Najpierw myślałem, że coś się gryzie, ale nie! Wyłączyłem wszystkie perki oprócz tego, napisałem klasę na testy (nic nie miała, taka pusta) i dalej to samo, potem zakomentowałem kod, bo myślałem, że może to coś z nim nie tak...

 

Ciekawe jest to, że słychać jakby gracz oberwał, rusza mu ciałem, ale obrażeń nie zadaje.

Temat przewijał się parę razy na forum, ale nie został rozwiązany, osobiście spotykam się z tym pierwszy raz.

Dałem nawet komunikat w pętli graczowi, który obrywa. Komunikat się pokazuje, a obrażenia nie zadają.

 

Używam AMXX 1.8.3 build 3xxx  (nie pamiętam, który to numerek, ale ten starszy)

Quote

  • +
  • -
NoLiFeR's Photo NoLiFeR 07.07.2015

Hmmm... Co to wartosc_p ?

Quote

  • +
  • -
Rivit's Photo Rivit 07.07.2015

No przecież dałem kod xD

 

To losowa wartość z perku :D

 

Próbowałem już zamieniać ją na float, nadal nic :X

Quote

  • +
  • -
Linux''s Photo Linux' 07.07.2015

ExecuteHam(Ham_TakeDamage, pid, id, id, wartosc_p[id], 1<<1);

na

ExecuteHam(Ham_TakeDamage, pid, id, id, float(wartosc_p[id]), 1<<1);

kali sprawdzic i powiedziec czy dziala.

 

Edit: Nie widzialem posta up :(

 

No to zobacz tak

ExecuteHam(Ham_TakeDamage, pid, id, id, 0.0+wartosc_p[id], 1<<1);
Quote

  • +
  • -
NoLiFeR's Photo NoLiFeR 07.07.2015

 ExecuteHam(Ham_TakeDamage, pid, id, id, wartosc_p[id], 1<<1);

zamień na

cod_inflict_damage(id, pid, wartosc_p[id], 0.0)

Quote

  • +
  • -
Rivit's Photo Rivit 07.07.2015

W co to ma do rzeczy?

Probowalem też ExecuteHamB
Quote

  • +
  • -
Best Answer Rivit's Photo Rivit 11.07.2015

Dobra, mam, jestem skończonym ******* idiotą

cod_register_perk(nazwa, opis, 40, 120);

+

public cod_class_enabled(id, wartosc)

No pewnie..

 

Zamknąć

Quote