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

Zabójstwo z nożna + napis w hud


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 IntelCom

    Wszechwiedzący

  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 01.01.2015 16:34

Witam,

 

Jak zrobić by po zabiciu wroga z knife (noża) pokazywała się wszystkim graczom na serwerze wiadomość w hud.

"Nick zabójcy" zabił "Nick ofiary"

 

Przykład:

 

Florek poćwiartował Anyes.

 

 

Dodałem do funkcji plugin init, event zdarzenia śmierci, ale nie za bardzo wiem co dalej?

 

 

 

 


  • +
  • -
  • 0

#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 01.01.2015 16:40

#include <amxmodx>


#define PLUGIN "Zabicie z noza"
#define VERSION "1.0"
#define AUTHOR "Drozduuuu"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("DeathMsg", "DeathMsg", "a")
}


public DeathMsg()
{
	new kid = read_data(1);
	new vid = read_data(2);	
	new weapon[64];
	read_data(4,weapon,63);
	
	if(kid == 0 || kid == vid)
	return;
	
	if(containi(weapon, "knife") == -1) // sprawdzamy czy z noza
	return;
	
	if(!is_user_connected(kid) || !is_user_connected(vid))
	return;
	
	new name_kid[32], name_vid[32];
	get_user_name(kid, name_kid, 31)
	get_user_name(vid, name_vid, 31);
	
	set_hudmessage(0, 255, 0, -1.0, 0.3, 0, 6.0, 5.0)
	show_hudmessage(0, "%s pocwiartowal %s", name_kid, name_vid)
}

  • +
  • -
  • 2

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#3 IntelCom

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 01.01.2015 16:55

1.Dlaczego zmienna new weapon ma wartość zapisaną w tablicy [64]?

new weapon[64]; 

2.Tej linijki wogóle. nie rozumiem.

read_data(4,weapon,63);

3.Dlaczego ten warunek przyjmuje takie wartości i co oznacza ta nazwa containi?

if(containi(weapon, "knife") == -1)

4.No i ten fragment kodu, nie zbyt jasny dla mnie.

new name_kid[32], name_vid[32];
get_user_name(kid, name_kid, 31)
get_user_name(vid, name_vid, 31);

  • +
  • -
  • 0

#4 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 01.01.2015 17:09


1.Dlaczego zmienna new weapon ma wartość zapisaną w tablicy [64]?

Jest to jej rozmiar, to pewnie wiesz, w niej przechowuję nazwę broni, ogólnie pewnie może być krótsza (bo 64 to na pewno starczy, a pewnie i by 32 wystarczyło), bo zawiera nazwę broni bez "weapon_" na początku.

Lista broni: http://amxx.pl/topic...ive-item-speed/(brakuje noża w tej tabelce, ale ma on weapon_knife - ID 29)

 

 

 

 


2.Tej linijki w ogóle. nie rozumiem.

read_data(4,weapon,63);

4 - oznacza, z którego elementu pobieram informacje.

Ogólnie 4 parametr w Evencie DeathMsg to krótka nazwa broni.

weapon, 63 - pobieram do tej tablicy, którą uprzednio stworzyłem ;)

Czyli tutaj pobieram nazwę broni.

 

 

 

 


3.Dlaczego ten warunek przyjmuje takie wartości i co oznacza ta nazwa containi?

if(containi(weapon, "knife") == -1)

containi <-

Sprawdzam czy tablica "weapon" zawiera "fraze" "knife", jeżeli nie zawiera (czyli zwraca -1, według jej definicji :D, to koncze prace)

Jeżeli == -1 czyli wtedy to nie jest ta broń, czyli kończę funkcję przez zwracanie "return"

 

 

4.No i ten fragment kodu, nie zbyt jasny dla mnie.

new name_kid[32], name_vid[32];
get_user_name(kid, name_kid, 31)
get_user_name(vid, name_vid, 31);

Najpierw tworzę tablice dla zabójcy i ofiary, aby pobrać ich nick (nick ma maksymalnie 32 znaki, dlatego 32).

Później pobieram ;)

get_user_name


Użytkownik Droso edytował ten post 01.01.2015 17:22

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#5 IntelCom

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 01.01.2015 18:40

Ten warunek nie jest dla mnie taki do końca zrozumiały, te returny są potrzebne.Co jak by ich nie było?


  • +
  • -
  • 0

#6 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 01.01.2015 18:49

Ten warunek nie jest dla mnie taki do końca zrozumiały, te returny są potrzebne.Co jak by ich nie było?

Ah widzisz te returny, zatrzymują wykonywanie się funkcji dalej.

Czyli jeżeli warunek się spełni i zwrócimy return, to wtedy to co jest po tym warunku już się nie wykona ;)

 

Więc mamy tablice weapon (rozmiar 64)

Pobieramy nazwe broni z jakiej zabiliśmy w evencie DeathMsg do tablicy weapon.

 

Robimy warunek + containi czyli sprawdzamy czy tablica zawiera w sobie "knife" jeżeli zawiera zwróci liczbę większa od -1, a jak nie znajdzie, zwróci -1.

Dlatego

 

jeżeli containi == -1, kończymy funkcje returnem, bo tablica weapon nie zawiera w sobie "knife"


Użytkownik Droso edytował ten post 01.01.2015 19:14

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#7 IntelCom

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 02.01.2015 01:00

A skąd mam wiedzieć, że liczba większa od -1(np. -2;-5;-7;-9) to knife, a równa -1 to jakaś inna broń?
  • +
  • -
  • 0

#8 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 02.01.2015 05:15


containi <-
Sprawdzam czy tablica "weapon" zawiera "fraze" "knife", jeżeli nie zawiera (czyli zwraca -1, według jej definicji , to koncze prace)
Jeżeli == -1 czyli wtedy to nie jest ta broń, czyli kończę funkcję przez zwracanie "return"

  • +
  • -
  • 0

#9 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 02.01.2015 14:16

Przeczytaj definicje containi

Trochę może się to wydawać ciężkie na początek, więc możesz wrócić do tego później ;P


  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!





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

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