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

Jaka jest różnica między eventami


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

#1 sokojoko

    Pomocny

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:47
  • Lokalizacja:warszawa
Offline

Napisano 21.08.2010 02:21

Jak w temacie czy się różnią te dwa eventy w praktyce, i w składni
RegisterHam(Ham_Killed, "player", "Death", 1);

register_event("DeathMsg", "Death", "ade");


Z tego co zauważyłem register_event nie działa jak sam sie zabijesz... potwierdzi ktoś ?:D
  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 21.08.2010 13:25

Ham_Killed jest zdarzeniem bezpośrednim - zawsze kiedy ktoś ginie jest wywoływany; funkcja
Death(ofiara){
	new zabojca = get_user_attacker(id); // nie zawsze się zgadza :/
}

"DeathMsg" jest wywoływany przy pokazaniu w prawym górnym rogu komunikatu śmierci; funkcja
Death(){
	new ofiara = read_data(2);
	new zabojca = read_data(1); // zasze się zgadza
}
jeśli gracz zginie bez globalnej informacji (np. user_silentkill() czy wybuch bomby) to śmierć gracza nie jest odnotowywana; nie jest także łapana w przypadku message_begin(MSG_ALL, get_user_msgid("DeathMsg")) -> trzeba użyć emessage_*


BTW flagi "de" i nie mają sensu dla globalnego eventu "a"
  • +
  • -
  • 2

#3 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 21.08.2010 14:34

pozatym mozesz w hamsandwichu zlapac moment bezposrednio przed jak i po smierci przez co masz wiecej mozliwosci :D nigdy tego nie sprawdzalem ale zapewne mozna za pomoca ktorejs z SetHam... zmienic np zabojce :D
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#4 sokojoko

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:47
  • Lokalizacja:warszawa
Offline

Napisano 21.08.2010 19:25

jak przerobić (fragment COD MODa ten poniżej) tak aby wykrywał śmierć przez zabicie siebie samego

czy dorobić oddzielny event z warunkiem

RegisterHam(Ham_Killed, "player", "Death1",1);
.
.
.
Death1(id){
if(!get_user_attacker(id)){
return PLUGIN_CONTINUE;
}else{
.
.
.
}
}


KOD

register_event("DeathMsg", "Death", "ade");
.
.
.
public Death()
{
new id = read_data(2);
new attacker = read_data(1);

if(!is_user_alive(attacker) || !is_user_connected(attacker))
return PLUGIN_CONTINUE;

new weapon = get_user_weapon(attacker);
new zdrowie = get_user_health(attacker);

if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
{
new nowe_doswiadczenie = 0;

nowe_doswiadczenie += doswiadczenia_za_zabojstwo;

if(klasa_gracza[id] == Rambo && klasa_gracza[attacker] != Rambo)
nowe_doswiadczenie += doswiadczenia_za_zabojstwo*2;

if(poziom_gracza[id] > poziom_gracza[attacker])
nowe_doswiadczenie += poziom_gracza[id] - poziom_gracza[attacker];

if(klasa_gracza[attacker] == Rambo || informacje_przedmiotu_gracza[attacker][0] == 15 && maxClip[weapon] != -1)
{

new nowe_zdrowie = (zdrowie+20<maksymalne_zdrowie_gracza[attacker])? zdrowie+20: maksymalne_zdrowie_gracza[attacker];
set_user_clip(attacker, maxClip[weapon]);
set_user_health(attacker, nowe_zdrowie);
}
#if defined BOTY
if(is_user_bot2(attacker) && random(9) == 0)
WyrzucPrzedmiot(id);
#endif
if(!informacje_przedmiotu_gracza[attacker][0])
DajPrzedmiot(attacker, random_num(1, sizeof nazwy_przedmiotow-1));

if(informacje_przedmiotu_gracza[attacker][0] == 14)
{
new nowe_zdrowie = (zdrowie+50<maksymalne_zdrowie_gracza[attacker])? zdrowie+50: maksymalne_zdrowie_gracza[attacker];
set_user_health(attacker, nowe_zdrowie);
}

set_hudmessage(255, 212, 0, 0.50, 0.33, 1, 6.0, 4.0);
ShowSyncHudMsg(attacker, SyncHudObj2, "+%i", nowe_doswiadczenie);

doswiadczenie_gracza[attacker] += nowe_doswiadczenie;
}

SprawdzPoziom(attacker);

if(informacje_przedmiotu_gracza[id][0] == 7 && random_num(1, informacje_przedmiotu_gracza[id][1]) == 1)
set_task(0.1, "Wskrzes", id+ZADANIE_WSKRZES);

return PLUGIN_CONTINUE;
}

Użytkownik sokojoko edytował ten post 21.08.2010 22:11

  • +
  • -
  • 0




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

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