←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Eventy pomoc

Locked

Nenczoks's Photo Nenczoks 02.05.2011

Witam.
Mam pytanie odnośnie eventu. Jaki event odpowiada za to, aby coś się stało, gdy spadniemy?
Na pewno coś po części RegisterHam(Ham?? jaki? touch?

A drugi, to jak strzelimy jako CT do TT. To wszystko.
Wydaje mi się, że
 RegisterHam( Ham_TakeDamage, "player", "FwdHamPlayerDamage" );


ale jak zrobię warunek, że tak się dzieje u TT - to potem będąc w TT i strzelając do swojego teamu - też się tak dzieje?
Quote

Adminek AMXX.PL's Photo Adminek AMXX.PL 02.05.2011

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod X -> Pytania
do
Scripting -> Pytania
Quote

  • +
  • -
Knopers's Photo Knopers 02.05.2011

Drugiej części nie zrozumiałem za bardzo, ale jako wskazówkę do pierwszej powiem ci że jeśli gracz spada z wysokości i doznaje jakiś obrażeń to ID zadającego obrażenia == 0. ;)
Quote

Nenczoks's Photo Nenczoks 02.05.2011

Chodzi oto, że mam tak:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <biohazard>
#include <hamsandwich>

#define PLUGIN "ZM"
#define VERSION "1.0"
#define AUTHOR "Ktos"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam( Ham_TakeDamage, "player", "FwdHamPlayerDamage" );
}
public FwdHamPlayerDamage( id, idInflictor, idAttacker, Float:flDamage, iDamageBits ) {
new origin[3];
get_user_origin(id, origin);
if(is_user_connected(id) || is_user_connected(id) && !is_user_zombie(id))
{
bloodcast(origin, 10);
}
if(!is_user_zombie(id) && is_user_zombie(idAttacker))
{
bloodcast(origin, 10);
}
return HAM_HANDLED;
}


Chodzi oto, że ja będąc w CT i zadając obrażeń to krew "wypada" więcej.
Okej jest to. A jak jestem w CT i spadnę gdzieś to również wypada krew. Ale mam problem, bo jak jestem zombie i walę w zombie to wypada też krew, a jak jestem CT i strzelam w innego CT to również ta krew wywala.. A ma tylko robić tak, jak podałem.


To nie jest cały kod, tam jest jeszcze umieszczone o wypadaniu tej krwi. Ale tutaj głównie chodzi, jak to przerobić?
Edited by Nenczoks, 02.05.2011 14:52.
Quote

  • +
  • -
Svizz's Photo Svizz 02.05.2011

Zle to robisz :)
if(is_user_connected(id) || is_user_connected(id) && !is_user_zombie(id))
Bez sensu całkowicie warunek. Wytłumacz o co ci chodzi w tym if'ie.
Quote

  • +
  • -
Goliath's Photo Goliath 02.05.2011

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <biohazard>
#include <hamsandwich>

#define PLUGIN "ZM"
#define VERSION "1.0"
#define AUTHOR "Ktos"

#define DMG_FALL (1<<5)

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam( Ham_TakeDamage, "player", "FwdHamPlayerDamage" );
}

public FwdHamPlayerDamage( id, idInflictor, idAttacker, Float:flDamage, iDamageBits )
{
if(!is_user_connected(id))
return HAM_IGNORED;

new origin[3]
get_user_origin(id, origin);

if(get_user_team(id) == 1 && get_user_team(idAttacker) == 2)
bloodcast(origin, 10);

if(iDamageBits & DMG_FALL && get_user_team(id) == 2)
bloodcast(origin, 10);

return HAM_HANDLED;
}

Zobacz to.
Edited by Goliath, 02.05.2011 17:28.
Quote

Nenczoks's Photo Nenczoks 02.05.2011

Dobra, działa.
Edited by Nenczoks, 02.05.2011 18:19.
Quote
Locked