1. Mai întâi avem nevoie de fakemeta şi engine pe care le includem astfel:
Code: Select all
#include < fakemeta >
#include < engine >
Code: Select all
new Model_V [ 66 ] = "models/ModelArma/v_model.mdl";
- Model_V - numele declaraţiei
- 66 - numărul maxim de caractere pe care poate să îl aibă calea către model
- "models/ModelArma/v_model.mdl" - calea unde se află modelul
Code: Select all
new Model_P [ 66 ] = "models/ModelArma/p_model.mdl";
new Model_W [ 66 ] = "models/ModelArma/w_model.mdl";
Code: Select all
#define ARMANOUA CSW_AK47
*. În init adăugăm următorul event şi următoarea funcţie forward:
Adăugarea eventului:
Code: Select all
register_event ( "CurWeapon", "ArmaNoua_Model", "be", "1=1" );
- CurWeapon - funcţia care o cere eventul
- ArmaNoua_Model - numele public-ului unde va acţiona funcţia
- be - flag-ul eventului
- 1=1 - condiţia eventului
Code: Select all
register_forward ( FM_SetModel, "ArmaNoua_SetWModel" );
- FM_SetModel - forward-ul funcţiei
- ArmaNoua_SetWModel - numele public-ului unde acţionează funcţia
Code: Select all
/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < fakemeta >
#include < engine >
#define PLUGIN "Modificarea Modelului A Unei Arme"
#define VERSION "0.1"
#define AUTHOR "hadesownage"
new Model_V [ 66 ] = "models/ModelArma/v_model.mdl";
new Model_P [ 66 ] = "models/ModelArma/p_model.mdl";
new Model_W [ 66 ] = "models/ModelArma/w_model.mdl";
#define ARMANOUA CSW_AK47
public plugin_init ( ) {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event ( "CurWeapon", "ArmaNoua_Model", "be", "1=1" );
register_forward ( FM_SetModel, "ArmaNoua_SetWModel" );
}
1. Creeăm un nou public cu numele plugin_precache, fără parametrii:
Code: Select all
public plugin_precache ( ) {
Code: Select all
precache_model ( Model_V )
precache_model ( Model_P )
precache_model ( Model_W )
Acum creeăm cele două public-uri:
Public-ul: ArmaNoua_Model
1. Creeăm public-ul ArmaNoua_Model cu parametrul id:
Code: Select all
public ArmaNoua_Model ( id ) {
Code: Select all
if ( get_user_weapon ( id ) == ARMANOUA ) {
Code: Select all
set_pev ( id, pev_viewmodel2, Model_V );
4. Acum adăugăm şi pentru modelul P:
Code: Select all
set_pev ( id, pev_weaponmodel2, Model_P );
Code: Select all
/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < fakemeta >
#include < engine >
#define PLUGIN "Modificarea Modelului A Unei Arme"
#define VERSION "0.1"
#define AUTHOR "hadesownage"
new Model_V [ 66 ] = "models/ModelArma/v_model.mdl";
new Model_P [ 66 ] = "models/ModelArma/p_model.mdl";
new Model_W [ 66 ] = "models/ModelArma/w_model.mdl";
public plugin_init ( ) {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event ( "CurWeapon", "ArmaNoua_Model", "be", "1=1" );
register_forward ( FM_SetModel, "ArmaNoua_SetWModel" );
}
public plugin_precache ( ) {
precache_model ( Model_V );
precache_model ( Model_P );
precache_model ( Model_W );
}
public ArmaNoua_Model ( id ) {
if ( get_user_weapon ( id ) == ARMANOUA ) {
set_pev ( id, pev_viewmodel2, Model_V );
set_pev ( id, pev_weaponmodel2, Model_P );
}
}
1. Creeăm public-ul cu următoarele param-uri: entity şi model [ ]:
Code: Select all
public ArmaNoua_SetWModel ( entity, model [ ] ) {
Code: Select all
if ( !is_valid_ent ( entity ) ) return FMRES_IGNORED;
Code: Select all
static szClassName [ 33 ];
entity_get_string ( entity, EV_SZ_classname, szClassName, charsmax ( szClassName ) );
Code: Select all
if ( !equal ( szClassName, "weaponbox" ) ) return FMRES_IGNORED;
Code: Select all
new WPN_ArmaNoua = find_ent_by_owner ( -1, "weapon_ak47", entity );
Code: Select all
if ( is_valid_ent ( WPN_ArmaNoua ) && equal ( model, "models/w_ak47.mdl" ) ) {
Code: Select all
entity_set_int ( WPN_ArmaNoua, EV_INT_impulse, 103 );
entity_set_model ( entity, Model_W );
return FMRES_SUPERCEDE;
Code: Select all
return FMRES_IGNORED;
Asta a fost tot, plugin-ul dvs. trebuie să arate astfel:
Code: Select all
/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < fakemeta >
#include < engine >
#define PLUGIN "Modificarea Modelului A Unei Arme"
#define VERSION "0.1"
#define AUTHOR "hadesownage"
new Model_V [ 66 ] = "models/ModelArma/v_model.mdl";
new Model_P [ 66 ] = "models/ModelArma/p_model.mdl";
new Model_W [ 66 ] = "models/ModelArma/w_model.mdl";
#define ARMANOUA CSW_AK47
public plugin_init ( ) {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event ( "CurWeapon", "ArmaNoua_Model", "be", "1=1" );
register_forward ( FM_SetModel, "ArmaNoua_SetWModel" );
}
public plugin_precache ( ) {
precache_model ( Model_V );
precache_model ( Model_P );
precache_model ( Model_W );
}
public ArmaNoua_Model ( id ) {
if ( get_user_weapon ( id ) == ARMANOUA ) {
set_pev ( id, pev_viewmodel2, Model_V );
set_pev ( id, pev_weaponmodel2, Model_P );
}
}
public ArmaNoua_SetWModel ( entity, model [ ] ) {
if ( !is_valid_ent ( entity ) ) return FMRES_IGNORED;
static szClassName [ 33 ];
entity_get_string ( entity, EV_SZ_classname, szClassName, charsmax ( szClassName ) );
if ( !equal ( szClassName, "weaponbox" ) ) return FMRES_IGNORED;
new WPN_ArmaNoua = find_ent_by_owner ( -1, "weapon_ak47", entity );
if ( is_valid_ent ( WPN_ArmaNoua ) && equal ( model, "models/w_ak47.mdl" ) ) {
entity_set_int ( WPN_ArmaNoua, EV_INT_impulse, 103 );
entity_set_model ( entity, Model_W );
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
Dacă întâlniti probleme puteţi să lăsaţi reply în topic şi o să vă răspund cât pot de repede.
Exprimăţi recunoştinţa dacă ţi-a fost de folos acest tutorial !