Zumbis Online
Últimos assuntos
» [PEDIDO] Plugin Quiz
por [Dk]Serial-Killer 13/9/2017, 10:02 pm

» [PEDIDO] Limite de madness ZP50
por cancels 9/9/2017, 5:38 pm

» [PEDIDO] Midnight's Darkness para ZPA
por PRO DARK 7/9/2017, 5:45 pm

» fast dl
por william 31/8/2017, 3:51 pm

» [ZP 5.0.8] Zombie Madness LIMIT! Ajuda Por Favor
por cancels 29/7/2017, 10:36 pm

» [Dúvida]Limit Madness
por cancels 29/7/2017, 7:31 pm

» [Dúvida]Menu VIP
por cancels 29/7/2017, 7:30 pm

» [Duvida]Menu
por cancels 28/7/2017, 9:31 pm

» [Pedido] Som De Tiros
por N0th1ng 26/7/2017, 7:06 pm

» [PEDIDO] Mudando Menu VIP
por PRO DARK 22/7/2017, 9:37 am

Frases filosóficas Zplague:
....
Os membros mais ativos da semana

Tópicos similares
    Adsense

    [ZP] FlameThrower v0.1

    Ver o tópico anterior Ver o tópico seguinte Ir em baixo

    [ZP] FlameThrower v0.1

    Mensagem por Eduardoo em 11/10/2013, 11:39 am

    Código:
    /*======================================================================================
    /
    /               [ZP] Extra Item : Flamethrower
    /                 ( weapon for HUMANS )
    /            
    /                  by The_Thing
    /
    /
    /
    /   Description :
    /
    /      Now on Zombie mod has appeared new weapon, that is Flamethrower.
    /      You can burn zombies alive, but don't forget that this weapon will cost to You some ammo packs.
    /
    /
    /
    /   Cvars :
    /
    /      zp_ft_enable <1|0> // Turn it on or off, default is 1.
    /      zp_ft_client_buy <1|0> // This means that You can buy this weapon, default is 1.
    /      zp_ft_obey_buyzone <1|0> // This means that You must buy it only when You are in buyzone, default is 0.
    /      zp_ft_obey_buytime <1|0> // This means that You can only buy it if buyzone seconds are not passed, default is 0.
    /      zp_ft_cost "37" // This means how much flamethrower cost to You.
    /      zp_ft_fuelcost "25" // How much Fuel for Flamethrower will cost.
    /      zp_ft_fueltank "55" // How much fuel ammo will be in one clip.
    /      zp_ft_damage "34" // How much damage will do to zombies.
    /      zp_ft_xplode_dmg "60" // How much damage will be if it will explode.
    /      zp_ft_damage_dis "120" // How far You can shoot flames.
    /      zp_ft_splash_dis "40" // How far fire will splash.
    /
    /
    /
    /   Commands :
    /
    /      To buy flamethrower You can use chat messages too.
    /      say /bft to buy flamethrower
    /   or   say_team /bft
    /
    /
    /
    /   Credits :
    /
    /      Cheap_Suit - For his flamethrower plugin. :)
    /
    /
    /
    /   Changelog :
    /
    /      29/10/2008 - v0.1 - First release
    /
    /
    /
    */


    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>
    #include <engine>
    #include < fun >
    #include <csx>
    #include < xs >
    #include <zombieplague>

    new wpn_ft
    new sprite_fire, sprite_burn, sprite_xplo
    new g_freezetime,g_restarted
    new Float:g_starttime, Float:g_Delay[33]
    new g_enabled, g_client_buy, g_damage, g_xplode_dmg, g_ft_cost, g_fuelcost, g_fueltank, g_fbuyzone
    new g_buytime, g_damage_dis, g_splash_dis
    new g_buyzone[33], g_FuelTank[33], g_Activated[33], g_hasFlamethrower[33],
    g_FireFlamethrower[33], g_BuyFuel[33]


    new g_item_name[] = { "Flamethrower" }
    new g_itemid_flamethrower


    static PLUGIN_NAME[]    = "[ZP] Extra : Flamethrower"
    static PLUGIN_AUTHOR[]    = "The_Thing"
    static PLUGIN_VERSION[] = "0.1"

    public plugin_init()
    {
       register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
       register_cvar("ft_version", PLUGIN_VERSION, FCVAR_SERVER)
       
       g_enabled = register_cvar("zp_ft_enable", "1")
       g_client_buy = register_cvar("zp_ft_client_buy", "1")
       g_fbuyzone = register_cvar("zp_ft_obey_buyzone", "0")
       g_buytime = register_cvar("zp_ft_obey_buytime", "0")
       g_ft_cost = register_cvar("zp_ft_cost", "37")
       g_fuelcost = register_cvar("zp_ft_fuelcost", "5")
       g_fueltank = register_cvar("zp_ft_fueltank", "50")
       g_damage = register_cvar("zp_ft_damage", "34")
       g_xplode_dmg = register_cvar("zp_ft_xplode_dmg", "30")
       g_damage_dis = register_cvar("zp_ft_damage_dis", "100")
       g_splash_dis = register_cvar("zp_ft_splash_dis", "40")

       g_itemid_flamethrower = zp_register_extra_item(g_item_name, get_pcvar_num(g_ft_cost), ZP_TEAM_HUMAN)
       
       register_clcmd("say /bft",       "cmd_BuyFlamethrower",    ADMIN_USER, "- Buys a flamethrower")
       register_clcmd("say_team /bft",    "cmd_BuyFlamethrower",    ADMIN_USER, "- Buys a flamethrower")
       register_clcmd("ft_give",      "cmd_GiveFlamethrowers",ADMIN_BAN,  "<@all/ct/t>/userid - Gives free flamethrowers")
          
       register_event("DeathMsg",     "Event_DeathMsg",    "a")
       register_event("CurWeapon",    "Event_CurWeapon",    "be",    "1=1")
       register_event("StatusIcon",    "Event_BuyZone",     "b",    "2=buyzone")
       register_event("HLTV",       "Event_NewRound",    "a",    "1=0", "2=0")
       register_event("TextMsg",    "Event_WeaponDrop",    "be",    "2=#Weapon_Cannot_Be_Dropped")
       register_event("TextMsg",    "Event_GameRestart",    "a",    "2=#Game_Commencing",    "2=#Game_will_restart_in")
       register_logevent("LogEvent_RoundStart",        2,    "0=World triggered",   "1=Round_Start")
       
       register_forward(FM_CmdStart,      "fw_CmdStart")
       register_forward(FM_PlayerPostThink,    "fw_PlayerPostThink")
       register_forward(FM_UpdateClientData,    "fw_UpdateClientData_Post", 1)
       
       register_think("flamethrower", "think_Flamethrower")
       register_touch("flamethrower", "player", "touch_Flamethrower")
       wpn_ft = custom_weapon_add("weapon_flamethrower", 0, "flamethrower")
       
       if(!get_pcvar_num(g_enabled)) pause("ad", PLUGIN_NAME)
    }

    public plugin_precache()
    {
       precache_sound("flamethrower.wav")
       precache_sound("items/ammopickup2.wav")
       
       sprite_xplo = precache_model("sprites/zerogxplode.spr")
       sprite_fire = precache_model("sprites/explode1.spr")
       sprite_burn = precache_model("sprites/xfire.spr")
       
       precache_model("models/v_knife.mdl")
       precache_model("models/p_knife.mdl")
       precache_model("models/shield/v_shield_knife.mdl")
       precache_model("models/shield/p_shield_knife.mdl")
       precache_model("models/w_flamethrower.mdl")
       precache_model("models/v_flamethrower.mdl")
       precache_model("models/p_flamethrower.mdl")
    }

    public zp_extra_item_selected(itemid, id)
    {
       if (itemid == g_itemid_flamethrower)
       {
          if ( is_user_alive(id) && !zp_get_user_zombie(id) )
          {
             g_hasFlamethrower[id] = 1
             g_FuelTank[id] = get_pcvar_num(g_fueltank)
          
             new temp[2], weaponID = get_user_weapon(id, temp[0], temp[1])
             if(weaponID == CSW_KNIFE)
             {
                g_Activated[id] = true
                set_flamethrower_model(id)
             }
             
             client_cmd(id, "spk items/ammopickup2")
             client_print(id, print_chat, "You bought a flamethrower (press 3 to use)")
          }
       }
    }

    public cmd_GiveFlamethrowers(id, level, cid)
    {
       if(!cmd_access(id, level, cid, 2))
          return PLUGIN_HANDLED

       new Arg1[64], target
       read_argv(1, Arg1, 63)
       
       new adminName[32]
       get_user_name(id, adminName, 31)
       
       new targetTeam
       new Players[32], iNum
       if(Arg1[0] == '@')
       {
          if(equali(Arg1[1], "all"))
          {
             targetTeam = 0
             get_players(Players, iNum, "a")
          }
          else if(equali(Arg1[1], "ct"))
          {
             targetTeam = 2
             get_players(Players, iNum, "ae" , "ct")
          }
          
          for(new i = 0; i < iNum; ++i)
          {
             target = Players[i]
             
             g_hasFlamethrower[target] = 1
             g_FuelTank[target] = get_pcvar_num(g_fueltank)
             
             new temp[2], weaponID = get_user_weapon(target, temp[0], temp[1])
             if(weaponID == CSW_KNIFE)
             {
                g_Activated[target] = true
                set_flamethrower_model(target)
             }
             
             client_cmd(target, "spk items/ammopickup2")
             client_print(target, print_chat, "You have been given a flamethrower (press 3 to use)")
          }
          
          switch(targetTeam)
          {
             case 0: client_print(0, print_chat, "Admin: %s has given everyone a flamethrower", adminName)
             case 1: client_print(0, print_chat, "Admin: %s has given all ct's a flamethrower", adminName)
          }
       }
       else
       {
          target = cmd_target(id, Arg1, 0)
          if(!is_user_connected(target) || !is_user_alive(target) || !zp_get_user_zombie(target))
             return PLUGIN_HANDLED
       
          new targetName[32]
          get_user_name(target, targetName, 31)
          
          g_hasFlamethrower[target] = 1
          g_FuelTank[target] = get_pcvar_num(g_fueltank)
          
          new temp[2], weaponID = get_user_weapon(target, temp[0], temp[1])
          if(weaponID == CSW_KNIFE)
          {
             g_Activated[target] = true
             set_flamethrower_model(target)
             entity_set_int(id, EV_INT_weaponanim, 9)
          }
             
          client_cmd(target, "spk items/ammopickup2")
          client_print(target, print_chat, "You have been given a flamethrower (press 3 to use)")
          client_print(target, print_chat, "Admin: %s has given you a flamethrower", adminName)
       }
       return PLUGIN_HANDLED
    }

    public cmd_BuyFlamethrower(id)
    {
       if(!get_pcvar_num(g_client_buy))
          return PLUGIN_CONTINUE
          
       if(get_pcvar_num(g_fbuyzone))
       {
          if(!g_buyzone[id])
          {
             client_print(id, print_center, "You need to be in the buyzone")
             return PLUGIN_HANDLED
          }
       }
       
       if(get_pcvar_num(g_buytime))
       {
          new Float:fBuyTime = get_cvar_float("mp_buytime") * 60
          if(!g_freezetime && (get_gametime() - g_starttime) > fBuyTime)
          {
             client_print(id, print_center, "%d seconds have passed.^nYou can't buy anything now!", floatround(fBuyTime))
             return PLUGIN_HANDLED
          }
       }
       
       new iMoney = zp_get_user_ammo_packs(id)
       new iCost = get_pcvar_num(g_ft_cost)
       
       if(!is_user_alive(id) && !zp_get_user_zombie(id))
          client_print(id, print_center, "You cant buy when your dead!")
       else if(g_hasFlamethrower[id])
          client_print(id, print_center, "You already own that weapon.")
       else if(iMoney < iCost)
          client_print(id, print_center, "You don't have enough ammo packs! (%d)", iCost)
       else
       {
          g_hasFlamethrower[id] = 1
          g_FuelTank[id] = get_pcvar_num(g_fueltank)
          
          new temp[2], weaponID = get_user_weapon(id, temp[0], temp[1])
          if(weaponID == CSW_KNIFE)
          {
             g_Activated[id] = true
             set_flamethrower_model(id)
          }
          
              zp_set_user_ammo_packs(id, iMoney - iCost)
          client_cmd(id, "spk items/ammopickup2")
          client_print(id, print_chat, "You bought a flamethrower (press 3 to use)")
         }
       return PLUGIN_HANDLED
    }

    public Event_BuyZone(id)
    {
       g_buyzone[id] = read_data(1)
    }

    public Event_GameRestart()
    {
       g_restarted = 1
    }

    public Event_NewRound()
    {
       if(g_restarted)
       {
          new Players[32], iNum = 0
          get_players(Players, iNum)
          for(new i = 0; i < iNum; i++)
          {
             new id = Players[i]
             
             g_FuelTank[id] = 1
             g_Activated[id] = 1
             g_hasFlamethrower[id] = 1
       
             new temp[2], weaponID = get_user_weapon(id, temp[0], temp[1])
             if(weaponID == CSW_KNIFE) set_knife_model(id)
             
             g_restarted = 0
          }
       }
       
       new flamethrowers = -1
       while((flamethrowers = find_ent_by_class(flamethrowers, "flamethrower")))
          remove_entity(flamethrowers)
       
       g_freezetime = 1
    }

    public LogEvent_RoundStart()
    {
       g_freezetime = 0
       g_starttime = get_gametime()
    }

    public Event_WeaponDrop(id)
    {
       if(!is_user_alive(id) || !g_Activated[id])
          return PLUGIN_CONTINUE
       
       drop_flamethrower(id)
       client_print(id, print_center, "")
       return PLUGIN_HANDLED
    }

    public Event_DeathMsg()
    {
       new id = read_data(2)
       if(!is_user_connected(id) || !g_hasFlamethrower[id] || !zp_get_user_zombie(id))
       {
          return PLUGIN_CONTINUE
       }
       
       drop_flamethrower(id)
       return PLUGIN_CONTINUE
    }

    public Event_CurWeapon(id)
    {
       if(!is_user_alive(id) || !g_hasFlamethrower[id] || zp_get_user_zombie(id))
          return PLUGIN_CONTINUE
       
       new WeaponID = read_data(2)
       switch(WeaponID)
       {
          case CSW_KNIFE:
          {
             set_task(0.3, "task_ActivateFlamethrower", id)
             set_flamethrower_model(id)
             entity_set_int(id, EV_INT_weaponanim, 9)
          }
          default: g_Activated[id] = 0
       }
       return PLUGIN_CONTINUE
    }

    public touch_Flamethrower(ent, id)
    {
       if(!is_valid_ent(ent) || !is_user_alive(id) || !zp_get_user_zombie(id))
          return PLUGIN_CONTINUE
       
       if(g_hasFlamethrower[id])
          return PLUGIN_CONTINUE
       
       if(has_shield(id))
          return PLUGIN_CONTINUE
       
       g_hasFlamethrower[id] = 1
       client_cmd(id, "spk items/ammopickup2")
       g_FuelTank[id] = entity_get_int(ent, EV_INT_iuser4)
       show_fuel_percentage(id)
       
       new temp[2], weaponID = get_user_weapon(id, temp[0], temp[1])
       if(weaponID == CSW_KNIFE)
       {
          g_Activated[id] = true
          set_flamethrower_model(id)
          entity_set_int(id, EV_INT_weaponanim, 9)
       }
       remove_entity(ent)
       
       return PLUGIN_CONTINUE
    }

    public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
    {
       if(!g_hasFlamethrower[id] || !g_Activated[id])
          return FMRES_IGNORED
          
       set_cd(cd_handle, CD_ID, 0)
       return FMRES_HANDLED
    }

    public fw_CmdStart(id, uc_handle, seed)
    {
       if(!g_hasFlamethrower[id] || !g_Activated[id])
          return FMRES_IGNORED
       
       new buttons = get_uc(uc_handle, UC_Buttons)
       if(buttons & IN_ATTACK)
       {
          g_FireFlamethrower[id] = 1
       
          buttons &= ~IN_ATTACK
          set_uc(uc_handle, UC_Buttons, buttons)
       } else
          g_FireFlamethrower[id] = 0
          
       if(buttons & IN_ATTACK2)
       {
          g_BuyFuel[id] = 1
          
          buttons &= ~IN_ATTACK2
          set_uc(uc_handle, UC_Buttons, buttons)
       } else
          g_BuyFuel[id] = 0
       return FMRES_HANDLED
    }

    public fw_PlayerPostThink(id)
    {
       if(!is_user_connected(id) || !is_user_alive(id) || !zp_get_user_zombie(id))
          return FMRES_IGNORED
          
       if(!g_hasFlamethrower[id] || !g_Activated[id])
          return FMRES_IGNORED
          
       if(entity_get_int(id, EV_INT_waterlevel) > 1)
          return FMRES_IGNORED

       if(has_shield(id))
       {
          drop_flamethrower(id)
          return FMRES_IGNORED
       }
          
       if(g_BuyFuel[id])
       {
          if((g_Delay[id] + 0.2) < get_gametime())
          {
             buy_fuel(id)
             g_Delay[id] = get_gametime()
          }
       }
       
       if(g_FireFlamethrower[id])
       {
          if(g_FuelTank[id] > 0)
          {
             if((g_Delay[id] + 0.2) < get_gametime())
             {
                g_FuelTank[id] -= 1
                g_Delay[id] = get_gametime()
             }
             
             new Float:fOrigin[3], Float:fVelocity[3]
             entity_get_vector(id,EV_VEC_origin, fOrigin)
             VelocityByAim(id, 35, fVelocity)
          
             new Float:fTemp[3], iFireOrigin[3]
             xs_vec_add(fOrigin, fVelocity, fTemp)
             FVecIVec(fTemp, iFireOrigin)
             
             new Float:fFireVelocity[3], iFireVelocity[3]
             VelocityByAim(id, get_pcvar_num(g_damage_dis), fFireVelocity)
             FVecIVec(fFireVelocity, iFireVelocity)
             
             create_flames_n_sounds(id, iFireOrigin, iFireVelocity)
             
             new doDamage
             switch(get_cvar_num("mp_friendlyfire"))
             {
                case 0: doDamage = 0
                case 1: doDamage = 1
             }
             
             show_fuel_percentage(id)
             direct_damage(id, doDamage)
             indirect_damage(id, doDamage)
             custom_weapon_shot(wpn_ft, id)
          } else
             client_print(id, print_center, "Out of Fuel")
       }
       return FMRES_IGNORED
    }

    public think_Flamethrower(ent)
    {
       if(is_valid_ent(ent) && entity_get_float(ent, EV_FL_health) < 950.0)
       {
          new Float:fOrigin[3], iOrigin[3]
          entity_get_vector(ent, EV_VEC_origin, fOrigin)
          FVecIVec(fOrigin, iOrigin)
       
          message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
          write_byte(99)
          write_short(ent)
          message_end()
       
          message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
          write_byte(3)
          write_coord(iOrigin[0])
          write_coord(iOrigin[1])
          write_coord(iOrigin[2])
          write_short(sprite_xplo)
          write_byte(50)
          write_byte(15)
          write_byte(0)
          message_end()
          
          RadiusDamage(fOrigin, get_pcvar_num(g_xplode_dmg), entity_get_int(ent, EV_INT_iuser4))
          remove_entity(ent)
       }
       if(is_valid_ent(ent)) entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.01)
    }

    public create_flames_n_sounds(id, origin[3], velocity[3])
    {
       message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
       write_byte(120)
       write_coord(origin[0])
       write_coord(origin[1])
       write_coord(origin[2])
       write_coord(velocity[0])
       write_coord(velocity[1])
       write_coord(velocity[2] + 5)
       write_short(sprite_fire)
       write_byte(1)
       write_byte(10)
       write_byte(1)
       write_byte(5)
       message_end()
       
       emit_sound(id, CHAN_WEAPON, "flamethrower.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
    }

    public direct_damage(id, doDamage)
    {
       new ent, body
       get_user_aiming(id, ent, body, get_pcvar_num(g_damage_dis) + 500)
       
       if(ent > 0 && is_user_alive(ent) && !zp_get_user_zombie(id))
       {
          if(!doDamage)
          {
             if(get_user_team(id) != get_user_team(ent))
             {
                damage_user(id, ent, get_pcvar_num(g_damage))
                custom_weapon_dmg(wpn_ft, id, ent, get_pcvar_num(g_damage))
             }
          }
          else
          {
             damage_user(id, ent, get_pcvar_num(g_damage))   
             custom_weapon_dmg(wpn_ft, id, ent, get_pcvar_num(g_damage))
          }
       }
    }

    public indirect_damage(id, doDamage)
    {
       new Players[32], iNum
       get_players(Players, iNum, "a")
       for(new i = 0; i < iNum; ++i) if(id != Players[i])
       {
          new target = Players[i]
       
          new Float:fOrigin[3], Float:fOrigin2[3]
          entity_get_vector(id,EV_VEC_origin, fOrigin)
          entity_get_vector(target, EV_VEC_origin, fOrigin2)
             
          new temp[3], Float:fAim[3]
          get_user_origin(id, temp, 3)
          IVecFVec(temp, fAim)
          
          new Float:fDistance = get_pcvar_num(g_damage_dis) + 500.0
          if(get_distance_f(fOrigin, fOrigin2) > fDistance)
             continue
          
          new iDistance = get_distance_to_line(fOrigin, fOrigin2, fAim)
          if(iDistance > get_pcvar_num(g_splash_dis) || iDistance < 0 || !fm_is_ent_visible(id, target))
             continue
             
          if(!doDamage)
          {
             if(get_user_team(id) != get_user_team(target))
             {
                damage_user(id, target, get_pcvar_num(g_damage))
                custom_weapon_dmg(wpn_ft, id, target, get_pcvar_num(g_damage))
             }
          }
          else
          {
             damage_user(id, target, get_pcvar_num(g_damage) / 2)
             custom_weapon_dmg(wpn_ft, id, target, get_pcvar_num(g_damage) / 2)
          }
       }
    }

    public buy_fuel(id)
    {
       if(get_pcvar_num(g_fbuyzone) && !g_buyzone[id])
          return PLUGIN_CONTINUE
          
       new Float:fBuyTime = get_cvar_float("mp_buytime") * 60
       if(get_pcvar_num(g_buytime) && !g_freezetime
       && (get_gametime() - g_starttime) > fBuyTime)
          return PLUGIN_CONTINUE

       if(g_FuelTank[id] >= get_pcvar_num(g_fueltank))
          return PLUGIN_CONTINUE
                
       new iMoney = zp_get_user_ammo_packs(id)
       new iCost = get_pcvar_num(g_fuelcost)
       if(iMoney >= iCost)
       {
          g_FuelTank[id] += 1
          show_fuel_percentage(id)
          zp_set_user_ammo_packs(id, iMoney - iCost)

          return PLUGIN_CONTINUE
       }   
       return PLUGIN_CONTINUE
    }

    public drop_flamethrower(id)
    {
       new Float:fVelocity[3], Float:fOrigin[3]
       entity_get_vector(id, EV_VEC_origin, fOrigin)
       VelocityByAim(id, 34, fVelocity)
       
       fOrigin[0] += fVelocity[0]
       fOrigin[1] += fVelocity[1]

       VelocityByAim(id, 300, fVelocity)
       
       new ent = create_entity("info_target")
       if(is_valid_ent(ent))
       {
          entity_set_string(ent, EV_SZ_classname, "flamethrower")
          entity_set_model(ent, "models/w_flamethrower.mdl")
          entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS)
          entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)
          entity_set_vector(ent, EV_VEC_origin, fOrigin)
          entity_set_vector(ent, EV_VEC_velocity, fVelocity)
          entity_set_int(ent, EV_INT_iuser4, g_FuelTank[id])
          entity_set_float(ent, EV_FL_takedamage, 1.0)
          entity_set_float(ent, EV_FL_health, 1000.0)
          entity_set_size(ent, Float:{-2.5, -2.5, -1.5}, Float:{2.5, 2.5, 1.5})
          entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.01)
       }
       
       g_FuelTank[id] = 0
       g_Activated[id] = 0
       g_hasFlamethrower[id] = 0
       
       if(has_shield(id))
          set_shield_model(id)
       else
          set_knife_model(id)
          
       return PLUGIN_CONTINUE
    }

    public task_ActivateFlamethrower(id)
    {
       if(!is_user_connected(id) || !is_user_alive(id) || !zp_get_user_zombie(id))
          return PLUGIN_CONTINUE
       
       new temp[2], weaponID = get_user_weapon(id, temp[0], temp[1])
       if(weaponID == CSW_KNIFE) g_Activated[id] = 1
          
       return PLUGIN_CONTINUE
    }

    public show_fuel_percentage(id)
    {
       set_hudmessage(255, 170, 0, 0.91, 0.95, _, _, 1.0, _, _, 4)
       show_hudmessage(id, "Fuel Tank: %d%%", get_percent(g_FuelTank[id], get_pcvar_num(g_fueltank)))
    }

    public set_flamethrower_model(id)
    {
       entity_set_string(id, EV_SZ_viewmodel, "models/v_flamethrower.mdl")
       entity_set_string(id, EV_SZ_weaponmodel, "models/p_flamethrower.mdl")
    }

    public set_knife_model(id)
    {
       entity_set_string(id, EV_SZ_viewmodel, "models/v_knife.mdl")
       entity_set_string(id, EV_SZ_weaponmodel, "models/p_knife.mdl")   
    }

    public set_shield_model(id)
    {
       entity_set_string(id, EV_SZ_viewmodel, "models/shield/v_shield_knife.mdl")
       entity_set_string(id, EV_SZ_weaponmodel, "models/shield/p_shield_knife.mdl")
    }

    stock damage_user(id, victim, damage)
    {
       new iHealth = get_user_health(victim)
       if(iHealth > damage)
          fakedamage(victim, "weapon_flamethrower", float(damage), DMG_BURN)
       else
       {
          user_silentkill(victim)
          make_deathmsg(id, victim, 0, "flamethrower")
          
          new iOrigin[3]
          get_user_origin(victim, iOrigin, 0)
          
          message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
          write_byte(17)
          write_coord(iOrigin[0])
          write_coord(iOrigin[1])
          write_coord(iOrigin[2] + 10)
          write_short(sprite_burn)
          write_byte(30)
          write_byte(40)
          message_end()
             
          if(get_user_team(id) != get_user_team(victim))
          {
             set_user_frags(id, get_user_frags(id) + 3)
             zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 15)
          }
          else
          {
             set_user_frags(id, get_user_frags(id) - 0)
             zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - 2)
          }
          
          message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
          write_byte(id)
          write_short(get_user_frags(id))
          write_short(get_user_deaths(id))
          write_short(0)
          write_short(get_user_team(id))
          message_end()
          
          message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
          write_byte(victim)
          write_short(get_user_frags(victim))
          write_short(get_user_deaths(victim))
          write_short(0)
          write_short(get_user_team(victim))
          message_end()
       }
    }

    stock get_percent(value, tvalue) {     
       return floatround(floatmul(float(value) / float(tvalue) , 100.0)) 
    }

    stock get_distance_to_line(Float:pos_start[3], Float:pos_end[3], Float:pos_object[3]) 

       new Float:vec_start_end[3], Float:vec_start_object[3], Float:vec_end_object[3], Float:vec_end_start[3]
       xs_vec_sub(pos_end, pos_start, vec_start_end)       // vector from start to end
       xs_vec_sub(pos_object, pos_start, vec_start_object)    // vector from end to object
       xs_vec_sub(pos_start, pos_end, vec_end_start)       // vector from end to start
       xs_vec_sub(pos_end, pos_object, vec_end_object)       // vector object to end
       
       new Float:len_start_object = getVecLen(vec_start_object)
       new Float:angle_start = floatacos(xs_vec_dot(vec_start_end, vec_start_object) / (getVecLen(vec_start_end) * len_start_object), degrees) 
       new Float:angle_end = floatacos(xs_vec_dot(vec_end_start, vec_end_object) / (getVecLen(vec_end_start) * getVecLen(vec_end_object)), degrees) 

       if(angle_start <= 90.0 && angle_end <= 90.0)
          return floatround(len_start_object * floatsin(angle_start, degrees))
       return -1 
    }

    stock Float:getVecLen(Float:Vec[3])
    {
       new Float:VecNull[3] = {0.0, 0.0, 0.0}
       new Float:len = get_distance_f(Vec, VecNull)
       return len
    }

    stock bool:fm_is_ent_visible(index, entity)
    {
       new Float:origin[3], Float:view_ofs[3], Float:eyespos[3]
       pev(index, pev_origin, origin)
       pev(index, pev_view_ofs, view_ofs)
       xs_vec_add(origin, view_ofs, eyespos)

       new Float:entpos[3]
       pev(entity, pev_origin, entpos)
       engfunc(EngFunc_TraceLine, eyespos, entpos, 0, index)

       switch(pev(entity, pev_solid)) {
          case SOLID_BBOX..SOLID_BSP: return global_get(glb_trace_ent) == entity
       }
       
       new Float:fraction
       global_get(glb_trace_fraction, fraction)
       if(fraction == 1.0)
          return true
          
       return false
    }

    stock bool:has_shield(id)
    {
       new modelName[32]
       entity_get_string(id, EV_SZ_viewmodel, modelName, 31)

       if(containi(modelName, "v_shield_") != -1)
          return true
          
       return false
    }


    Download: Clique Aqui

    Compra um Lança Chamas, que pode ser comprado pelo Menu Extra, ou se preferir escrever no say: /bft

    Créditos: Zombie-mod.ru

    ____________________________________________

    Zplague Gaming

    Apresente-se: http://zplague.forumclan.com/f8-apresentacoes
    Lei-a as regras: http://zplague.forumclan.com/t1682-regras-do-nosso-forum

    Seja parte dessa Família!

    "Tudu qui eu quiria era ouvir vuçe diser ai lóve beibe"
    avatar
    Eduardoo
    Designer
    Designer

    Nick : HeyBigode
    Masculino Número de Mensagens : 796
    Ammo Packs : 1905
    Honra : 28
    Data de inscrição : 29/09/2013

    Ver perfil do usuário eduardo.struk4

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por 0wnderless em 11/10/2013, 11:40 am

    Semelhante ao salamander hum

    ____________________________________________

    avatar
    0wnderless
    Moderador
    Moderador

    Masculino Número de Mensagens : 579
    Love you Rafaella <3
    Ammo Packs : 1818
    Honra : 20
    Data de inscrição : 24/08/2013

    Ver perfil do usuário http://zplague.forumclan.com/ josh.griz1

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por MtsLa!<3.L em 11/10/2013, 11:40 am

    Boaa !

    ____________________________________________

    Quem sabe faz ao vivo :)
    -----------------------------------------
    Salve - Leozinho - Hawk - Gkf - Junin - J0sh - Rotam
    -----------------------------------------
    Vem que com nois é vida HAHA!!!!

    -----------------------------------------
    avatar
    MtsLa!<3.L
    Moderador
    Moderador

    Nick : Estelionatario
    Masculino Número de Mensagens : 1237
    InfoBanker
    Ammo Packs : 2151
    Honra : 28
    Data de inscrição : 16/03/2013

    Ver perfil do usuário

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por Eduardoo em 11/10/2013, 11:44 am

    0wnderless escreveu:Semelhante ao salamander hum
    .-. Muitos preferem esse do que o salamander, postei para isso.

    ____________________________________________

    Zplague Gaming

    Apresente-se: http://zplague.forumclan.com/f8-apresentacoes
    Lei-a as regras: http://zplague.forumclan.com/t1682-regras-do-nosso-forum

    Seja parte dessa Família!

    "Tudu qui eu quiria era ouvir vuçe diser ai lóve beibe"
    avatar
    Eduardoo
    Designer
    Designer

    Nick : HeyBigode
    Masculino Número de Mensagens : 796
    Ammo Packs : 1905
    Honra : 28
    Data de inscrição : 29/09/2013

    Ver perfil do usuário eduardo.struk4

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por 0wnderless em 11/10/2013, 11:47 am

    Jovem_BR escreveu:
    0wnderless escreveu:Semelhante ao salamander hum
    .-. Muitos preferem esse do que o salamander, postei para isso.
    Uhum, só comentei. Não gosto da salamander tambem.

    ____________________________________________

    avatar
    0wnderless
    Moderador
    Moderador

    Masculino Número de Mensagens : 579
    Love you Rafaella <3
    Ammo Packs : 1818
    Honra : 20
    Data de inscrição : 24/08/2013

    Ver perfil do usuário http://zplague.forumclan.com/ josh.griz1

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por Eduardoo em 11/10/2013, 11:50 am

    Pois é, seeh

    ____________________________________________

    Zplague Gaming

    Apresente-se: http://zplague.forumclan.com/f8-apresentacoes
    Lei-a as regras: http://zplague.forumclan.com/t1682-regras-do-nosso-forum

    Seja parte dessa Família!

    "Tudu qui eu quiria era ouvir vuçe diser ai lóve beibe"
    avatar
    Eduardoo
    Designer
    Designer

    Nick : HeyBigode
    Masculino Número de Mensagens : 796
    Ammo Packs : 1905
    Honra : 28
    Data de inscrição : 29/09/2013

    Ver perfil do usuário eduardo.struk4

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por Leozinho em 11/10/2013, 12:05 pm

    Eu prefiro ele porque não da tanto lag como o salamander.

    ____________________________________________

    avatar
    Leozinho
    Administrador
    Administrador

    Masculino Número de Mensagens : 2854
    Ammo Packs : 2789
    Honra : 75
    Data de inscrição : 20/11/2011

    Ver perfil do usuário leozinho.zp

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por Sergio # em 11/10/2013, 1:02 pm

    Leozinho escreveu:Eu prefiro ele porque não da tanto lag como o salamander.
    Sim, o Salamander requer mais frames da placa de video... ^^

    ____________________________________________

    » ZombiePlague MorTaL GaMes
    189.1.164.22:27017
    |

    avatar
    Sergio #
    Moderador
    Moderador

    Masculino Número de Mensagens : 682
    Ammo Packs : 1751
    Honra : 44
    Data de inscrição : 16/02/2013

    Ver perfil do usuário

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por waLLzyk em 11/10/2013, 1:58 pm

    Sou contra vocês prefiro a salamander, boa ter postado a Flamethrower Talia*-*.

    ____________________________________________

    avatar
    waLLzyk
    Designer
    Designer

    Nick : zetequila
    Masculino Número de Mensagens : 484
    Ammo Packs : 1862
    Honra : 56
    Data de inscrição : 22/05/2013

    Ver perfil do usuário http://zumbi-brasil.blogspot.com.br

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por Eduardoo em 11/10/2013, 2:00 pm

    waLLzyk escreveu:Sou contra vocês prefiro a salamander, boa ter postado a Flamethrower Talia*-*.
    Cheguei agora ^.^, Obrigada, só estou tentando fazer o máximo para agradar vocês.
    Meu objetivo é criar um mapa *-*

    ____________________________________________

    Zplague Gaming

    Apresente-se: http://zplague.forumclan.com/f8-apresentacoes
    Lei-a as regras: http://zplague.forumclan.com/t1682-regras-do-nosso-forum

    Seja parte dessa Família!

    "Tudu qui eu quiria era ouvir vuçe diser ai lóve beibe"
    avatar
    Eduardoo
    Designer
    Designer

    Nick : HeyBigode
    Masculino Número de Mensagens : 796
    Ammo Packs : 1905
    Honra : 28
    Data de inscrição : 29/09/2013

    Ver perfil do usuário eduardo.struk4

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por Troukill67 em 11/10/2013, 4:40 pm

    gostei +

    ____________________________________________


    avatar
    Troukill67
    Humano
    Humano

    Nick : Troukill
    Masculino Número de Mensagens : 26
    Ammo Packs : 1475
    Honra : 0
    Data de inscrição : 22/09/2013

    Ver perfil do usuário troukill.67

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por MtsLa!<3.L em 12/10/2013, 3:33 pm

    Jovem_BR escreveu:
    waLLzyk escreveu:Sou contra vocês prefiro a salamander, boa ter postado a Flamethrower Talia*-*.
    Cheguei agora ^.^, Obrigada, só estou tentando fazer o máximo para agradar vocês.
    Meu objetivo é criar um mapa *-*
    Adicio meu Skype talia posso te ajudar ne algumas coisas sobre Mapas

    gameover.alaska

    ____________________________________________

    Quem sabe faz ao vivo :)
    -----------------------------------------
    Salve - Leozinho - Hawk - Gkf - Junin - J0sh - Rotam
    -----------------------------------------
    Vem que com nois é vida HAHA!!!!

    -----------------------------------------
    avatar
    MtsLa!<3.L
    Moderador
    Moderador

    Nick : Estelionatario
    Masculino Número de Mensagens : 1237
    InfoBanker
    Ammo Packs : 2151
    Honra : 28
    Data de inscrição : 16/03/2013

    Ver perfil do usuário

    Voltar ao Topo Ir em baixo

    Re: [ZP] FlameThrower v0.1

    Mensagem por Conteúdo patrocinado


    Conteúdo patrocinado


    Voltar ao Topo Ir em baixo

    Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

    - Tópicos similares

     
    Permissão deste fórum:
    Você não pode responder aos tópicos neste fórum