Event DeathMsg

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

22 Jul 2013, 23:12

Descriere: In acest tutorial v`om invata ce face DeathMsg si la ce se foloseste el.

1. Cum se foloseste:

I. Introducerea lui in plugin_init
public plugin_init( )
{
register_event( "DeathMsg", "eDeathMsg", "a" );
}
In codul de mai sus, observam ca sunt 3 argumente.
1. "DeathMsg"
2. "eDeathMsg" - Numele publicului unde se executa event`ul.
3. "a" - Flag`ul
La flag, avem:

Code: Select all

"a" - global event.
"b" - specified.
"c" - send only once when repeated to other players.
"d" - call if is send to dead player.
"e" - to alive. 
In cazul nostru, avem flag`ul a care vine de la event global.
II. Cum il folosim in pluginuri.
Un exemplu simplu, sa zicem ca vrem dupa ce moare un jucator, sa ii de`a kick. (mai simplu, victima.)

Code: Select all

#include < amxmodx >

public plugin_init( )
{
	register_event( "DeathMsg", "eDeathMsg", "a" );
}
public eDeathMsg( )
{
	new v_Victim = read_data( 2 ); // Victima.
	server_cmd( "kick #%d", get_user_userid( v_Victim ) ); // Luam ID`ul jucatorului care tocmai a murit(victimei), si ii da`m kick.
}
Daca vreti sa aflati atacatorul, arma, si daca a fost headshot / sau nu victimei, aveti nevoie de:

Code: Select all

new v_Victim = read_data( 2 ); // Victima.
new tAttacker = read_data( 1 ) // Atacatorul
new tAttackerName[ 32 ];
get_user_name( tAttacker, tAttackerName, 31 ); // Aflam numele atacatorului
new tGun[ 32 ];
read_data( 4, tGun, sizeof( tGun ) -1 ); // Arma cu care a fost ucisa victima
new h_Headshot = read_data( 3 ); // OnlyHeadshot
Exemplu de plugin:
#include < amxmodx >

public plugin_init( )
{
register_event( "DeathMsg", "eDeathMsg", "a" );
}
public eDeathMsg( )
{
new v_Victim = read_data( 2 ); // Victima.
new tAttacker = read_data( 1 ) // Atacatorul
new tGun[ 32 ];
read_data( 4, tGun, sizeof( tGun ) -1 ); // Arma cu care a fost ucisa victima
new tAttackerName[ 32 ];
get_user_name( tAttacker, tAttackerName, 31 ); // Aflam numele atacatorului
new h_Headshot = read_data( 3 ); // OnlyHeadshot
client_print( v_Victim, print_chat, "Atacatorul: %s | Arma: %s | HitPlace: %s", tAttackerName, tGun, h_Headshot );

}
Retras
RoyalServer
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

27 Aug 2013, 16:15

Bine explicat bravo
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

03 Sep 2013, 02:17

Ai uitat de faptul ca acesta nu are parametrii :)
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
Samo
Membru, skill 0
Membru, skill 0
Posts: 10
Joined: 08 Jul 2013, 16:30
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 6 times
Contact:

04 Sep 2013, 22:42

Tot observ chestiile astea :

Code: Select all

%s 
#%d
Ce sunt ele si la ce se folosesc?
@Sunt foarte , foarte incepator :))
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

04 Sep 2013, 22:46

Samo wrote:Tot observ chestiile astea :

Code: Select all

%s 
#%d
Ce sunt ele si la ce se folosesc?
@Sunt foarte , foarte incepator :))
%s - string.
%d - integer. (retine un numar intreg)
http://www.extreamcs.com/forum/pluginur ... 07580.html
Retras
LordOfNothing
Membru, skill +1
Membru, skill +1
Posts: 387
Joined: 19 Jul 2013, 15:51
Detinator Steam: Nu
Reputatie: Restrictie PM
Has thanked: 11 times
Been thanked: 35 times

17 Nov 2013, 09:11

Sincer e inutil acum putem folosi Ham_Killed e mult mai codat si aflam victima si atacatorul mult mai usor ..

Code: Select all

public Hook_Ham_Killed(attacker,victim,shouldgib)
{

 // code !
}
User avatar
KronoS eXtream
Fost administrator
Fost administrator
Posts: 4378
Joined: 02 Apr 2009, 19:18
Detinator Steam: Da
Reputatie: Fost administrator
Fost detinator Zombie-Land.eXtream.Ro
Contribuitor
Fost Scripter eXtreamCS
Dezvoltator al listei de seriozitate eXtreamCS
Location: Bucharest
Has thanked: 551 times
Been thanked: 820 times
Contact:

17 Nov 2013, 09:51

LordOfNothing wrote:Sincer e inutil acum putem folosi Ham_Killed e mult mai codat si aflam victima si atacatorul mult mai usor ..

Code: Select all

public Hook_Ham_Killed(attacker,victim,shouldgib)
{

 // code !
}
Sunt cazuri in care esti fortat sa folosesti DeathMsg, in loc de Ham_Killed.Pe langa asta, DeathMsg nu are nevoie de un modul in plus pentru a putea fi folosit.
Nu efectuez tranzactii pe mess, skype etc. Aveti grija la indivizii care se dau drept mine!
Nu mai ofer suport asa ca nu imi mai trimiteti mesaje in legatura cu asta!


Zombie Plague Shade 1.2-debug1 [with Item Limiter] (12 September 2015) - Bombardier Branch
User avatar
Fuffy
Membru, skill +1
Membru, skill +1
Posts: 299
Joined: 07 Jan 2016, 08:34
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

04 Jun 2017, 18:47

Ca adaugire, modul corect de a inregistra deathmsg este asa:

Code: Select all

register_event( "DeathMsg" , "my_func", "be", "1!0", "4!world" );
Flag-urile 'be' - sa trimitem doar jucatorilor in viata ( scoateti 'e' daca aveti nevoie sa luati si id-ul victimei ).

4!world - verificam daca modelul armei nu e world - daca nu exista arma ( s-a sinucs, s-a aruncat de la distanta mare sau si-a schimbat echipa ) , atunci cand nu exista nici-o arma deathmsg returneaza string-ul 'world' verificam daca 4 nu e world, mai trebuie doar sa faceti un handle in functie ca sa verificati daca nu s-a sinucis singur cu o grenada.
AMXX Blue e acum doar pe github.
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 17 guests