←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Register_ham - pomoc.

Zablokowany

Nenczoks - zdjęcie Nenczoks 12.10.2010

Witam. Doszedłem jak zrobić ,że za zadane obrażenia to dana liczba punktów. Lecz mam problem bo za dużo ich nabija..

RegisterHam(Ham_TraceAttack, "player", "dmg");


po czym

public dmg(idinflictor, idattacker, Float:damage, damagebits)
{
if(is_user_connected(idinflictor) || is_user_connected(idattacker) && !is_user_zombie(idattacker))
{
punkty[idattacker] += floatround(damage);
}
return HAM_HANDLED;
}


i mam problem. Jeżeli zadałem z m4 np. 6 obrażeń to powinien dostać 6 punktów a dostaje chyba z 25 .. Proszę o pomoc! :)

Oraz chciałbym w hud dodałem ,że po otwarciu menu pojawia się ->

set_hudmessage(255, 170, 0, 0.7, 0.01, 0, 6.0, 3.0)
show_hudmessage(id, "Twoje punkty^n %i",punkty[id])


I jak zrobić ,że po zamknięciu menu to, to od razu znika?
Użytkownik Nenczoks edytował ten post 12.10.2010 09:40
Odpowiedz

  • +
  • -
Ortega - zdjęcie Ortega 12.10.2010

Zastanów się gdzie robisz błąd. ( polecam przetłumaczyć sobie parametry tego const'a )
 /**
* Description: Usually called whenever an entity takes any kind of damage.
* Inflictor is the entity that caused the damage (such as a gun).
* Attacker is the entity that tirggered the damage (such as the gun's owner).
* Forward params: function(this, idinflictor, idattacker, Float:damage, damagebits);
* Return type: Integer.
* Execute params: ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
*/
Ham_TakeDamage

Najprościej, zrób sobie zmienna globalną tablicę i podczas wykonania Hook'a zrób postinkrementację dla zmiennej od [ iAttacker ].

ad2. Wyświetl na tym samym kanale pustą wiadomość.
Odpowiedz

Nenczoks - zdjęcie Nenczoks 12.10.2010

Jak byś mógł mi wykonać albo w jakiś sposób pomóc?

Z tym drugim to w jednym pluginie mam dwa menu. Dla zombie i dla ocalałych. Więc wiesz..
Po pokazaniu się menu, pokazuje w hudzie punkty a po zamknięciu te punkty no wiesz - ta informacja znika.

Bo wiesz, pierwszy raz robię coś z register_ham. Wiem powinienem sam ale ... no bardzo Cie proszę.
Użytkownik Nenczoks edytował ten post 12.10.2010 16:29
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 12.10.2010

public dmg(this, idinflictor, idattacker, Float:damage, damagebits)
if(is_user_connected(this) || is_user_connected(idattacker) && !is_user_zombie(idattacker))
        {
                punkty[idattacker] += floatround(damage);
        }
        return HAM_HANDLED;
}

czytanie ze zrozumieniem
ale ten warunek to jakiś dziwny

co do 2
ustal staly kanał na którym będzie to wyświetlane (zobacz sobie parametry funkcji set_)
a potem jak chcesz to usunąć nadpisujesz na tym samym kanale pustą wiadomość :D
Odpowiedz

Nenczoks - zdjęcie Nenczoks 12.10.2010

Tego też nie rozumiem heh :D

Ale co do tych punkt'ów dziękuje.. Jednak mówię żeby np. zadam 6 hp zombiakowi to doda mi punktów 6. W tej chwili dodaje tak samo jak wtedy heh.
Odpowiedz

  • +
  • -
Ortega - zdjęcie Ortega 12.10.2010

Przecież dodajesz do tablicy wartość obrażeń to nie dziwne, że jakieś liczby, a powinno dodawać 1.
punkty[ idattacker ] ++;
Odpowiedz

Nenczoks - zdjęcie Nenczoks 12.10.2010

public event_dmg(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(is_user_connected(this) || is_user_connected(idattacker) && !is_user_zombie(idattacker))
{
punkty_czlowieka[idattacker] ++;
}
return HAM_HANDLED;
}


I nie dodaje punktów w ogóle :)
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 12.10.2010

skoro ma dodawać 6 punktów za 6 dmg to był dobrze...
public event_dmg(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(is_user_zombie(this) && !is_user_zombie(idattacker))
        {
                punkty_czlowieka[idattacker]+=floatround(damage);
        }
        return HAM_HANDLED;
}
a skoro ci źle dodaje to może coś też to łapie i zmienia dmg
Odpowiedz

Nenczoks - zdjęcie Nenczoks 12.10.2010

Ten kod co mi dałeś to w ogóle nie dodaje punkt'ów :F

Dodano 13 październik 2010 - 15:28:
?

Dodano 13 październik 2010 - 15:28:
?

Dodano 13 październik 2010 - 23:23:
? to jak moi drodzy? :)

Dodano 16 październik 2010 - 16:33:
?
Odpowiedz
Zablokowany