Solved compail faild

Unpaid Requests, Public Plugins
Post Reply
User avatar
Luxurious
Mod Tester
Mod Tester
Egypt
Posts: 177
Joined: 6 years ago
Location: Egypt
Contact:

compail faild

#1

Post by Luxurious » 3 years ago

Can any one compail this pls?

i tried but i got errors

  1. #include <fakemeta>
  2. #include <engine>
  3. #include <zombie_escape>
  4.  
  5. const chainsaw_ap_cost = 59000
  6.  
  7. new const g_sound_buyarmor[] = { "items/tr_kevlar.wav" }
  8. new g_armor_amount, g_armor_limit, g_hp_amount
  9.  
  10. new const chainsaw_viewmodel[] = "models/talrasha/weapons/chainsaw/v_chainsaw.mdl"
  11. new const chainsaw_playermodel[] = "models/talrasha/weapons/chainsaw/p_chainsaw.mdl"
  12. new const chainsaw_worldmodel[] = "models/talrasha/weapons/chainsaw/w_chainsaw.mdl"
  13.  
  14. new const chainsaw_sounds[][] =
  15. {
  16.     "talrasha/weapons/chainsaw/chainsaw_deploy.wav",
  17.     "talrasha/weapons/chainsaw/chainsaw_hit1.wav",
  18.     "talrasha/weapons/chainsaw/chainsaw_hit2.wav",
  19.     "talrasha/weapons/chainsaw/chainsaw_hit1.wav",
  20.     "talrasha/weapons/chainsaw/chainsaw_hit2.wav",
  21.     "talrasha/weapons/chainsaw/chainsaw_hitwall.wav",
  22.     "talrasha/weapons/chainsaw/chainsaw_miss.wav",
  23.     "talrasha/weapons/chainsaw/chainsaw_miss.wav",
  24.     "talrasha/weapons/chainsaw/chainsaw_stab.wav"
  25. }
  26.  
  27. new Float:chainsaw_mins[3] = { -2.0, -2.0, -2.0 }
  28. new Float:chainsaw_maxs[3] = { 2.0, 2.0, 2.0 }
  29.  
  30. new g_iItemID, g_msgCurWeapon
  31.  
  32. new g_iHasChainsaw[33], g_iCurrentWeapon[33]
  33.  
  34. new cvar_enable, cvar_dmgmult, cvar_oneround, cvar_sounds, cvar_dmggore, cvar_dropflags,
  35. cvar_pattack_rate, cvar_sattack_rate, cvar_pattack_recoil, cvar_sattack_recoil, cvar_body_xplode
  36.  
  37. const DROPFLAG_NORMAL =         (1<<0)
  38. const DROPFLAG_INDEATH =    (1<<1)
  39. const DROPFLAG_INFECTED =    (1<<2)
  40. const DROPFLAG_SURVHUMAN =    (1<<3)
  41.  
  42. const m_pPlayer =         41
  43. const m_flNextPrimaryAttack =     46
  44. const m_flNextSecondaryAttack =    47
  45. const m_flTimeWeaponIdle =     48
  46.  
  47. #define PLUG_VERSION "1.0"
  48. #define PLUG_AUTH "eldon, RLY?"
  49.  
  50. #define MIN_PLAYERS 24
  51.  
  52. public plugin_init()
  53. {
  54.     register_plugin("[ZP] Extra: Chainsaw", PLUG_VERSION, PLUG_AUTH)
  55.      
  56.     register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0")
  57.     register_event("CurWeapon", "event_CurWeapon", "b", "1=1")
  58.      
  59.     cvar_enable = register_cvar("zp_chainsaw_enable", "1")
  60.     cvar_sounds = register_cvar("zp_chainsaw_custom_sounds", "1")
  61.     cvar_dmgmult = register_cvar("zp_chainsaw_damage_mult", "6.5")
  62.     cvar_dmggore = register_cvar("zp_chainsaw_gore_in_damage", "1")
  63.     cvar_oneround = register_cvar("zp_chainsaw_oneround", "0")
  64.     cvar_dropflags = register_cvar("zp_chainsaw_drop_flags", "abcd")
  65.     cvar_body_xplode = register_cvar("zp_chainsaw_victim_explode", "1")
  66.     cvar_pattack_rate = register_cvar("zp_chainsaw_attack1_rate", "0.6")
  67.     cvar_sattack_rate = register_cvar("zp_chainsaw_attack2_rate", "1.2")
  68.     cvar_pattack_recoil = register_cvar("zp_chainsaw_attack1_recoil", "-5.6")
  69.     cvar_sattack_recoil = register_cvar("zp_chainsaw_attack2_recoil", "-8.0")
  70.      
  71.     g_armor_amount = register_cvar("zp_armor_amount", "999")
  72.     g_armor_limit = register_cvar("zp_armor_limit", "999")
  73.     g_hp_amount = register_cvar("zp_hp_amount", "2500")
  74.          
  75.      
  76.     new szCvar[30]
  77.     formatex(szCvar, charsmax(szCvar), "v%s by %s", PLUG_VERSION, PLUG_AUTH)
  78.     register_cvar("zp_extra_chainsaw", szCvar, FCVAR_SERVER|FCVAR_SPONLY)
  79.      
  80.     register_forward(FM_EmitSound, "fw_EmitSound")
  81.      
  82.     register_touch("cs_chainsaw", "player", "fw_Chainsaw_Touch")
  83.      
  84.     RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
  85.     RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
  86.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  87.     RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fw_Knife_PrimaryAttack_Post", 1)
  88.     RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_Knife_SecondaryAttack_Post", 1)
  89.      
  90.     g_iItemID = ze_register_item("Chainsaw", chainsaw_ap_cost, 0)
  91.      
  92.     g_msgCurWeapon = get_user_msgid("CurWeapon")
  93.      
  94.     register_clcmd("drop", "clcmd_drop")
  95. }
  96.  
  97. public  plugin_natives ()
  98. {
  99.       register_native("zp_get_user_chain", "native_get_chain", 1)
  100.       register_native("zp_set_user_chain", "native_set_chain", 1)
  101. }
  102.  
  103. public native_get_chain(param)
  104. {
  105.       return g_iHasChainsaw[param]
  106. }
  107.  
  108. public native_set_chain(id, param)
  109. {
  110.       g_iHasChainsaw[id] = true
  111.  
  112.       set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  113.       set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  114.  
  115.       emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  116.  
  117.       set_pev(id, pev_armorvalue, float(min(pev(id, pev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
  118.       fm_set_user_armor(id, get_pcvar_num(g_armor_amount))
  119.       fm_set_user_health(id, get_pcvar_num(g_hp_amount))
  120.       engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_buyarmor, 1.0, ATTN_NORM, 0, PITCH_NORM)
  121.  
  122.       reset_user_knife(id)
  123. }
  124.      
  125. public ze_select_item_pre(id, itemid)
  126. {
  127.     // Return Available and we will block it in Post, So it dosen't affect other plugins
  128.     if (itemid != g_itemid)
  129.         return ZE_ITEM_AVAILABLE
  130.    
  131.     // Available for Humans only, So don't show it for zombies
  132.     if (ze_is_user_zombie(id))
  133.         return ZE_ITEM_DONT_SHOW
  134.    
  135.     return ZE_ITEM_AVAILABLE
  136. }
  137.  
  138. public plugin_precache()
  139. {
  140.     precache_model(chainsaw_viewmodel)
  141.     precache_model(chainsaw_playermodel)
  142.     precache_model(chainsaw_worldmodel)
  143.      
  144.     for(new i = 0; i < sizeof chainsaw_sounds; i++)
  145.         precache_sound(chainsaw_sounds[i])
  146.          
  147.     precache_sound("items/gunpickup2.wav")
  148.     precache_sound(g_sound_buyarmor)
  149. }
  150.  
  151. public event_RoundStart()
  152. {
  153.     remove_entity_name("cs_chainsaw")
  154. }
  155.  
  156. public event_CurWeapon(id)
  157. {
  158.     if(!is_user_alive(id))
  159.         return PLUGIN_CONTINUE
  160.          
  161.     g_iCurrentWeapon[id] = read_data(2)
  162.      
  163.     if(ze_is_user_zombie(id))
  164.         return PLUGIN_CONTINUE
  165.          
  166.     if(!g_iHasChainsaw[id] || g_iCurrentWeapon[id] != CSW_KNIFE)  
  167.         return PLUGIN_CONTINUE
  168.          
  169.     set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  170.     set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  171.          
  172.     return PLUGIN_CONTINUE
  173. }
  174.  
  175. public clcmd_drop(id)
  176. {
  177.     if(g_iHasChainsaw[id] && g_iCurrentWeapon[id] == CSW_KNIFE)
  178.     {
  179.         if(check_drop_flag(DROPFLAG_NORMAL))
  180.         {
  181.             drop_chainsaw(id)
  182.             return PLUGIN_HANDLED
  183.         }
  184.     }
  185.  
  186.     return PLUGIN_CONTINUE
  187. }
  188.  
  189. public drop_chainsaw(id)  
  190. {
  191.     static Float:flAim[3], Float:flOrigin[3]
  192.     VelocityByAim(id, 64, flAim)
  193.     entity_get_vector(id, EV_VEC_origin, flOrigin)
  194.      
  195.     flOrigin[0] += flAim[0]
  196.     flOrigin[1] += flAim[1]
  197.      
  198.     new iEnt = create_entity("info_target")
  199.      
  200.     entity_set_string(iEnt, EV_SZ_classname, "cs_chainsaw")
  201.      
  202.     entity_set_origin(iEnt, flOrigin)
  203.      
  204.     entity_set_model(iEnt, chainsaw_worldmodel)
  205.      
  206.     set_size(iEnt, chainsaw_mins, chainsaw_maxs)
  207.     entity_set_vector(iEnt, EV_VEC_mins, chainsaw_mins)
  208.     entity_set_vector(iEnt, EV_VEC_maxs, chainsaw_maxs)
  209.      
  210.     entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER)
  211.      
  212.     entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS)
  213.      
  214.     g_iHasChainsaw[id] = false
  215.         set_pev(id, pev_body, random_num(0, 3))
  216.     reset_user_knife(id)
  217. }
  218.  
  219. public reset_user_knife(id)
  220. {
  221.     if(user_has_weapon(id, CSW_KNIFE))
  222.         ExecuteHamB(Ham_Item_Deploy, find_ent_by_owner(-1, "weapon_knife", id))
  223.          
  224.     engclient_cmd(id, "weapon_knife")
  225.     emessage_begin(MSG_ONE, g_msgCurWeapon, _, id)
  226.     ewrite_byte(1)
  227.     ewrite_byte(CSW_KNIFE)
  228.     ewrite_byte(-1)
  229.     emessage_end()
  230. }
  231.  
  232. public ze_select_item_post(id, itemid)
  233. {
  234.     if (itemid == g_iItemID)
  235.     {
  236.         if(get_pcvar_num(cvar_enable))
  237.         {
  238.             if (get_playersnum() <= MIN_PLAYERS)
  239.             {
  240.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yДля покупки бензопилы требуется минимум !team%d игрока!", MIN_PLAYERS)
  241.                 ze_set_escape_coins(id, ze_set_escape_coins(id) + chainsaw_ap_cost)
  242.                 return
  243.             }
  244.             if (g_iHasChainsaw[id])
  245.             {
  246.                 ze_set_escape_coins(id, ze_set_escape_coins(id) + chainsaw_ap_cost)
  247.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yÐ’Ñ‹ уже имеете !teamбензопилу!")
  248.             }
  249.             else  
  250.             {
  251.                                 engclient_cmd(id, "weapon_knife")
  252.  
  253.                                 set_pev(id, pev_body, 6)
  254.  
  255.                 g_iHasChainsaw[id] = true
  256.                                 set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  257.                             set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  258.                                 emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  259.  
  260.                 set_pev(id, pev_armorvalue, float(min(pev(id, pev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
  261.                 fm_set_user_armor(id, get_pcvar_num(g_armor_amount))
  262.                 fm_set_user_health(id, get_pcvar_num(g_hp_amount))
  263.                 engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_buyarmor, 1.0, ATTN_NORM, 0, PITCH_NORM)
  264.  
  265.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yÐ’Ñ‹ купили !teamбензопилу!")
  266.                 reset_user_knife(id)
  267.             }
  268.  
  269.         }
  270.         else
  271.         {
  272.             ze_set_escape_coins(id, ze_set_escape_coins(id) + chainsaw_ap_cost)
  273.             ChatColor(id, "!g[Darkess-Project, Бензопила] !yБензопила была временно !teamотключена!")
  274.         }
  275.     }
  276. }
  277.  
  278. public ze_user_infected(id, iInfector)
  279. {
  280.     if (g_iHasChainsaw[id])
  281.     {
  282.         if(check_drop_flag(DROPFLAG_INFECTED))
  283.             drop_chainsaw(id)
  284.         else
  285.         {
  286.             g_iHasChainsaw[id] = false
  287.             reset_user_knife(id)
  288.         }
  289.     }
  290. }
  291.  
  292. public client_putinserver(id)
  293. {
  294.     g_iHasChainsaw[id] = false
  295. }
  296.  
  297. public client_disconnect(id)
  298. {
  299.     g_iHasChainsaw[id] = false
  300. }
  301.      
  302. public fw_PlayerSpawn_Post(id)
  303. {
  304.     if(get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable))
  305.     {
  306.         if(g_iHasChainsaw[id])
  307.         {
  308.             g_iHasChainsaw[id] = false
  309.  
  310.             reset_user_knife(id)
  311.         }
  312.     }
  313. }
  314.  
  315. public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
  316. {    
  317.     if(victim == attacker || !attacker)
  318.         return HAM_IGNORED
  319.          
  320.     if(!is_user_connected(attacker))
  321.         return HAM_IGNORED
  322.          
  323.     if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE)
  324.     {
  325.         if(get_pcvar_num(cvar_dmggore))
  326.             a_lot_of_blood(victim)
  327.              
  328.         SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmgmult))    
  329.     }
  330.  
  331.     return HAM_IGNORED
  332. }
  333.  
  334. public fw_PlayerKilled(victim, attacker, shouldgib)
  335. {
  336.     if(victim == attacker || !attacker)
  337.         return HAM_IGNORED
  338.          
  339.     if(!is_user_connected(attacker))
  340.         return HAM_IGNORED
  341.          
  342.     if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE &&  get_pcvar_num(cvar_body_xplode))
  343.         SetHamParamInteger(3, 2)
  344.      
  345.     if(g_iHasChainsaw[victim])
  346.     {
  347.         if(check_drop_flag(DROPFLAG_INDEATH))
  348.             drop_chainsaw(victim)
  349.             else
  350.             {
  351.                 g_iHasChainsaw[victim] = false
  352.                 reset_user_knife(victim)
  353.             }
  354.     }
  355.      
  356.     return HAM_IGNORED
  357. }
  358.  
  359. public fw_Chainsaw_Touch(saw, player)
  360. {
  361.     if(!is_valid_ent(saw) || !is_valid_ent(player))
  362.         return PLUGIN_CONTINUE
  363.          
  364.     if(!is_user_connected(player))
  365.         return PLUGIN_CONTINUE
  366.          
  367.     if(!is_user_alive(player) || ze_is_user_zombie(player) || g_iHasChainsaw[player])
  368.         return PLUGIN_CONTINUE
  369.          
  370.     g_iHasChainsaw[player] = true
  371.      
  372.     emit_sound(player, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  373.      
  374.     reset_user_knife(player)
  375.      
  376.     remove_entity(saw)
  377.          
  378.     return PLUGIN_CONTINUE
  379. }
  380.  
  381. public fw_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
  382. {
  383.         if(!is_user_connected(id))
  384.                 return FMRES_IGNORED
  385.          
  386.         if(!is_user_alive(id) || ze_is_user_zombie(id) || !g_iHasChainsaw[id] || !get_pcvar_num(cvar_sounds))
  387.                 return FMRES_IGNORED
  388.          
  389.    
  390.         if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
  391.     {
  392.        
  393.         if (sample[14] == 'd')  
  394.         {
  395.                 emit_sound(id, channel, chainsaw_sounds[0], volume, attn, flags, pitch)
  396.         }
  397.         else if (sample[14] == 'h')
  398.         {
  399.             if (sample[17] == 'w')
  400.             {
  401.                 emit_sound(id, channel, chainsaw_sounds[3], volume, attn, flags, pitch)
  402.             }
  403.             else
  404.             {
  405.                 emit_sound(id, channel, chainsaw_sounds[random_num(1,2)], volume, attn, flags, pitch)
  406.             }
  407.         }
  408.         else
  409.         {
  410.             if (sample[15] == 'l')
  411.             {
  412.                 emit_sound(id, channel, chainsaw_sounds[4], volume, attn, flags, pitch)
  413.             }
  414.             else
  415.             {
  416.                 emit_sound(id, channel, chainsaw_sounds[5], volume, attn, flags, pitch)
  417.             }
  418.         }
  419.         return FMRES_SUPERCEDE
  420.     }
  421.     return FMRES_IGNORED
  422. }
  423.  
  424.  
  425. public fw_Knife_PrimaryAttack_Post(knife)
  426. {    
  427.     static id
  428.     id = get_pdata_cbase(knife, m_pPlayer, 4)
  429.      
  430.     if(is_user_connected(id) && g_iHasChainsaw[id])
  431.     {
  432.         static Float:flRate
  433.         flRate = get_pcvar_float(cvar_pattack_rate)
  434.          
  435.         set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
  436.         set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
  437.         set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
  438.          
  439.         static Float:flPunchAngle[3]
  440.         flPunchAngle[0] = get_pcvar_float(cvar_pattack_recoil)
  441.          
  442.         entity_set_vector(id, EV_VEC_punchangle, flPunchAngle)    
  443.     }
  444.      
  445.     return HAM_IGNORED
  446. }
  447.  
  448. public fw_Knife_SecondaryAttack_Post(knife)
  449. {    
  450.     static id
  451.     id = get_pdata_cbase(knife, m_pPlayer, 4)
  452.      
  453.     if(is_user_connected(id) && g_iHasChainsaw[id])
  454.     {
  455.         static Float:flRate
  456.         flRate = get_pcvar_float(cvar_sattack_rate)
  457.          
  458.         set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
  459.         set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
  460.         set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
  461.          
  462.         static Float:flPunchAngle[3]
  463.         flPunchAngle[0] = get_pcvar_float(cvar_sattack_recoil)
  464.          
  465.         entity_set_vector(id, EV_VEC_punchangle, flPunchAngle)
  466.     }
  467.      
  468.     return HAM_IGNORED
  469. }
  470.  
  471. check_drop_flag(flag)
  472. {
  473.     new szFlags[10]
  474.     get_pcvar_string(cvar_dropflags, szFlags, charsmax(szFlags))
  475.      
  476.     if(read_flags(szFlags) & flag)
  477.         return true
  478.          
  479.     return false
  480. }
  481.  
  482. a_lot_of_blood(id)
  483. {
  484.     static iOrigin[3]
  485.     get_user_origin(id, iOrigin)
  486.      
  487.     message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  488.     write_byte(TE_BLOODSTREAM)
  489.     write_coord(iOrigin[0])
  490.     write_coord(iOrigin[1])
  491.     write_coord(iOrigin[2]+10)
  492.     write_coord(random_num(-360, 360))
  493.     write_coord(random_num(-360, 360))
  494.     write_coord(-10)
  495.     write_byte(70)
  496.     write_byte(random_num(50, 100))
  497.     message_end()
  498.      
  499.     for (new j = 0; j < 4; j++)  
  500.     {
  501.         message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  502.         write_byte(TE_WORLDDECAL)
  503.         write_coord(iOrigin[0]+random_num(-100, 100))
  504.         write_coord(iOrigin[1]+random_num(-100, 100))
  505.         write_coord(iOrigin[2]-36)
  506.         write_byte(random_num(190, 197))
  507.         message_end()
  508.     }
  509. }
  510.  
  511. stock ChatColor(const id, const input[], any:...)
  512. {
  513.     new count = 1, players[32]
  514.     static msg[191]
  515.     vformat(msg, 190, input, 3)
  516.    
  517.     replace_all(msg, 190, "!g", "^4")
  518.     replace_all(msg, 190, "!y", "^1")
  519.     replace_all(msg, 190, "!team", "^3")
  520.    
  521.     if (id) players[0] = id; else get_players(players, count, "ch")
  522.     {
  523.         for (new i = 0; i < count; i++)
  524.         {
  525.             if (is_user_connected(players[i]))
  526.             {
  527.                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  528.                 write_byte(players[i]);
  529.                 write_string(msg);
  530.                 message_end();
  531.             }
  532.         }
  533.     }
  534. }
DRK Zombie-Escape V1.6
IP : 81.169.153.129:27015

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#2

Post by Raheem » 3 years ago

Post errors u get.
He who fails to plan is planning to fail

User avatar
Luxurious
Mod Tester
Mod Tester
Egypt
Posts: 177
Joined: 6 years ago
Location: Egypt
Contact:

#3

Post by Luxurious » 3 years ago

Raheem wrote: 3 years agoPost errors u get.
  1. //// zp_extra_chainsaw.sma
  2. //
  3. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\include\engine.inc(799) : error 017: undefined symbol "kRenderFxNone"
  4. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(118) : error 017: undefined symbol "fm_set_user_armor"
  5. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(119) : error 017: undefined symbol "fm_set_user_health"
  6. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(128) : error 017: undefined symbol "g_itemid"
  7. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(241) : error 088: number of arguments does not match definition
  8. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(246) : error 088: number of arguments does not match definition
  9. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(261) : error 017: undefined symbol "fm_set_user_armor"
  10. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(262) : error 017: undefined symbol "fm_set_user_health"
  11. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(272) : error 088: number of arguments does not match definition
  12. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(298) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
  13. //
  14. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(428) : warning 213: tag mismatch
  15. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(437) : warning 213: tag mismatch
  16. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(451) : warning 213: tag mismatch
  17. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(460) : warning 213: tag mismatch
  18. //
  19. // 9 Errors.
  20. // Could not locate output file C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\compiled\zp_extra_chainsaw.amx (compile failed).
  21. //
DRK Zombie-Escape V1.6
IP : 81.169.153.129:27015

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#4

Post by Raheem » 3 years ago

  1. #include <zombie_escape>
  2. #include <fakemeta>
  3. #include <fakemeta_util>
  4. #include <engine>
  5.  
  6. const chainsaw_ap_cost = 59000
  7.  
  8. new const g_sound_buyarmor[] = { "items/tr_kevlar.wav" }
  9. new g_armor_amount, g_armor_limit, g_hp_amount
  10.  
  11. new const chainsaw_viewmodel[] = "models/talrasha/weapons/chainsaw/v_chainsaw.mdl"
  12. new const chainsaw_playermodel[] = "models/talrasha/weapons/chainsaw/p_chainsaw.mdl"
  13. new const chainsaw_worldmodel[] = "models/talrasha/weapons/chainsaw/w_chainsaw.mdl"
  14.  
  15. new const chainsaw_sounds[][] =
  16. {
  17.     "talrasha/weapons/chainsaw/chainsaw_deploy.wav",
  18.     "talrasha/weapons/chainsaw/chainsaw_hit1.wav",
  19.     "talrasha/weapons/chainsaw/chainsaw_hit2.wav",
  20.     "talrasha/weapons/chainsaw/chainsaw_hit1.wav",
  21.     "talrasha/weapons/chainsaw/chainsaw_hit2.wav",
  22.     "talrasha/weapons/chainsaw/chainsaw_hitwall.wav",
  23.     "talrasha/weapons/chainsaw/chainsaw_miss.wav",
  24.     "talrasha/weapons/chainsaw/chainsaw_miss.wav",
  25.     "talrasha/weapons/chainsaw/chainsaw_stab.wav"
  26. }
  27.  
  28. new Float:chainsaw_mins[3] = { -2.0, -2.0, -2.0 }
  29. new Float:chainsaw_maxs[3] = { 2.0, 2.0, 2.0 }
  30.  
  31. new g_iItemID, g_msgCurWeapon
  32.  
  33. new g_iHasChainsaw[33], g_iCurrentWeapon[33]
  34.  
  35. new cvar_enable, cvar_dmgmult, cvar_oneround, cvar_sounds, cvar_dmggore, cvar_dropflags,
  36. cvar_pattack_rate, cvar_sattack_rate, cvar_pattack_recoil, cvar_sattack_recoil, cvar_body_xplode
  37.  
  38. const DROPFLAG_NORMAL =         (1<<0)
  39. const DROPFLAG_INDEATH =    (1<<1)
  40. const DROPFLAG_INFECTED =    (1<<2)
  41. const DROPFLAG_SURVHUMAN =    (1<<3)
  42.  
  43. const m_pPlayer =         41
  44. const m_flNextPrimaryAttack =     46
  45. const m_flNextSecondaryAttack =    47
  46. const m_flTimeWeaponIdle =     48
  47.  
  48. #define PLUG_VERSION "1.0"
  49. #define PLUG_AUTH "eldon, RLY?"
  50.  
  51. #define MIN_PLAYERS 24
  52.  
  53. public plugin_init()
  54. {
  55.     register_plugin("[ZP] Extra: Chainsaw", PLUG_VERSION, PLUG_AUTH)
  56.      
  57.     register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0")
  58.     register_event("CurWeapon", "event_CurWeapon", "b", "1=1")
  59.      
  60.     cvar_enable = register_cvar("zp_chainsaw_enable", "1")
  61.     cvar_sounds = register_cvar("zp_chainsaw_custom_sounds", "1")
  62.     cvar_dmgmult = register_cvar("zp_chainsaw_damage_mult", "6.5")
  63.     cvar_dmggore = register_cvar("zp_chainsaw_gore_in_damage", "1")
  64.     cvar_oneround = register_cvar("zp_chainsaw_oneround", "0")
  65.     cvar_dropflags = register_cvar("zp_chainsaw_drop_flags", "abcd")
  66.     cvar_body_xplode = register_cvar("zp_chainsaw_victim_explode", "1")
  67.     cvar_pattack_rate = register_cvar("zp_chainsaw_attack1_rate", "0.6")
  68.     cvar_sattack_rate = register_cvar("zp_chainsaw_attack2_rate", "1.2")
  69.     cvar_pattack_recoil = register_cvar("zp_chainsaw_attack1_recoil", "-5.6")
  70.     cvar_sattack_recoil = register_cvar("zp_chainsaw_attack2_recoil", "-8.0")
  71.      
  72.     g_armor_amount = register_cvar("zp_armor_amount", "999")
  73.     g_armor_limit = register_cvar("zp_armor_limit", "999")
  74.     g_hp_amount = register_cvar("zp_hp_amount", "2500")
  75.          
  76.      
  77.     new szCvar[30]
  78.     formatex(szCvar, charsmax(szCvar), "v%s by %s", PLUG_VERSION, PLUG_AUTH)
  79.     register_cvar("zp_extra_chainsaw", szCvar, FCVAR_SERVER|FCVAR_SPONLY)
  80.      
  81.     register_forward(FM_EmitSound, "fw_EmitSound")
  82.      
  83.     register_touch("cs_chainsaw", "player", "fw_Chainsaw_Touch")
  84.      
  85.     RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
  86.     RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
  87.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  88.     RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fw_Knife_PrimaryAttack_Post", 1)
  89.     RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_Knife_SecondaryAttack_Post", 1)
  90.      
  91.     g_iItemID = ze_register_item("Chainsaw", chainsaw_ap_cost, 0)
  92.      
  93.     g_msgCurWeapon = get_user_msgid("CurWeapon")
  94.      
  95.     register_clcmd("drop", "clcmd_drop")
  96. }
  97.  
  98. public  plugin_natives ()
  99. {
  100.       register_native("zp_get_user_chain", "native_get_chain", 1)
  101.       register_native("zp_set_user_chain", "native_set_chain", 1)
  102. }
  103.  
  104. public native_get_chain(param)
  105. {
  106.       return g_iHasChainsaw[param]
  107. }
  108.  
  109. public native_set_chain(id, param)
  110. {
  111.       g_iHasChainsaw[id] = true
  112.  
  113.       set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  114.       set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  115.  
  116.       emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  117.  
  118.       set_pev(id, pev_armorvalue, float(min(pev(id, pev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
  119.       fm_set_user_armor(id, get_pcvar_num(g_armor_amount))
  120.       fm_set_user_health(id, get_pcvar_num(g_hp_amount))
  121.       engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_buyarmor, 1.0, ATTN_NORM, 0, PITCH_NORM)
  122.  
  123.       reset_user_knife(id)
  124. }
  125.      
  126. public ze_select_item_pre(id, itemid)
  127. {
  128.     // Return Available and we will block it in Post, So it dosen't affect other plugins
  129.     if (itemid != g_iItemID)
  130.         return ZE_ITEM_AVAILABLE
  131.    
  132.     // Available for Humans only, So don't show it for zombies
  133.     if (ze_is_user_zombie(id))
  134.         return ZE_ITEM_DONT_SHOW
  135.    
  136.     return ZE_ITEM_AVAILABLE
  137. }
  138.  
  139. public plugin_precache()
  140. {
  141.     precache_model(chainsaw_viewmodel)
  142.     precache_model(chainsaw_playermodel)
  143.     precache_model(chainsaw_worldmodel)
  144.      
  145.     for(new i = 0; i < sizeof chainsaw_sounds; i++)
  146.         precache_sound(chainsaw_sounds[i])
  147.          
  148.     precache_sound("items/gunpickup2.wav")
  149.     precache_sound(g_sound_buyarmor)
  150. }
  151.  
  152. public event_RoundStart()
  153. {
  154.     remove_entity_name("cs_chainsaw")
  155. }
  156.  
  157. public event_CurWeapon(id)
  158. {
  159.     if(!is_user_alive(id))
  160.         return PLUGIN_CONTINUE
  161.          
  162.     g_iCurrentWeapon[id] = read_data(2)
  163.      
  164.     if(ze_is_user_zombie(id))
  165.         return PLUGIN_CONTINUE
  166.          
  167.     if(!g_iHasChainsaw[id] || g_iCurrentWeapon[id] != CSW_KNIFE)  
  168.         return PLUGIN_CONTINUE
  169.          
  170.     set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  171.     set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  172.          
  173.     return PLUGIN_CONTINUE
  174. }
  175.  
  176. public clcmd_drop(id)
  177. {
  178.     if(g_iHasChainsaw[id] && g_iCurrentWeapon[id] == CSW_KNIFE)
  179.     {
  180.         if(check_drop_flag(DROPFLAG_NORMAL))
  181.         {
  182.             drop_chainsaw(id)
  183.             return PLUGIN_HANDLED
  184.         }
  185.     }
  186.  
  187.     return PLUGIN_CONTINUE
  188. }
  189.  
  190. public drop_chainsaw(id)  
  191. {
  192.     static Float:flAim[3], Float:flOrigin[3]
  193.     VelocityByAim(id, 64, flAim)
  194.     entity_get_vector(id, EV_VEC_origin, flOrigin)
  195.      
  196.     flOrigin[0] += flAim[0]
  197.     flOrigin[1] += flAim[1]
  198.      
  199.     new iEnt = create_entity("info_target")
  200.      
  201.     entity_set_string(iEnt, EV_SZ_classname, "cs_chainsaw")
  202.      
  203.     entity_set_origin(iEnt, flOrigin)
  204.      
  205.     entity_set_model(iEnt, chainsaw_worldmodel)
  206.      
  207.     set_size(iEnt, chainsaw_mins, chainsaw_maxs)
  208.     entity_set_vector(iEnt, EV_VEC_mins, chainsaw_mins)
  209.     entity_set_vector(iEnt, EV_VEC_maxs, chainsaw_maxs)
  210.      
  211.     entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER)
  212.      
  213.     entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS)
  214.      
  215.     g_iHasChainsaw[id] = false
  216.         set_pev(id, pev_body, random_num(0, 3))
  217.     reset_user_knife(id)
  218. }
  219.  
  220. public reset_user_knife(id)
  221. {
  222.     if(user_has_weapon(id, CSW_KNIFE))
  223.         ExecuteHamB(Ham_Item_Deploy, find_ent_by_owner(-1, "weapon_knife", id))
  224.          
  225.     engclient_cmd(id, "weapon_knife")
  226.     emessage_begin(MSG_ONE, g_msgCurWeapon, _, id)
  227.     ewrite_byte(1)
  228.     ewrite_byte(CSW_KNIFE)
  229.     ewrite_byte(-1)
  230.     emessage_end()
  231. }
  232.  
  233. public ze_select_item_post(id, itemid)
  234. {
  235.     if (itemid == g_iItemID)
  236.     {
  237.         if(get_pcvar_num(cvar_enable))
  238.         {
  239.             if (get_playersnum() <= MIN_PLAYERS)
  240.             {
  241.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yДля покупки бензопилы требуется минимум !team%d игрока!", MIN_PLAYERS)
  242.                 ze_set_escape_coins(id, ze_get_escape_coins(id) + chainsaw_ap_cost)
  243.                 return
  244.             }
  245.             if (g_iHasChainsaw[id])
  246.             {
  247.                 ze_set_escape_coins(id, ze_get_escape_coins(id) + chainsaw_ap_cost)
  248.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yÐ’Ñ‹ уже имеете !teamбензопилу!")
  249.             }
  250.             else  
  251.             {
  252.                                 engclient_cmd(id, "weapon_knife")
  253.  
  254.                                 set_pev(id, pev_body, 6)
  255.  
  256.                 g_iHasChainsaw[id] = true
  257.                                 set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  258.                             set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  259.                                 emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  260.  
  261.                 set_pev(id, pev_armorvalue, float(min(pev(id, pev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
  262.                 fm_set_user_armor(id, get_pcvar_num(g_armor_amount))
  263.                 fm_set_user_health(id, get_pcvar_num(g_hp_amount))
  264.                 engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_buyarmor, 1.0, ATTN_NORM, 0, PITCH_NORM)
  265.  
  266.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yÐ’Ñ‹ купили !teamбензопилу!")
  267.                 reset_user_knife(id)
  268.             }
  269.  
  270.         }
  271.         else
  272.         {
  273.             ze_set_escape_coins(id, ze_get_escape_coins(id) + chainsaw_ap_cost)
  274.             ChatColor(id, "!g[Darkess-Project, Бензопила] !yБензопила была временно !teamотключена!")
  275.         }
  276.     }
  277. }
  278.  
  279. public ze_user_infected(id, iInfector)
  280. {
  281.     if (g_iHasChainsaw[id])
  282.     {
  283.         if(check_drop_flag(DROPFLAG_INFECTED))
  284.             drop_chainsaw(id)
  285.         else
  286.         {
  287.             g_iHasChainsaw[id] = false
  288.             reset_user_knife(id)
  289.         }
  290.     }
  291. }
  292.  
  293. public client_putinserver(id)
  294. {
  295.     g_iHasChainsaw[id] = false
  296. }
  297.  
  298. public client_disconnected(id)
  299. {
  300.     g_iHasChainsaw[id] = false
  301. }
  302.      
  303. public fw_PlayerSpawn_Post(id)
  304. {
  305.     if(get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable))
  306.     {
  307.         if(g_iHasChainsaw[id])
  308.         {
  309.             g_iHasChainsaw[id] = false
  310.  
  311.             reset_user_knife(id)
  312.         }
  313.     }
  314. }
  315.  
  316. public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
  317. {    
  318.     if(victim == attacker || !attacker)
  319.         return HAM_IGNORED
  320.          
  321.     if(!is_user_connected(attacker))
  322.         return HAM_IGNORED
  323.          
  324.     if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE)
  325.     {
  326.         if(get_pcvar_num(cvar_dmggore))
  327.             a_lot_of_blood(victim)
  328.              
  329.         SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmgmult))    
  330.     }
  331.  
  332.     return HAM_IGNORED
  333. }
  334.  
  335. public fw_PlayerKilled(victim, attacker, shouldgib)
  336. {
  337.     if(victim == attacker || !attacker)
  338.         return HAM_IGNORED
  339.          
  340.     if(!is_user_connected(attacker))
  341.         return HAM_IGNORED
  342.          
  343.     if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE &&  get_pcvar_num(cvar_body_xplode))
  344.         SetHamParamInteger(3, 2)
  345.      
  346.     if(g_iHasChainsaw[victim])
  347.     {
  348.         if(check_drop_flag(DROPFLAG_INDEATH))
  349.             drop_chainsaw(victim)
  350.             else
  351.             {
  352.                 g_iHasChainsaw[victim] = false
  353.                 reset_user_knife(victim)
  354.             }
  355.     }
  356.      
  357.     return HAM_IGNORED
  358. }
  359.  
  360. public fw_Chainsaw_Touch(saw, player)
  361. {
  362.     if(!is_valid_ent(saw) || !is_valid_ent(player))
  363.         return PLUGIN_CONTINUE
  364.          
  365.     if(!is_user_connected(player))
  366.         return PLUGIN_CONTINUE
  367.          
  368.     if(!is_user_alive(player) || ze_is_user_zombie(player) || g_iHasChainsaw[player])
  369.         return PLUGIN_CONTINUE
  370.          
  371.     g_iHasChainsaw[player] = true
  372.      
  373.     emit_sound(player, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  374.      
  375.     reset_user_knife(player)
  376.      
  377.     remove_entity(saw)
  378.          
  379.     return PLUGIN_CONTINUE
  380. }
  381.  
  382. public fw_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
  383. {
  384.         if(!is_user_connected(id))
  385.                 return FMRES_IGNORED
  386.          
  387.         if(!is_user_alive(id) || ze_is_user_zombie(id) || !g_iHasChainsaw[id] || !get_pcvar_num(cvar_sounds))
  388.                 return FMRES_IGNORED
  389.          
  390.    
  391.         if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
  392.     {
  393.        
  394.         if (sample[14] == 'd')  
  395.         {
  396.                 emit_sound(id, channel, chainsaw_sounds[0], volume, attn, flags, pitch)
  397.         }
  398.         else if (sample[14] == 'h')
  399.         {
  400.             if (sample[17] == 'w')
  401.             {
  402.                 emit_sound(id, channel, chainsaw_sounds[3], volume, attn, flags, pitch)
  403.             }
  404.             else
  405.             {
  406.                 emit_sound(id, channel, chainsaw_sounds[random_num(1,2)], volume, attn, flags, pitch)
  407.             }
  408.         }
  409.         else
  410.         {
  411.             if (sample[15] == 'l')
  412.             {
  413.                 emit_sound(id, channel, chainsaw_sounds[4], volume, attn, flags, pitch)
  414.             }
  415.             else
  416.             {
  417.                 emit_sound(id, channel, chainsaw_sounds[5], volume, attn, flags, pitch)
  418.             }
  419.         }
  420.         return FMRES_SUPERCEDE
  421.     }
  422.     return FMRES_IGNORED
  423. }
  424.  
  425.  
  426. public fw_Knife_PrimaryAttack_Post(knife)
  427. {    
  428.     static id
  429.     id = get_pdata_cbase(knife, m_pPlayer, 4)
  430.      
  431.     if(is_user_connected(id) && g_iHasChainsaw[id])
  432.     {
  433.         static Float:flRate
  434.         flRate = get_pcvar_float(cvar_pattack_rate)
  435.          
  436.         set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
  437.         set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
  438.         set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
  439.          
  440.         static Float:flPunchAngle[3]
  441.         flPunchAngle[0] = get_pcvar_float(cvar_pattack_recoil)
  442.          
  443.         entity_set_vector(id, EV_VEC_punchangle, flPunchAngle)    
  444.     }
  445.      
  446.     return HAM_IGNORED
  447. }
  448.  
  449. public fw_Knife_SecondaryAttack_Post(knife)
  450. {    
  451.     static id
  452.     id = get_pdata_cbase(knife, m_pPlayer, 4)
  453.      
  454.     if(is_user_connected(id) && g_iHasChainsaw[id])
  455.     {
  456.         static Float:flRate
  457.         flRate = get_pcvar_float(cvar_sattack_rate)
  458.          
  459.         set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
  460.         set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
  461.         set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
  462.          
  463.         static Float:flPunchAngle[3]
  464.         flPunchAngle[0] = get_pcvar_float(cvar_sattack_recoil)
  465.          
  466.         entity_set_vector(id, EV_VEC_punchangle, flPunchAngle)
  467.     }
  468.      
  469.     return HAM_IGNORED
  470. }
  471.  
  472. check_drop_flag(flag)
  473. {
  474.     new szFlags[10]
  475.     get_pcvar_string(cvar_dropflags, szFlags, charsmax(szFlags))
  476.      
  477.     if(read_flags(szFlags) & flag)
  478.         return true
  479.          
  480.     return false
  481. }
  482.  
  483. a_lot_of_blood(id)
  484. {
  485.     static iOrigin[3]
  486.     get_user_origin(id, iOrigin)
  487.      
  488.     message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  489.     write_byte(TE_BLOODSTREAM)
  490.     write_coord(iOrigin[0])
  491.     write_coord(iOrigin[1])
  492.     write_coord(iOrigin[2]+10)
  493.     write_coord(random_num(-360, 360))
  494.     write_coord(random_num(-360, 360))
  495.     write_coord(-10)
  496.     write_byte(70)
  497.     write_byte(random_num(50, 100))
  498.     message_end()
  499.      
  500.     for (new j = 0; j < 4; j++)  
  501.     {
  502.         message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  503.         write_byte(TE_WORLDDECAL)
  504.         write_coord(iOrigin[0]+random_num(-100, 100))
  505.         write_coord(iOrigin[1]+random_num(-100, 100))
  506.         write_coord(iOrigin[2]-36)
  507.         write_byte(random_num(190, 197))
  508.         message_end()
  509.     }
  510. }
  511.  
  512. stock ChatColor(const id, const input[], any:...)
  513. {
  514.     new count = 1, players[32]
  515.     static msg[191]
  516.     vformat(msg, 190, input, 3)
  517.    
  518.     replace_all(msg, 190, "!g", "^4")
  519.     replace_all(msg, 190, "!y", "^1")
  520.     replace_all(msg, 190, "!team", "^3")
  521.    
  522.     if (id) players[0] = id; else get_players(players, count, "ch")
  523.     {
  524.         for (new i = 0; i < count; i++)
  525.         {
  526.             if (is_user_connected(players[i]))
  527.             {
  528.                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  529.                 write_byte(players[i]);
  530.                 write_string(msg);
  531.                 message_end();
  532.             }
  533.         }
  534.     }
  535. }
He who fails to plan is planning to fail

User avatar
Luxurious
Mod Tester
Mod Tester
Egypt
Posts: 177
Joined: 6 years ago
Location: Egypt
Contact:

#5

Post by Luxurious » 3 years ago

Raheem wrote: 3 years ago
  1. #include <zombie_escape>
  2. #include <fakemeta>
  3. #include <fakemeta_util>
  4. #include <engine>
  5.  
  6. const chainsaw_ap_cost = 59000
  7.  
  8. new const g_sound_buyarmor[] = { "items/tr_kevlar.wav" }
  9. new g_armor_amount, g_armor_limit, g_hp_amount
  10.  
  11. new const chainsaw_viewmodel[] = "models/talrasha/weapons/chainsaw/v_chainsaw.mdl"
  12. new const chainsaw_playermodel[] = "models/talrasha/weapons/chainsaw/p_chainsaw.mdl"
  13. new const chainsaw_worldmodel[] = "models/talrasha/weapons/chainsaw/w_chainsaw.mdl"
  14.  
  15. new const chainsaw_sounds[][] =
  16. {
  17.     "talrasha/weapons/chainsaw/chainsaw_deploy.wav",
  18.     "talrasha/weapons/chainsaw/chainsaw_hit1.wav",
  19.     "talrasha/weapons/chainsaw/chainsaw_hit2.wav",
  20.     "talrasha/weapons/chainsaw/chainsaw_hit1.wav",
  21.     "talrasha/weapons/chainsaw/chainsaw_hit2.wav",
  22.     "talrasha/weapons/chainsaw/chainsaw_hitwall.wav",
  23.     "talrasha/weapons/chainsaw/chainsaw_miss.wav",
  24.     "talrasha/weapons/chainsaw/chainsaw_miss.wav",
  25.     "talrasha/weapons/chainsaw/chainsaw_stab.wav"
  26. }
  27.  
  28. new Float:chainsaw_mins[3] = { -2.0, -2.0, -2.0 }
  29. new Float:chainsaw_maxs[3] = { 2.0, 2.0, 2.0 }
  30.  
  31. new g_iItemID, g_msgCurWeapon
  32.  
  33. new g_iHasChainsaw[33], g_iCurrentWeapon[33]
  34.  
  35. new cvar_enable, cvar_dmgmult, cvar_oneround, cvar_sounds, cvar_dmggore, cvar_dropflags,
  36. cvar_pattack_rate, cvar_sattack_rate, cvar_pattack_recoil, cvar_sattack_recoil, cvar_body_xplode
  37.  
  38. const DROPFLAG_NORMAL =         (1<<0)
  39. const DROPFLAG_INDEATH =    (1<<1)
  40. const DROPFLAG_INFECTED =    (1<<2)
  41. const DROPFLAG_SURVHUMAN =    (1<<3)
  42.  
  43. const m_pPlayer =         41
  44. const m_flNextPrimaryAttack =     46
  45. const m_flNextSecondaryAttack =    47
  46. const m_flTimeWeaponIdle =     48
  47.  
  48. #define PLUG_VERSION "1.0"
  49. #define PLUG_AUTH "eldon, RLY?"
  50.  
  51. #define MIN_PLAYERS 24
  52.  
  53. public plugin_init()
  54. {
  55.     register_plugin("[ZP] Extra: Chainsaw", PLUG_VERSION, PLUG_AUTH)
  56.      
  57.     register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0")
  58.     register_event("CurWeapon", "event_CurWeapon", "b", "1=1")
  59.      
  60.     cvar_enable = register_cvar("zp_chainsaw_enable", "1")
  61.     cvar_sounds = register_cvar("zp_chainsaw_custom_sounds", "1")
  62.     cvar_dmgmult = register_cvar("zp_chainsaw_damage_mult", "6.5")
  63.     cvar_dmggore = register_cvar("zp_chainsaw_gore_in_damage", "1")
  64.     cvar_oneround = register_cvar("zp_chainsaw_oneround", "0")
  65.     cvar_dropflags = register_cvar("zp_chainsaw_drop_flags", "abcd")
  66.     cvar_body_xplode = register_cvar("zp_chainsaw_victim_explode", "1")
  67.     cvar_pattack_rate = register_cvar("zp_chainsaw_attack1_rate", "0.6")
  68.     cvar_sattack_rate = register_cvar("zp_chainsaw_attack2_rate", "1.2")
  69.     cvar_pattack_recoil = register_cvar("zp_chainsaw_attack1_recoil", "-5.6")
  70.     cvar_sattack_recoil = register_cvar("zp_chainsaw_attack2_recoil", "-8.0")
  71.      
  72.     g_armor_amount = register_cvar("zp_armor_amount", "999")
  73.     g_armor_limit = register_cvar("zp_armor_limit", "999")
  74.     g_hp_amount = register_cvar("zp_hp_amount", "2500")
  75.          
  76.      
  77.     new szCvar[30]
  78.     formatex(szCvar, charsmax(szCvar), "v%s by %s", PLUG_VERSION, PLUG_AUTH)
  79.     register_cvar("zp_extra_chainsaw", szCvar, FCVAR_SERVER|FCVAR_SPONLY)
  80.      
  81.     register_forward(FM_EmitSound, "fw_EmitSound")
  82.      
  83.     register_touch("cs_chainsaw", "player", "fw_Chainsaw_Touch")
  84.      
  85.     RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
  86.     RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
  87.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  88.     RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fw_Knife_PrimaryAttack_Post", 1)
  89.     RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_Knife_SecondaryAttack_Post", 1)
  90.      
  91.     g_iItemID = ze_register_item("Chainsaw", chainsaw_ap_cost, 0)
  92.      
  93.     g_msgCurWeapon = get_user_msgid("CurWeapon")
  94.      
  95.     register_clcmd("drop", "clcmd_drop")
  96. }
  97.  
  98. public  plugin_natives ()
  99. {
  100.       register_native("zp_get_user_chain", "native_get_chain", 1)
  101.       register_native("zp_set_user_chain", "native_set_chain", 1)
  102. }
  103.  
  104. public native_get_chain(param)
  105. {
  106.       return g_iHasChainsaw[param]
  107. }
  108.  
  109. public native_set_chain(id, param)
  110. {
  111.       g_iHasChainsaw[id] = true
  112.  
  113.       set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  114.       set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  115.  
  116.       emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  117.  
  118.       set_pev(id, pev_armorvalue, float(min(pev(id, pev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
  119.       fm_set_user_armor(id, get_pcvar_num(g_armor_amount))
  120.       fm_set_user_health(id, get_pcvar_num(g_hp_amount))
  121.       engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_buyarmor, 1.0, ATTN_NORM, 0, PITCH_NORM)
  122.  
  123.       reset_user_knife(id)
  124. }
  125.      
  126. public ze_select_item_pre(id, itemid)
  127. {
  128.     // Return Available and we will block it in Post, So it dosen't affect other plugins
  129.     if (itemid != g_iItemID)
  130.         return ZE_ITEM_AVAILABLE
  131.    
  132.     // Available for Humans only, So don't show it for zombies
  133.     if (ze_is_user_zombie(id))
  134.         return ZE_ITEM_DONT_SHOW
  135.    
  136.     return ZE_ITEM_AVAILABLE
  137. }
  138.  
  139. public plugin_precache()
  140. {
  141.     precache_model(chainsaw_viewmodel)
  142.     precache_model(chainsaw_playermodel)
  143.     precache_model(chainsaw_worldmodel)
  144.      
  145.     for(new i = 0; i < sizeof chainsaw_sounds; i++)
  146.         precache_sound(chainsaw_sounds[i])
  147.          
  148.     precache_sound("items/gunpickup2.wav")
  149.     precache_sound(g_sound_buyarmor)
  150. }
  151.  
  152. public event_RoundStart()
  153. {
  154.     remove_entity_name("cs_chainsaw")
  155. }
  156.  
  157. public event_CurWeapon(id)
  158. {
  159.     if(!is_user_alive(id))
  160.         return PLUGIN_CONTINUE
  161.          
  162.     g_iCurrentWeapon[id] = read_data(2)
  163.      
  164.     if(ze_is_user_zombie(id))
  165.         return PLUGIN_CONTINUE
  166.          
  167.     if(!g_iHasChainsaw[id] || g_iCurrentWeapon[id] != CSW_KNIFE)  
  168.         return PLUGIN_CONTINUE
  169.          
  170.     set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  171.     set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  172.          
  173.     return PLUGIN_CONTINUE
  174. }
  175.  
  176. public clcmd_drop(id)
  177. {
  178.     if(g_iHasChainsaw[id] && g_iCurrentWeapon[id] == CSW_KNIFE)
  179.     {
  180.         if(check_drop_flag(DROPFLAG_NORMAL))
  181.         {
  182.             drop_chainsaw(id)
  183.             return PLUGIN_HANDLED
  184.         }
  185.     }
  186.  
  187.     return PLUGIN_CONTINUE
  188. }
  189.  
  190. public drop_chainsaw(id)  
  191. {
  192.     static Float:flAim[3], Float:flOrigin[3]
  193.     VelocityByAim(id, 64, flAim)
  194.     entity_get_vector(id, EV_VEC_origin, flOrigin)
  195.      
  196.     flOrigin[0] += flAim[0]
  197.     flOrigin[1] += flAim[1]
  198.      
  199.     new iEnt = create_entity("info_target")
  200.      
  201.     entity_set_string(iEnt, EV_SZ_classname, "cs_chainsaw")
  202.      
  203.     entity_set_origin(iEnt, flOrigin)
  204.      
  205.     entity_set_model(iEnt, chainsaw_worldmodel)
  206.      
  207.     set_size(iEnt, chainsaw_mins, chainsaw_maxs)
  208.     entity_set_vector(iEnt, EV_VEC_mins, chainsaw_mins)
  209.     entity_set_vector(iEnt, EV_VEC_maxs, chainsaw_maxs)
  210.      
  211.     entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER)
  212.      
  213.     entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS)
  214.      
  215.     g_iHasChainsaw[id] = false
  216.         set_pev(id, pev_body, random_num(0, 3))
  217.     reset_user_knife(id)
  218. }
  219.  
  220. public reset_user_knife(id)
  221. {
  222.     if(user_has_weapon(id, CSW_KNIFE))
  223.         ExecuteHamB(Ham_Item_Deploy, find_ent_by_owner(-1, "weapon_knife", id))
  224.          
  225.     engclient_cmd(id, "weapon_knife")
  226.     emessage_begin(MSG_ONE, g_msgCurWeapon, _, id)
  227.     ewrite_byte(1)
  228.     ewrite_byte(CSW_KNIFE)
  229.     ewrite_byte(-1)
  230.     emessage_end()
  231. }
  232.  
  233. public ze_select_item_post(id, itemid)
  234. {
  235.     if (itemid == g_iItemID)
  236.     {
  237.         if(get_pcvar_num(cvar_enable))
  238.         {
  239.             if (get_playersnum() <= MIN_PLAYERS)
  240.             {
  241.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yДля покупки бензопилы требуется минимум !team%d игрока!", MIN_PLAYERS)
  242.                 ze_set_escape_coins(id, ze_get_escape_coins(id) + chainsaw_ap_cost)
  243.                 return
  244.             }
  245.             if (g_iHasChainsaw[id])
  246.             {
  247.                 ze_set_escape_coins(id, ze_get_escape_coins(id) + chainsaw_ap_cost)
  248.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yÐ’Ñ‹ уже имеете !teamбензопилу!")
  249.             }
  250.             else  
  251.             {
  252.                                 engclient_cmd(id, "weapon_knife")
  253.  
  254.                                 set_pev(id, pev_body, 6)
  255.  
  256.                 g_iHasChainsaw[id] = true
  257.                                 set_pev(id, pev_viewmodel2, chainsaw_viewmodel)
  258.                             set_pev(id, pev_weaponmodel2, chainsaw_playermodel)
  259.                                 emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  260.  
  261.                 set_pev(id, pev_armorvalue, float(min(pev(id, pev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
  262.                 fm_set_user_armor(id, get_pcvar_num(g_armor_amount))
  263.                 fm_set_user_health(id, get_pcvar_num(g_hp_amount))
  264.                 engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_buyarmor, 1.0, ATTN_NORM, 0, PITCH_NORM)
  265.  
  266.                 ChatColor(id, "!g[Darkess-Project, Бензопила] !yÐ’Ñ‹ купили !teamбензопилу!")
  267.                 reset_user_knife(id)
  268.             }
  269.  
  270.         }
  271.         else
  272.         {
  273.             ze_set_escape_coins(id, ze_get_escape_coins(id) + chainsaw_ap_cost)
  274.             ChatColor(id, "!g[Darkess-Project, Бензопила] !yБензопила была временно !teamотключена!")
  275.         }
  276.     }
  277. }
  278.  
  279. public ze_user_infected(id, iInfector)
  280. {
  281.     if (g_iHasChainsaw[id])
  282.     {
  283.         if(check_drop_flag(DROPFLAG_INFECTED))
  284.             drop_chainsaw(id)
  285.         else
  286.         {
  287.             g_iHasChainsaw[id] = false
  288.             reset_user_knife(id)
  289.         }
  290.     }
  291. }
  292.  
  293. public client_putinserver(id)
  294. {
  295.     g_iHasChainsaw[id] = false
  296. }
  297.  
  298. public client_disconnected(id)
  299. {
  300.     g_iHasChainsaw[id] = false
  301. }
  302.      
  303. public fw_PlayerSpawn_Post(id)
  304. {
  305.     if(get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable))
  306.     {
  307.         if(g_iHasChainsaw[id])
  308.         {
  309.             g_iHasChainsaw[id] = false
  310.  
  311.             reset_user_knife(id)
  312.         }
  313.     }
  314. }
  315.  
  316. public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
  317. {    
  318.     if(victim == attacker || !attacker)
  319.         return HAM_IGNORED
  320.          
  321.     if(!is_user_connected(attacker))
  322.         return HAM_IGNORED
  323.          
  324.     if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE)
  325.     {
  326.         if(get_pcvar_num(cvar_dmggore))
  327.             a_lot_of_blood(victim)
  328.              
  329.         SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmgmult))    
  330.     }
  331.  
  332.     return HAM_IGNORED
  333. }
  334.  
  335. public fw_PlayerKilled(victim, attacker, shouldgib)
  336. {
  337.     if(victim == attacker || !attacker)
  338.         return HAM_IGNORED
  339.          
  340.     if(!is_user_connected(attacker))
  341.         return HAM_IGNORED
  342.          
  343.     if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE &&  get_pcvar_num(cvar_body_xplode))
  344.         SetHamParamInteger(3, 2)
  345.      
  346.     if(g_iHasChainsaw[victim])
  347.     {
  348.         if(check_drop_flag(DROPFLAG_INDEATH))
  349.             drop_chainsaw(victim)
  350.             else
  351.             {
  352.                 g_iHasChainsaw[victim] = false
  353.                 reset_user_knife(victim)
  354.             }
  355.     }
  356.      
  357.     return HAM_IGNORED
  358. }
  359.  
  360. public fw_Chainsaw_Touch(saw, player)
  361. {
  362.     if(!is_valid_ent(saw) || !is_valid_ent(player))
  363.         return PLUGIN_CONTINUE
  364.          
  365.     if(!is_user_connected(player))
  366.         return PLUGIN_CONTINUE
  367.          
  368.     if(!is_user_alive(player) || ze_is_user_zombie(player) || g_iHasChainsaw[player])
  369.         return PLUGIN_CONTINUE
  370.          
  371.     g_iHasChainsaw[player] = true
  372.      
  373.     emit_sound(player, CHAN_WEAPON, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  374.      
  375.     reset_user_knife(player)
  376.      
  377.     remove_entity(saw)
  378.          
  379.     return PLUGIN_CONTINUE
  380. }
  381.  
  382. public fw_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
  383. {
  384.         if(!is_user_connected(id))
  385.                 return FMRES_IGNORED
  386.          
  387.         if(!is_user_alive(id) || ze_is_user_zombie(id) || !g_iHasChainsaw[id] || !get_pcvar_num(cvar_sounds))
  388.                 return FMRES_IGNORED
  389.          
  390.    
  391.         if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
  392.     {
  393.        
  394.         if (sample[14] == 'd')  
  395.         {
  396.                 emit_sound(id, channel, chainsaw_sounds[0], volume, attn, flags, pitch)
  397.         }
  398.         else if (sample[14] == 'h')
  399.         {
  400.             if (sample[17] == 'w')
  401.             {
  402.                 emit_sound(id, channel, chainsaw_sounds[3], volume, attn, flags, pitch)
  403.             }
  404.             else
  405.             {
  406.                 emit_sound(id, channel, chainsaw_sounds[random_num(1,2)], volume, attn, flags, pitch)
  407.             }
  408.         }
  409.         else
  410.         {
  411.             if (sample[15] == 'l')
  412.             {
  413.                 emit_sound(id, channel, chainsaw_sounds[4], volume, attn, flags, pitch)
  414.             }
  415.             else
  416.             {
  417.                 emit_sound(id, channel, chainsaw_sounds[5], volume, attn, flags, pitch)
  418.             }
  419.         }
  420.         return FMRES_SUPERCEDE
  421.     }
  422.     return FMRES_IGNORED
  423. }
  424.  
  425.  
  426. public fw_Knife_PrimaryAttack_Post(knife)
  427. {    
  428.     static id
  429.     id = get_pdata_cbase(knife, m_pPlayer, 4)
  430.      
  431.     if(is_user_connected(id) && g_iHasChainsaw[id])
  432.     {
  433.         static Float:flRate
  434.         flRate = get_pcvar_float(cvar_pattack_rate)
  435.          
  436.         set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
  437.         set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
  438.         set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
  439.          
  440.         static Float:flPunchAngle[3]
  441.         flPunchAngle[0] = get_pcvar_float(cvar_pattack_recoil)
  442.          
  443.         entity_set_vector(id, EV_VEC_punchangle, flPunchAngle)    
  444.     }
  445.      
  446.     return HAM_IGNORED
  447. }
  448.  
  449. public fw_Knife_SecondaryAttack_Post(knife)
  450. {    
  451.     static id
  452.     id = get_pdata_cbase(knife, m_pPlayer, 4)
  453.      
  454.     if(is_user_connected(id) && g_iHasChainsaw[id])
  455.     {
  456.         static Float:flRate
  457.         flRate = get_pcvar_float(cvar_sattack_rate)
  458.          
  459.         set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
  460.         set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
  461.         set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
  462.          
  463.         static Float:flPunchAngle[3]
  464.         flPunchAngle[0] = get_pcvar_float(cvar_sattack_recoil)
  465.          
  466.         entity_set_vector(id, EV_VEC_punchangle, flPunchAngle)
  467.     }
  468.      
  469.     return HAM_IGNORED
  470. }
  471.  
  472. check_drop_flag(flag)
  473. {
  474.     new szFlags[10]
  475.     get_pcvar_string(cvar_dropflags, szFlags, charsmax(szFlags))
  476.      
  477.     if(read_flags(szFlags) & flag)
  478.         return true
  479.          
  480.     return false
  481. }
  482.  
  483. a_lot_of_blood(id)
  484. {
  485.     static iOrigin[3]
  486.     get_user_origin(id, iOrigin)
  487.      
  488.     message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  489.     write_byte(TE_BLOODSTREAM)
  490.     write_coord(iOrigin[0])
  491.     write_coord(iOrigin[1])
  492.     write_coord(iOrigin[2]+10)
  493.     write_coord(random_num(-360, 360))
  494.     write_coord(random_num(-360, 360))
  495.     write_coord(-10)
  496.     write_byte(70)
  497.     write_byte(random_num(50, 100))
  498.     message_end()
  499.      
  500.     for (new j = 0; j < 4; j++)  
  501.     {
  502.         message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  503.         write_byte(TE_WORLDDECAL)
  504.         write_coord(iOrigin[0]+random_num(-100, 100))
  505.         write_coord(iOrigin[1]+random_num(-100, 100))
  506.         write_coord(iOrigin[2]-36)
  507.         write_byte(random_num(190, 197))
  508.         message_end()
  509.     }
  510. }
  511.  
  512. stock ChatColor(const id, const input[], any:...)
  513. {
  514.     new count = 1, players[32]
  515.     static msg[191]
  516.     vformat(msg, 190, input, 3)
  517.    
  518.     replace_all(msg, 190, "!g", "^4")
  519.     replace_all(msg, 190, "!y", "^1")
  520.     replace_all(msg, 190, "!team", "^3")
  521.    
  522.     if (id) players[0] = id; else get_players(players, count, "ch")
  523.     {
  524.         for (new i = 0; i < count; i++)
  525.         {
  526.             if (is_user_connected(players[i]))
  527.             {
  528.                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  529.                 write_byte(players[i]);
  530.                 write_string(msg);
  531.                 message_end();
  532.             }
  533.         }
  534.     }
  535. }
working but with a lot of errors

  1. //// zp_extra_chainsaw.sma
  2. //
  3. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(216) : warning 217: loose indentation
  4. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(217) : warning 217: loose indentation
  5. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(256) : warning 217: loose indentation
  6. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(257) : warning 217: loose indentation
  7. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(258) : warning 217: loose indentation
  8. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(259) : warning 217: loose indentation
  9. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(261) : warning 217: loose indentation
  10. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(422) : warning 217: loose indentation
  11. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(429) : warning 213: tag mismatch
  12. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(438) : warning 213: tag mismatch
  13. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(452) : warning 213: tag mismatch
  14. // C:\Users\Administrator\Desktop\cs\ZE[Windows]\Compailor V 1.6\zp_extra_chainsaw.sma(461) : warning 213: tag mismatch
  15. // Header size:           2596 bytes
  16. // Code size:            16016 bytes
  17. // Data size:             9832 bytes
  18. // Stack/heap size:      16384 bytes
  19. // Total requirements:   44828 bytes
DRK Zombie-Escape V1.6
IP : 81.169.153.129:27015

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#6

Post by Raheem » 3 years ago

These just warnings not errors.
He who fails to plan is planning to fail

User avatar
Luxurious
Mod Tester
Mod Tester
Egypt
Posts: 177
Joined: 6 years ago
Location: Egypt
Contact:

#7

Post by Luxurious » 3 years ago

ye, worked well thx!
DRK Zombie-Escape V1.6
IP : 81.169.153.129:27015

Post Reply

Create an account or sign in to join the discussion

You need to be a member in order to post a reply

Create an account

Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute

Register

Sign in

Who is online

Users browsing this forum: Bing [Bot] and 4 guests