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

Gracz zginął na respie


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

#1 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 08.06.2011 21:13

Witam. Da się jakoś sprawdzić, czy dany gracz zginął na respie (lub też buyzone, prawie to samo)?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#2 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 08.06.2011 22:08

try:

#include <amxmodx>
#include <hamsandwich>
#include <engine>

#define PLUGIN "New-Plugin"
#define VERSION "1.0"
#define AUTHOR "cypis"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Killed, "player", "SmiercGracza", 1);
}

public SmiercGracza(id, attacker)
{
new ent, classname[32], Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);

while((ent = find_ent_in_sphere(ent, origin, 50.0)) != 0)
{
entity_get_string(ent, EV_SZ_classname, classname, 31);
if(equali(classname,"func_buyzone"))
{
client_print(id, print_chat, "Zginoles na respie");
}
}
return HAM_IGNORED;
}

  • +
  • -
  • 1

#3 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 08.06.2011 23:23

Chyba jednak nie działa, bo te info mi się nie wyświetla.

Dodano 09 czerwiec 2011 - 01:24:
Jednak działa, coś musiałem chyba źle dodać. A da się wykryć czyj to buyzone? Bo ten kod wykrywa ogólnie, że nawet jeśli jest się w tt, to tak samo traktuje buyzone ct.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 09.06.2011 09:55

Chyba jednak nie działa, bo te info mi się nie wyświetla.

Dodano 09 czerwiec 2011 - 01:24:
Jednak działa, coś musiałem chyba źle dodać. A da się wykryć czyj to buyzone? Bo ten kod wykrywa ogólnie, że nawet jeśli jest się w tt, to tak samo traktuje buyzone ct.


Zmień klase bytu na info_player_start - resp CT, info_player_deathmatch - resp TT
  • +
  • -
  • 0

#5 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 09.06.2011 11:59

Czyli coś takiego?
public SmiercGracza(id, attacker)
{
new ent, classname[32], Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);

while((ent = find_ent_in_sphere(ent, origin, 50.0)) != 0)
{
entity_get_string(ent, EV_SZ_classname, classname, 31);
if(get_user_team(id) == 1 && equali(classname,"info_player_deathmatch"))
{
client_print(id, print_chat, "Zginoles na respie");
}
else if(get_user_team(id) == 2 && equali(classname,"info_player_start"))
{
client_print(id, print_chat, "Zginoles na respie");
}
}
return HAM_IGNORED;
}

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 09.06.2011 12:05

Czyli coś takiego?

public SmiercGracza(id, attacker)
{
new ent, classname[32], Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);

while((ent = find_ent_in_sphere(ent, origin, 50.0)) != 0)
{
entity_get_string(ent, EV_SZ_classname, classname, 31);
if(get_user_team(id) == 1 && equali(classname,"info_player_deathmatch"))
{
client_print(id, print_chat, "Zginoles na respie");
}
else if(get_user_team(id) == 2 && equali(classname,"info_player_start"))
{
client_print(id, print_chat, "Zginoles na respie");
}
}
return HAM_IGNORED;
}


Tak
  • +
  • -
  • 1

#7 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 09.06.2011 14:05

Wszystko działa, można zamknąć.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#8 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 09.06.2011 18:02

można też dać tak:

public SmiercGracza(id, attacker)
{
new ent, classname[32], Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);

while((ent = find_ent_in_sphere(ent, origin, 50.0)) != 0)
{
entity_get_string(ent, EV_SZ_classname, classname, 31);
if(equali(classname,"info_player_deathmatch"))
{
client_print(id, print_chat, "Zginoles na respie");
}
else if(equali(classname,"info_player_start"))
{
client_print(id, print_chat, "Zginoles na respie");
}

}
return HAM_IGNORED;
}


Użytkownik Cypis' edytował ten post 09.06.2011 18:43

  • +
  • -
  • 0

#9 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 09.06.2011 18:07

Chyba jednak to nie będzie to samo co wyżej już ja podałem...

Dodano 09 czerwiec 2011 - 22:25:
A można tego samego użyć, ale w "DeathMsg"? Bo zauważyłem, że w "Ham_Killed", bierze też pod uwagę śmierć od bomby, a tego bym nie chciał.

Użytkownik sebul edytował ten post 09.06.2011 21:27

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#10 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 09.06.2011 22:14

try

public SmiercGracza(id, attacker)
{
if(!is_user_alive(attacker) || !is_user_connected(attacker))
return HAM_IGNORED;

new ent, classname[32], Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);

while((ent = find_ent_in_sphere(ent, origin, 50.0)) != 0)
{
entity_get_string(ent, EV_SZ_classname, classname, 31);
if(equali(classname,"info_player_deathmatch"))
{
client_print(id, print_chat, "Zginoles na respie");
}
else if(equali(classname,"info_player_start"))
{
client_print(id, print_chat, "Zginoles na respie");
}

}
return HAM_IGNORED;
}


  • +
  • -
  • 0

#11 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 10.06.2011 00:02

Tak nie zadziała, bo z tym warunkiem czy gracz, który zabił jest połączony, to już miałem tak napisane, zresztą na logikę patrząc, skoro ktoś podłoży bombę, to będzie połączony z serwerem, a to czy będzie żywy to już zależy od tego czy także zginie podczas jej wybuchu.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#12 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 10.06.2011 08:57

Pisze na telefone, ale może taki warunek dodaj:

if(1<= attacker <= 32)

Użytkownik Cypis' edytował ten post 10.06.2011 08:59

  • +
  • -
  • 0

#13 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 10.06.2011 11:25

Sprawdzę, choć też nie wiem czy pomoże, bo do funkcji "SmiercGracza" mam dodaną dodatkowo inną funkcję, która daje coś zabójcy i właśnie gdy ktoś zginie od bomby, to temu kto podłożył tą bombę daje te "coś".
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#14 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 10.06.2011 13:52

przecież można dać tak np.:

public SmiercGracza(id, attacker)
{
new ent, classname[32], Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);

while((ent = find_ent_in_sphere(ent, origin, 50.0)) != 0)
{
entity_get_string(ent, EV_SZ_classname, classname, 31);
if(equali(classname,"info_player_deathmatch") && (1<= attacker <= 32))//sprawdza czy ten co zabil ciebie jest graczem
{
client_print(id, print_chat, "Zginoles na respie");
}
else if(equali(classname,"info_player_start") && (1<= attacker <= 32))
{
client_print(id, print_chat, "Zginoles na respie");
}

}
return HAM_IGNORED;
}


  • +
  • -
  • 0

#15 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 10.06.2011 14:00

Ale chodzi mi o to, że przecież skoro bomba zabija gracza (byt zadający obrażenia, czyli to nie jest attacker), a te "coś" dodaje się temu co podłożył bombę, to ten warunek czy gracz jest graczem i tak zostanie spełniony. Do tego trzeba dodać przy "equali(classname,"info_player_deathmatch")" koniecznie o który team chodzi, bo bez tego działanie będzie takie samo jak przy buyzone.

Dodano 12 czerwiec 2011 - 16:17:
"(1<= attacker <= 32)" nie pomogło.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#16 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 12.06.2011 15:28

no to można zrobić w DeathMsg
  • +
  • -
  • 0




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

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