←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Niewidka dla klasy w momencie gdy jest w p...

  • +
  • -
Kaski8's Photo Kaski8 27.12.2014

Krótko, czy mozna zrobić klase która jest niewidzialna gdy jest w powietrzu ? Jakieś tam warunki ze gdy nie dotyka ziemi czy coś ( nie znam się za bardzo ;c) Jak zapisać takie coś, dodać to do klasy. Bo zakładam że jest to możliwe :)

Quote

  • +
  • -
Xeane's Photo Xeane 27.12.2014

if(FL_ONGROUND)

set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);

else if(!is_user_alive(id) || !ma_klase[id])

set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 1);

 

Może ktoś inny bardziej zrobi to lepiej ale mi takie coś do głowy wpadło 

Quote

  • +
  • -
Kaski8's Photo Kaski8 27.12.2014

Zaraz po zalożeniu tematu zacząłem szukać czegoś i natrafiłem na to http://amxx.pl/topic...idzialna-klasa/Może komus się przyda. 

Powiem, że nawet pasuje mi ten kod mozna sie pobawić kiedy jak ma byc widzialy wgrałem tą jego kalse łanie śmigało ale po zmodyfikowaniu jej tutaj SMA do niej niewidzialność nie działa ;c No nwm co z tym fantem xD

 

#include <amxmodx>
#include <codmod>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>
#include <posmv>
#include <hamsandwich>
 
#define DMG_BULLET (1<<1)
 
#define SLASH 0
#define STAB 1
 
new gKnifeattack[ 33 ];
new bool:ma_klase[33];
new skoki[33];
 
#define PREMIUM_LVL ADMIN_RESERVATION
 
new const nazwa[]   = "Ninja";
new const opis[]    = "Wtapia sie w tlo jak malo kto";
new const bronie    = (1<<CSW_FIVESEVEN);
new const zdrowie   = 30;
new const kondycja  = 60;
new const inteligencja = 10;
new const wytrzymalosc = 10;
 
 
public plugin_init()
{
register_plugin(nazwa, "1.0", "kamilos3311");
 
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc/*, frakcja*/);
 
register_forward( FM_CmdStart, "FMCmdStart" );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_knife", "ham_AttackSlash");
RegisterHam( Ham_Weapon_SecondaryAttack, "weapon_knife", "ham_AttackStab");
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
RegisterHam(Ham_Spawn, "player", "fwSpawn_Grawitacja", 1);
 
   
register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
 
register_event("CurWeapon", "ModelBroni_CurWeapon", "be", "1=1");
register_forward(FM_SetModel, "ModelBroni_fw_SetModel");
 
}
 
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & PREMIUM_LVL))
{
client_print(id, print_chat, "[Ninja] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
set_user_footsteps(id, 1); // nie słychać kroków
  entity_set_float(id, EV_FL_gravity, 600.0/800.0);
ma_klase[id] = true;
 
return COD_CONTINUE;
}
 
public cod_class_disabled(id)
{
set_user_footsteps(id, 0);
  entity_set_float(id, EV_FL_gravity, 1.0);
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
ma_klase[id] = false;
}
 
public plugin_precache()
{
precache_model("models/p_knife.mdl");
precache_model("models/olesnica/v_knife.mdl");
precache_model("models/w_knife.mdl");
}
 
public FMCmdStart( id)
{
 
// Niewidzialnosc
if(ma_klase[id] && get_user_weapon(id) == CSW_KNIFE )
{
if(is_user_jumping(id)) // true jeżeli gracz skacze (jest w powietrzu)
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 4);
// client_print( id, print_center, "Lot" );   
}
else if(is_user_moving(id) ) // true jeżeli gracz jest w ruchu (nie locie)
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 45);
// client_print( id, print_center, "Bieg" );    
}
else if(is_user_crouching(id)) // true jeżeli gracz kuca
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 25);
// client_print( id, print_center, "Kucanie" );
}
else // gdy zadne z powyzszych
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 20);
// client_print( id, print_center, "Nic nie robisz" );   
}
else{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}
 
return FMRES_IGNORED
}
 
public ham_AttackStab( entity )
{
gKnifeattack[ pev( entity, pev_owner ) ] = STAB;
return HAM_IGNORED;
}
 
public ham_AttackSlash( entity )
{
gKnifeattack[ pev( entity, pev_owner ) ] = SLASH;
return HAM_IGNORED; 
}
 
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
 
if(!ma_klase[idattacker])
return HAM_IGNORED;
 
if( get_user_weapon( idattacker ) == CSW_KNIFE && ( damagebits & ( DMG_NEVERGIB | DMG_BULLET ) ) )
{
if( gKnifeattack[ idattacker ] == STAB )
{
cs_set_user_armor( this, 0, CS_ARMOR_NONE )
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}
}
 
return HAM_IGNORED;
}
 
public fwSpawn_Grawitacja(id)
{
if(ma_klase[id])
entity_set_float(id, EV_FL_gravity, 600.0/800.0);
}
 
 
public fwCmdStart_MultiJump(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id])
return FMRES_IGNORED;
 
new flags = pev(id, pev_flags);
 
if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity,velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 2;
 
return FMRES_IGNORED;
}
 
public ModelBroni_CurWeapon(id)
{
        new weapon = read_data(2);
 
        if(ma_klase[id])
        {
                if(weapon == CSW_KNIFE)
                {
                        set_pev(id, pev_viewmodel2, "models/olesnica/v_knife.mdl")
                        set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
                }
        }
}
 
public ModelBroni_fw_SetModel(entity, model[])
{
        if(!pev_valid(entity))
                return FMRES_IGNORED
 
        if(!equali(model, "models/w_knife.mdl"))
                return FMRES_IGNORED;
 
        new entityowner = pev(entity, pev_owner);
 
        if(!ma_klase[entityowner])
                return FMRES_IGNORED;
 
        engfunc(EngFunc_SetModel, entity, "models/w_knife.mdl")
        return FMRES_SUPERCEDE
}

Edited by Kaski8, 27.12.2014 16:48.
Quote