pollfank
Участник
- Сообщения
- 167
- Решения
- 1
- Реакции
- 32
- Баллы
- 28
Доброго времени суток всем.
Есть у меня плагин пагоны для AES. Начал переделывать его пд ReAPI.
Избавился от <hamsandwich> уже. Теперь нужна помощь, как избавится от <fakemeta>
Прикрепил оригинал. А вот код, как пока получилось
Есть у меня плагин пагоны для AES. Начал переделывать его пд ReAPI.
Избавился от <hamsandwich> уже. Теперь нужна помощь, как избавится от <fakemeta>
Прикрепил оригинал. А вот код, как пока получилось
Код:
#include <amxmodx>
#include <fakemeta>
#include <reapi>
#include <aes_main>
#define PLUGIN "AES: Shoulder Marks"
#define VERSION "0.1"
#define AUTHOR "serfreeman1337"
#define PRECACHE_DIR "models/shoulder_marks"
#define MARKS_CLASSNAME "aes_shoulder_marks"
new Array:marksModels
new marksEntity[33],modelName[128]
new const m_iInternalModel = 126
public plugin_precache(){
new cLvlNum = register_cvar("aes_sm_lvlnum","20")
new precachePath[128]
marksModels = ArrayCreate(128)
for(new i ; i < get_pcvar_num(cLvlNum) ; ++i){
formatex(precachePath,127,"%s/%d.mdl",PRECACHE_DIR,i + 1)
if(file_exists(precachePath)){
precache_model(precachePath)
ArrayPushString(marksModels,precachePath)
server_print("--> %d %s",i,precachePath)
}else{
log_amx("cant locate %s file",precachePath)
ArrayPushString(marksModels,"")
}
}
}
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHookChain(RG_CBasePlayer_Spawn,"On_Player_Spawn",1)
RegisterHookChain(RG_CBasePlayer_Killed,"On_Player_Killed",1)
}
public aes_player_levelup(id)
Update_Marks(id)
public aes_player_leveldown(id)
Update_Marks(id)
public On_Player_Spawn(id){
server_print("-->PLR SPAWN")
Update_Marks(id)
}
public On_Player_Killed(id)
Hide_Marks(id)
public client_disconnected(id)
Hide_Marks(id)
public Update_Marks(id){
if(!pev_valid(marksEntity[id])){
marksEntity[id] = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
set_pev(marksEntity[id],pev_classname,MARKS_CLASSNAME)
}
ArrayGetString(marksModels,aes_get_player_level(id),modelName,127)
server_print("--> get %s for %d",modelName,aes_get_player_level(id))
if(!modelName[0])
return 0
new bodySeq = get_bodyseq_for_player(id)
server_print("--> get %d bodyseq",bodySeq)
if(!bodySeq)
return 0
set_pev(marksEntity[id],pev_aiment,id)
set_pev(marksEntity[id],pev_movetype,MOVETYPE_FOLLOW)
set_pev(marksEntity[id],pev_effects,pev(marksEntity[id], pev_effects) & ~EF_NODRAW)
engfunc(EngFunc_SetModel,marksEntity[id],modelName)
set_pev(marksEntity[id],pev_body,bodySeq)
server_print("--> %d",bodySeq)
return 1
}
public Hide_Marks(id){
if(!pev_valid(marksEntity[id]))
return 0
set_pev(marksEntity[id],pev(marksEntity[id],pev_effects) | EF_NODRAW)
return 1
}
get_bodyseq_for_player(id){
return get_pdata_int(id,m_iInternalModel)
}
aes_get_player_level(id){
new aStats[AES_ST_END]
aes_get_player_stats(id,aStats)
return aStats[AES_ST_LEVEL]
}