Zaczynamy !
1. Dodajemy nowy include:
#include <fakemeta_util>
2. Pod includami dodajemy to:
#define SENTRY_THINK 0.3 #define OFFSET_WPN_LINUX 4 #define OFFSET_WPN_WIN 41 #define fm_point_contents(%1) engfunc(EngFunc_PointContents, %1) #define fm_DispatchSpawn(%1) dllfunc(DLLFunc_Spawn, %1)3. Następnie nad public plugin_init() dodajemy to:
new pMenuExplode[33];
new gMenuDzialko[33]
new bool:bInzynier[33]
new mdl_gib_build1,mdl_gib_build2,mdl_gib_build3,mdl_gib_build4
new g_maxplayers;
new pcvarPercent,pcvarHealth,pcvarDamage;
static const g_szWpnEntNames[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90" } 4. Do public plugin_init() dodajemy:
for (new i = 1; i < sizeof g_szWpnEntNames; i++){
if (g_szWpnEntNames[i][0]) RegisterHam(Ham_Item_Deploy, g_szWpnEntNames[i], "ham_ItemDeploy_Post", 1)
}
RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack_Building")
register_think("sentry_shot","sentry_shot")
g_maxplayers = get_maxplayers();
pcvarPercent = register_cvar("inzynier_percent","4") // ile procent daje jedno uderzenie w działko (przy budowaniu)
pcvarHealth = register_cvar("inzynier_health","600") // ile hp ma dzialko
pcvarDamage = register_cvar("inzynier_damage","15.0"); //[font=monospace] [/font]ile dmg zadaje dzialko przy trafieniu podajemy liczbę rzeczywistą !
5. Do public plugin_precache() dodajemy:
precache_sound("sentry_shoot.wav");
precache_model("models/QTM_CodMod/v_tfc_spanner.mdl")
precache_model("models/QTM_CodMod/base2.mdl")
precache_model("models/QTM_CodMod/sentry2.mdl")
mdl_gib_build1 = engfunc(EngFunc_PrecacheModel,"models/mbarrel.mdl")
mdl_gib_build2 = engfunc(EngFunc_PrecacheModel,"models/computergibs.mdl")
mdl_gib_build3 = engfunc(EngFunc_PrecacheModel,"models/metalplategibs.mdl")
mdl_gib_build4 = engfunc(EngFunc_PrecacheModel,"models/cindergibs.mdl")
precache_sound("debris/bustmetal1.wav");
precache_sound("debris/bustmetal2.wav"); 6. Do public NowaRunda() dodajemy:
remove_entity_name("sentry_base")
remove_entity_name("sentry_shot") 7. Na samym końcu sma dodajemy:
Spoiler
8. W public Odrodzenie(id) dodajemy case naszej klasy i w niej msui być:
bInzynier[id] = true;Czyli np. wygląda to tak(moja klasa ma galil'a i p228):
case xx: // w miejsce xx wpisujesz nazwe klasy
{
give_item(id, "weapon_galil")
give_item(id, "weapon_p228")
bInzynier[id] = true;
} 9. Na początku public Odrodzenie(id) pod:
if(nowa_klasa_gracza[id])
{dodajemy:bInzynier[id] = false;
10. W public client_connect(id) dodajemy:
bInzynier[id] = false; gMenuDzialko[id] = 0; pMenuExplode[id] = 0;
I to wszystko


Dodatki SourceMod




Moja zawartość
Mężczyzna

