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
