Page 1 of 1

Klausimelis

Posted: 2011 Jul 07 01:23
by psychical
Ar yra koks dalykas kuris skirtu HIT_SLASH nuo HIT_STAB? Jei taip, tai kokiu budu ji galima gauti PVZ.: take_damage evente?


P.S. Kazka radau apie button & IN_ATTACK, bet man idomu ar pagal ji bus galima nustatyt dmg?

Re: Klausimelis

Posted: 2011 Jul 07 14:15
by aaarnas
Hmm, geras klausimas. Rodos yra tik DMG_SLASH. Į jį įeina ir slash ir stab. Kaip tiksliai atskirti, pasakyti negaliu.

Galima mėginti nužudymo metu tikrinti atakuotojo mygtukus. Jei slash, tai bus IN_ATTACK, stab IN_ATTACK2. Bet tai gali būti nelabai tikslu.

Antras variantas kurį sugalvojau:

Code: Select all

/* Plugin generated by AMXX-Studio */ #include <amxmodx>#include <engine>#include <hamsandwich> #define PLUGIN "Plugin"#define VERSION "1.0"#define AUTHOR "aaarnas" new slash_type[33] enum {    TYPE_STAB,    TYPE_SLASH}public plugin_init() {    register_plugin(PLUGIN, VERSION, AUTHOR)    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "knife_primary")    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "knife_secondary")    RegisterHam(Ham_Killed, "player", "player_killed", 1)} public knife_primary(weapon)    slash_type[entity_get_edict(weapon, EV_ENT_owner)] = TYPE_SLASH public knife_secondary(weapon)    slash_type[entity_get_edict(weapon, EV_ENT_owner)] = TYPE_STAB    public player_killed(victim, attacker, shouldgib) {        if(is_user_connected(attacker)) {                switch(slash_type[attacker]) {                        case TYPE_STAB: {                                // Žaidėjas nudurtas            }            case TYPE_SLASH: {                                // Žaidėjas papjautas            }        }    }}

Re: Klausimelis

Posted: 2011 Jul 07 14:53
by psychical
Ačiū, veikia. :)

Re: Klausimelis

Posted: 2011 Jul 07 21:32
by hleV
Žalos padarymo metu reiktų pirma patikrint, ar žalos tipas yra DMG_SLASH, tik tada tikrinti slash/stab.

Re: Klausimelis

Posted: 2011 Jul 07 21:45
by psychical
hleV wrote:Nužudymo metu reiktų pirma patikrint, ar žalos tipas yra DMG_SLASH, tik tada tikrinti slash/stab.
Man reikalingas ne nuzudymo, o trenkimo laiku, ta prasme kai dmg darai, o ne kai nuzudai, pasidariau viska kaip reikia :liux:

Re: Klausimelis

Posted: 2011 Jul 07 22:12
by aaarnas
psychical wrote:
hleV wrote:Nužudymo metu reiktų pirma patikrint, ar žalos tipas yra DMG_SLASH, tik tada tikrinti slash/stab.
Man reikalingas ne nuzudymo, o trenkimo laiku, ta prasme kai dmg darai, o ne kai nuzudai, pasidariau viska kaip reikia :liux:
Ta prasme jis turėjo omenyje tai:

Code: Select all

#define DMG_SLASH   (1<<2) public player_damage(victim, inflictor, attacker, Float:damage, damage_type) {        if(is_user_connected(attacker) && damage_type & DMG_SLASH) {                switch(slash_type[attacker]) {                        case TYPE_STAB: {                                // Žaidėjas nudurtas            }            case TYPE_SLASH: {                                // Žaidėjas papjautas            }        }    }}