Register_ham - pomoc.
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..
po czym
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ę ->
I jak zrobić ,że po zamknięciu menu to, to od razu znika?
Użytkownik Nenczoks edytował ten post 12.10.2010 09:40
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
Ortega
12.10.2010
Zastanów się gdzie robisz błąd. ( polecam przetłumaczyć sobie parametry tego const'a )
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ść.
/**
* 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ść.
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
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
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ść
Nenczoks 12.10.2010
Tego też nie rozumiem heh
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.
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.
Ortega
12.10.2010
Przecież dodajesz do tablicy wartość obrażeń to nie dziwne, że jakieś liczby, a powinno dodawać 1.
punkty[ idattacker ] ++;
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
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
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:
?
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:
?