Kod:
/* Sublime AMXX Editor v3.2 */
#include <amxmodx>
#include <reapi>
native get_pdata_cbase(id, offset, linuxdiff=5, macdiff=5);
native entity_set_model(iIndex, const szModel[]);
native register_touch(const Touched[], const Toucher[], const function[]);
native find_ent_by_model(iIndex, const szClass[], const szModel[]);
stock const m_rgpPlayerItems_CBasePlayer[6] = {367,368,...};
new const szWeapons[][][] = {
{"models/w_g3sg1.mdl","models/w_ump45.mdl",100,CSW_UMP45,"weapon_ump45"},
{"models/w_awp.mdl","models/w_famas.mdl",90,CSW_FAMAS,"weapon_famas"},
{"models/w_scout.mdl","models/w_galil.mdl",90,CSW_GALIL,"weapon_galil"}
}
public plugin_init() {
register_plugin("Change Model", "1.0", "PawNod")
register_touch("armoury_entity","player","@TouchWeapon");
RegisterHookChain(RG_CSGameRules_RestartRound,"@ModelArat",.post=false)
}
@TouchWeapon(iTouched, iToucher) {
new szModelName[48];
get_entvar(iTouched,var_model,szModelName,charsmax(szModelName));
for(new i; i < sizeof(szWeapons);i++) {
if(equali(szModelName,szWeapons[i][1][0])) {
if(!HasUserWeaponSlot(iToucher,1)){
rg_remove_item(iToucher, szWeapons[i][0][0]);
rg_give_item(iToucher,szWeapons[i][4][0]);
rg_set_user_bpammo(iToucher,WeaponIdType:szWeapons[i][3][0],szWeapons[i][2][0]);
rg_remove_entity(iTouched);
}
}
}
}
@ModelArat() {
new entFind;
for(new i; i < sizeof(szWeapons);i++) {
while((entFind = find_ent_by_model(-1, "armoury_entity",szWeapons[i][0][0]))) {
entity_set_model(entFind, szWeapons[i][1][0]);
}
}
}
HasUserWeaponSlot(id, slot) return get_pdata_cbase(id, m_rgpPlayerItems_CBasePlayer[slot]) > 0;
rg_remove_entity(const ent){
if(is_entity(ent)){
set_entvar(ent, var_flags, get_entvar(ent, var_flags) | FL_KILLME);
set_entvar(ent,var_nextthink,get_gametime());
}
}