Доброго времени суток дорогие участники сообщества.
Пришёл я к вам за помощью.
Я нашёл у вас как-то на форуме плагин "Knife Custom Model" (замена модели ножа )
Решил в общем написать первый плагин, позаимствовав идею данного плагина.
Суть написанного плагина в том:
Плагин предназначен для игроков Steam
1. Плагин выдаёт в начале каждого раунда игрокам Steam (Deagle;Full Armor;HE;Smoke and Flash Grenade начиная с первого раунда)
2. Плагин заменяет модели Knife, AWP, M4a1, AK47, Deagle (только игрокам Steam)
2.1 Плагин не выдаёт AWP, M4a1, AK47 игроки Steam их покупают так же как и все игроки на сервере (просто идёт замена моделей)
Плагин выдаёт бонусы Steam игрокам, но замена моделей происходит у всех игроков как Steam и NonSteam
подскажите пожалуйста что я делаю не так?
Я хотел бы сделать отображение моделей оружия по принципу плагина "Gold Weapon"
Что бы при наблюдении за Steam игроком NonSteam видел заменённую модель которая находится в руках у Steam игрока.
Если NonSteam поднимает данную модель оружия, он с ней может побегать.
Т.е. NonSteam мог бы полностью взаимодействовать со Steam моделями.(но при покупке выше указанного оружия, замена моделей происходила только у Steam игроков)
Сам код:
Код
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#define PLUGIN "Custom Weapon Model & Steam Bonus"
#define VERSION "0.1"
#define AUTHOR "PolaZ"
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
/*---------------EDIT ME------------------*/
new const gszKnifeModelV[] = "models/Reggae_Steam_Weapons/v_knife.mdl" // 1st person view model
new const gszKnifeModelP[] = "models/Reggae_Steam_Weapons/p_knife.mdl" // 3rd person view model
new const gszak47ModelV[] = "models/Reggae_Steam_Weapons/v_ak47.mdl" // 1st person view model
new const gszak47ModelP[] = "models/Reggae_Steam_Weapons/p_ak47.mdl" // 3rd person view model
new const gszawpModelV[] = "models/Reggae_Steam_Weapons/v_awp.mdl" // 1st person view model
new const gszawpModelP[] = "models/Reggae_Steam_Weapons/p_awp.mdl" // 3rd person view model
new const gszm4a1ModelV[] = "models/Reggae_Steam_Weapons/v_m4a1.mdl" // 1st person view model
new const gszm4a1ModelP[] = "models/Reggae_Steam_Weapons/p_m4a1.mdl" // 3rd person view model
new const gszdeagleModelV[] = "models/Reggae_Steam_Weapons/v_deagle.mdl" // 1st person view model
new const gszdeagleModelP[] = "models/Reggae_Steam_Weapons/p_deagle.mdl" // 3rd person view model
/*----------------------------------------*/
new giszKnifeModelV, giszKnifeModelP
new giszak47ModelV, giszak47ModelP
new giszawpModelV, giszawpModelP
new giszm4a1ModelV, giszm4a1ModelP
new giszdeagleModelV, giszdeagleModelP
new g_round
new szMapName[32]
public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )
RegisterHam(Ham_Spawn,"player","HamSpawnPlayer",1)
register_event("HLTV","round_start","a","1=0","2=0")
RegisterHam( Ham_Item_Deploy,"weapon_knife","HamItemDeploy_Knife", 1 )
RegisterHam( Ham_Item_Deploy,"weapon_ak47","HamItemDeploy_ak47", 1 )
RegisterHam( Ham_Item_Deploy,"weapon_awp","HamItemDeploy_awp", 1 )
RegisterHam( Ham_Item_Deploy,"weapon_m4a1","HamItemDeploy_m4a1", 1 )
RegisterHam( Ham_Item_Deploy,"weapon_deagle","HamItemDeploy_deagle", 1 )
giszKnifeModelV = engfunc(EngFunc_AllocString,gszKnifeModelV)
giszKnifeModelP = engfunc(EngFunc_AllocString,gszKnifeModelP)
giszak47ModelV = engfunc(EngFunc_AllocString,gszak47ModelV)
giszak47ModelP = engfunc(EngFunc_AllocString,gszak47ModelP)
giszawpModelV = engfunc(EngFunc_AllocString,gszawpModelV)
giszawpModelP = engfunc(EngFunc_AllocString,gszawpModelP)
giszm4a1ModelV = engfunc(EngFunc_AllocString,gszm4a1ModelV)
giszm4a1ModelP = engfunc(EngFunc_AllocString,gszm4a1ModelP)
giszdeagleModelV = engfunc(EngFunc_AllocString,gszdeagleModelV)
giszdeagleModelP = engfunc(EngFunc_AllocString,gszdeagleModelP)
}
public plugin_precache() {
precache_model(gszKnifeModelV)
precache_model(gszKnifeModelP)
precache_model(gszak47ModelV)
precache_model(gszak47ModelP)
precache_model(gszawpModelV)
precache_model(gszawpModelP)
precache_model(gszm4a1ModelV)
precache_model(gszm4a1ModelP)
precache_model(gszdeagleModelV)
precache_model(gszdeagleModelP)
}
public plugin_cfg()
{
get_mapname(szMapName, 31);
}
public round_start()
g_round++;
public round_restart()
g_round = 0;
public HamSpawnPlayer(id){
if(is_user_alive(id) && is_user_steam(id))
if(!equali(szMapName, "css_india_go"))
{
STEAM(id)
}else{
return;
}
}
public STEAM(id){
drop_weapons(id, 2);
fm_give_item( id, "weapon_hegrenade" )
fm_give_item( id, "weapon_flashbang" )
fm_give_item( id, "weapon_flashbang" )
fm_give_item( id, "item_assaultsuit" )
fm_give_item( id, "item_thighpack" )
fm_give_item( id, "weapon_deagle")
fm_give_item( id, "ammo_50ae" )
fm_give_item( id, "ammo_50ae" )
fm_give_item( id, "ammo_50ae" )
fm_give_item( id, "ammo_50ae" )
fm_give_item( id, "ammo_50ae" )
}
public HamItemDeploy(id){
if(is_user_steam(id))
{
HamItemDeploy_Knife(id)
HamItemDeploy_ak47(id)
HamItemDeploy_awp(id)
HamItemDeploy_m4a1(id)
HamItemDeploy_deagle(id)
}else{
return;
}
}
public HamItemDeploy_Knife(id){
const XO_WEAPON = 4
const m_pPlayer = 41
new iPlayer = get_pdata_cbase( id, m_pPlayer, XO_WEAPON )
set_pev_string( iPlayer, pev_viewmodel2, giszKnifeModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszKnifeModelP )
}
public HamItemDeploy_ak47(id){
const XO_WEAPON = 4
const m_pPlayer = 41
new iPlayer = get_pdata_cbase( id, m_pPlayer, XO_WEAPON )
set_pev_string( iPlayer, pev_viewmodel2, giszak47ModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszak47ModelP )
}
public HamItemDeploy_awp(id){
const XO_WEAPON = 4
const m_pPlayer = 41
new iPlayer = get_pdata_cbase( id, m_pPlayer, XO_WEAPON )
set_pev_string( iPlayer, pev_viewmodel2, giszawpModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszawpModelP )
}
public HamItemDeploy_m4a1(id){
const XO_WEAPON = 4
const m_pPlayer = 41
new iPlayer = get_pdata_cbase( id, m_pPlayer, XO_WEAPON )
set_pev_string( iPlayer, pev_viewmodel2, giszm4a1ModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszm4a1ModelP )
}
public HamItemDeploy_deagle(id){
const XO_WEAPON = 4
const m_pPlayer = 41
new iPlayer = get_pdata_cbase( id, m_pPlayer, XO_WEAPON )
set_pev_string( iPlayer, pev_viewmodel2, giszdeagleModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszdeagleModelP )
}
drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0;
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
bool:is_user_steam(id) {
static dp_pointer;
if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}
P.S. Я только недавно занялся програмированием и отдал своё предпочтение многоплатформенному языку "Java", прошу сильно не ругать :)
Ребята, помогите и объясните пожалуйста как это можно осуществить...этот плагин уже мне все мозги выел...