Zplague
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Zplague Entrar

Seu portal de Zombie Plague no Brasil


description[Dúvida] Limit Bomb Player Empty[Dúvida] Limit Bomb Player

more_horiz
como faço para limitar essa bomba por playes.

Código:

/*
    [ZP] Extra Item: Blind Bomb
    
        Credits :- Catastrophe
*/

#include <   amxmodx >
#include <   fakemeta >
#include <   hamsandwich >
#include <   fun >
#include <   zombieplague >


// Defines
#define MAXPLAYERS     32
#define FCVAR_FLAGS     ( FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED )
#define OFFSET_PLAYER    41
#define OFFSET_ACTIVE    373
#define LINUX_DIFF    5
#define NADE_TYPE_BLIND    8634
#define FFADE_IN    0x0000
#define REPEAT        0.2 // Time when next screen fade message is being sent
#define TASK_AFFECT    666
#define ID_AFFECT    ( taskid - TASK_AFFECT )
#define OFFSET_FLAMMO    387

// Grenade cost
#define GRENADE_COST    30

#define give_nemesis // Выдавать ли гранату Nemesis

// Grenade models
new const grenade_model_p [ ] = "models/p_flashbang.mdl"
new const grenade_model [ ] = "models/zombie_plague/v_grenade_infect.mdl"
new const grenade_model_w [ ] = "models/w_flashbang.mdl"

// Sounds
new const explosion_sound [ ] = "zombie_plague/Strider_Buster_stick1.wav"
new const purchase_sound [ ] = "items/gunpickup2.wav"
new const purchase_sound2 [ ] = "items/9mmclip1.wav"

// Cached sprite indexes
new m_iTrail, m_iRing

// Item ID
new g_blind

// Player variables
new g_NadeCount [ MAXPLAYERS+1 ]

// Message ID's
new g_msgScreenFade, g_msgAmmoPickup

// CVAR pointers
new cvar_nade_radius, cvar_duration

// Precache
public plugin_precache ( )
{
    // Precache grenade models
    precache_model ( grenade_model_p )
    precache_model ( grenade_model )
    precache_model ( grenade_model_w )
    
    // Precache sounds
    precache_sound ( explosion_sound )
    precache_sound ( purchase_sound )
    precache_sound ( purchase_sound2 )
    
    // Precache sprites
    m_iRing = precache_model ( "sprites/shockwave.spr" )
    m_iTrail = precache_model ( "sprites/laserbeam.spr" )
}

// Plugin initialization
public plugin_init ( )
{
    // New plugin
    register_plugin ( "[ZP] Extra Item: Blind Bomb", "1.1", "Catastrophe" )
    
    // New extra item
    g_blind = zp_register_extra_item("Blind Bomb", 65, ZP_TEAM_ZOMBIE)
    
    // Events
    register_event ( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
    register_event ( "DeathMsg", "Event_DeathMsg", "a" )
    register_event ( "CurWeapon", "Event_CurrentWeapon", "be", "1=1", "2=25" )
    
    // Forwards
    register_forward ( FM_SetModel, "fw_SetModel" )
    RegisterHam ( Ham_Think, "grenade", "fw_ThinkGrenade" )
    register_forward ( FM_CmdStart, "fw_CmdStart" )
    
    // CVARs
    cvar_nade_radius = register_cvar ( "zp_blind_nade_radius", "500" )
    cvar_duration = register_cvar ( "zp_blind_nade_duration", "5" )
    
    // Messages    
    g_msgScreenFade = get_user_msgid ( "ScreenFade" )
    g_msgAmmoPickup = get_user_msgid ( "AmmoPickup" )
}

// Someone decided to buy our an extra item
public zp_extra_item_selected ( Player, Item )
{
    // This is our grenade
    if ( Item == g_blind )
    {
        // Player already have it
        if ( g_NadeCount [ Player ] >= 1 )
        {
            // Increase nade count
            g_NadeCount [ Player ]++
            
            // Increase bp ammo
            set_pdata_int ( Player, OFFSET_FLAMMO, get_pdata_int ( Player, OFFSET_FLAMMO, LINUX_DIFF )+1, LINUX_DIFF )
            
            // Ammo pickup
            message_begin ( MSG_ONE, g_msgAmmoPickup, _, Player )
            write_byte ( 11 ) // Ammo ID
            write_byte ( 1 ) // Ammo amount
            message_end ( )
            
            // Emit sound
            emit_sound ( Player, CHAN_WEAPON, purchase_sound2, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
        }
        else // 0 grenades
        {
            // Increase nade count
            g_NadeCount [ Player ] = 1
            
            // Give him flashbang
            give_item ( Player, "weapon_flashbang" )
            
            // Play purchase sound
            client_cmd ( Player, "spk %s", purchase_sound )    
        }
    }
    return PLUGIN_CONTINUE
}
    
// Someone was infected    
public zp_user_infected_post ( Player, Infector )
{
#if defined give_nemesis
 if ( zp_get_user_nemesis(Player) && zp_is_nemesis_round())
 {
 g_NadeCount [ Player ] = 1
 give_item ( Player, "weapon_flashbang" )
 }
#endif

    // We were affected by Blind Bomb
    if ( task_exists ( Player+TASK_AFFECT ) )
        remove_task ( Player+TASK_AFFECT )
}    

// Someone were turned back to human
public zp_user_humanized_post ( Player, Survivor )
{
    // We dont' have nade anymore
    if ( g_NadeCount [ Player ] )
    {
        g_NadeCount [ Player ] = 0
    }
}

// New round started
public Event_NewRound ( )
{
    // Reset nade count
    arrayset ( g_NadeCount, false, 33 )

    // And they aren't affected by conc.grenade
    remove_task ( TASK_AFFECT )    
}

// Someone died
public Event_DeathMsg ( )
{
    // Get victim
    new victim = read_data ( 2 )
    
    // Some people had error without this check
    if ( !is_user_connected ( victim ) )
        return

    // Remove hallucinations
    remove_task ( victim+TASK_AFFECT )

    // Reset nade count    
    g_NadeCount [ victim ] = 0
}

// Current weapon player is holding
public Event_CurrentWeapon ( Player )
{
    // Dead or not zombie or don't have conc. grenade
    if ( !is_user_alive ( Player ) || !zp_get_user_zombie ( Player ) || g_NadeCount [ Player ] <= 0 )
        return PLUGIN_CONTINUE
    
    // Replace flashbang model with our ones
    set_pev ( Player, pev_viewmodel2, grenade_model )
    set_pev ( Player, pev_weaponmodel2, grenade_model_p )
    
    return PLUGIN_CONTINUE
}

// Set model
public fw_SetModel ( Entity, const Model [ ] )
{
    // Prevent invalid ent messages
    if ( !pev_valid ( Entity ) )
        return FMRES_IGNORED
        
    // Grenade not thrown yet    
    if ( pev ( Entity, pev_dmgtime ) == 0.0 )
        return FMRES_IGNORED
        
    // We are throwing Blind Bomb    
    if ( g_NadeCount [ pev ( Entity, pev_owner ) ] >= 1 && equal ( Model [7 ], "w_fl", 4 ) )
    {
        //Draw trail
        message_begin ( MSG_BROADCAST, SVC_TEMPENTITY )
        write_byte ( TE_BEAMFOLLOW ) // Temp entity ID
        write_short ( Entity ) // Entity to follow
        write_short ( m_iTrail ) // Sprite index
        write_byte ( 10 ) // Life
        write_byte ( 10 ) // Line width
        write_byte ( 255 ) // Red amount
        write_byte ( 255 ) // Blue amount
        write_byte ( 0 ) // Blue amount
        write_byte ( 255 ) // Alpha
        message_end ( )
        
        // Set grenade entity
        set_pev ( Entity, pev_flTimeStepSound, NADE_TYPE_BLIND )
        
        // Decrease nade count
        g_NadeCount [ pev ( Entity, pev_owner ) ]--
        
        // Set world model
        engfunc ( EngFunc_SetModel, Entity, grenade_model_w )
        return FMRES_SUPERCEDE
    }
    return FMRES_IGNORED
}

// Grenade is getting to explode
public fw_ThinkGrenade ( Entity )
{
    // Prevent invalid ent messages
    if ( !pev_valid ( Entity ) )
        return HAM_IGNORED
    
    // Get damage time
    static Float:dmg_time
    pev ( Entity, pev_dmgtime, dmg_time )
    
    // maybe it is time to go off
    if ( dmg_time > get_gametime ( ) )
        return HAM_IGNORED
        
    // Our grenade    
    if ( pev ( Entity, pev_flTimeStepSound ) == NADE_TYPE_BLIND )
    {
        // Force to explode
        blind_explode ( Entity )
        return HAM_SUPERCEDE
    }
    return HAM_IGNORED
}

// Command start
public fw_CmdStart ( Player, UC_Handle, Seed )
{
    // Dead, zombie or not affected
    if ( !is_user_alive ( Player ) || zp_get_user_zombie ( Player ) || !task_exists ( Player+TASK_AFFECT ) )
        return FMRES_IGNORED
    
    // Get buttons
    new buttons = get_uc ( UC_Handle, UC_Buttons )
    
    // We are firing
    if ( buttons & IN_ATTACK )
    {
        // We are holding an active weapon
        if ( get_pdata_cbase ( Player, OFFSET_ACTIVE, LINUX_DIFF ) )
        {
            // New recoil
            set_pev ( Player, pev_punchangle, Float:{3.0, 3.0, 4.0} )
        }
    }
    return FMRES_HANDLED
}

// Grenade explode
public blind_explode ( Entity )
{
    // Invalid entity ?
    if ( !pev_valid ( Entity  ) )
        return
    
    // Get entities origin
    static Float:origin [ 3 ]
    pev ( Entity, pev_origin, origin )
    
    // Draw ring
    UTIL_DrawRing (origin )
    
    // Explosion sound
    emit_sound ( Entity, CHAN_WEAPON, explosion_sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
    
    // Collisions
    static victim
    victim = -1
    
    // Find radius
    static Float:radius
    radius = get_pcvar_float ( cvar_nade_radius )
    
    // Find all players in a radius
    while ( ( victim = engfunc ( EngFunc_FindEntityInSphere, victim, origin, radius ) ) != 0 )
    {
        // Dead or zombie
        if ( !is_user_alive ( victim ) || zp_get_user_zombie ( victim ) )
            continue

        // Victim isn't affected yet    
        if ( !task_exists ( victim+TASK_AFFECT ) )
        {
            // Get duration
            new duration = get_pcvar_num ( cvar_duration )
            
            // Calculate affect times
            new affect_count = floatround ( duration / REPEAT )
            
            // Continiously affect them
            set_task ( REPEAT, "affect_victim", victim+TASK_AFFECT, _, _, "a", affect_count )
        }
    }
    
    // Remove entity from ground
    engfunc ( EngFunc_RemoveEntity, Entity )
}

// We are going to affect you
public affect_victim ( taskid )
{
 // Dead
 if ( !is_user_alive ( ID_AFFECT ) )
 return;
 
 // Make a screen fade
 ScreenFade(ID_AFFECT, get_pcvar_float( cvar_duration ), 0, 0, 0, 255)
 
 // Remove task after all
 remove_task( ID_AFFECT )
}

// Draw explosion ring ( from zombie_plague40.sma )
stock UTIL_DrawRing ( const Float:origin [ 3 ] )
{
    engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
    write_byte(TE_BEAMCYLINDER) // TE id
    engfunc(EngFunc_WriteCoord, origin[0]) // x
    engfunc(EngFunc_WriteCoord, origin[1]) // y
    engfunc(EngFunc_WriteCoord, origin[2]) // z
    engfunc(EngFunc_WriteCoord, origin[0]) // x axis
    engfunc(EngFunc_WriteCoord, origin[1]) // y axis
    engfunc(EngFunc_WriteCoord, origin[2]+555.0) // z axis
    write_short( m_iRing ) // sprite
    write_byte(0) // startframe
    write_byte(0) // framerate
    write_byte(4) // life
    write_byte(60) // width
    write_byte(0) // noise
    write_byte(200) // red
    write_byte(200) // green
    write_byte(200) // blue
    write_byte(200) // brightness
    write_byte(0) // speed
    message_end()
}

// ScreenFade
stock ScreenFade(plr, Float:fDuration, red, green, blue, alpha)
{
    new i = plr ? plr : get_maxplayers();
    if( !i )
    {
        return 0;
    }

    message_begin(plr ? MSG_ONE : MSG_ALL, g_msgScreenFade, {0, 0, 0}, plr);
    write_short(floatround(4096.0 * fDuration, floatround_round));
    write_short(floatround(4096.0 * fDuration, floatround_round));
    write_short(4096);
    write_byte(red);
    write_byte(green);
    write_byte(blue);
    write_byte(alpha);
    message_end();
    
    return 1;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/  


gostaria se alguem consegue me ajudar estou querendo limitar o uso de Zombie Madness por player e não estou conseguindo eu uso ZP 5.0.8

Código:

/*================================================================================
 
 ---------------------------------
 -*- [ZP] Item: Zombie Madness -*-
 ---------------------------------
 
 This plugin is part of Zombie Plague Mod and is distributed under the
 terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
 
================================================================================*/

#define ITEM_NAME "Zombie Madness"
#define ITEM_COST 15

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_ham_bots_api>
#include <zp50_items>
#define LIBRARY_GRENADE_FROST "zp50_grenade_frost"
#include <zp50_grenade_frost>
#define LIBRARY_GRENADE_FIRE "zp50_grenade_fire"
#include <zp50_grenade_fire>
#define LIBRARY_NEMESIS "zp50_class_nemesis"
#include <zp50_class_nemesis>
#define LIBRARY_DRAGON "zp50_class_dragon"
#include <zp50_class_dragon>
#define LIBRARY_ASSASSIN "zp50_class_assassin"
#include <zp50_class_assassin>
#define LIBRARY_NIGHTCRAWLER "zp50_class_nightcrawler"
#include <zp50_class_nightcrawler>


// Settings file
new const ZP_SETTINGS_FILE[] = "zombieplague.ini"

// Default sounds
new const sound_zombie_madness[][] = { "zombie_plague/zombie_madness1.wav" }

#define SOUND_MAX_LENGTH 64

new Array:g_sound_zombie_madness

#define TASK_MADNESS 100
#define TASK_AURA 200
#define ID_MADNESS (taskid - TASK_MADNESS)
#define ID_AURA (taskid - TASK_AURA)

#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_ItemID
new g_MadnessBlockDamage

new cvar_zombie_madness_time
new cvar_madness_aura_color_R, cvar_madness_aura_color_G, cvar_madness_aura_color_B

public plugin_init()
{
 register_plugin("[ZP] Item: Zombie Madness", ZP_VERSION_STRING, "ZP Dev Team")
 
 RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
 RegisterHamBots(Ham_Spawn, "fw_PlayerSpawn_Post", 1)
 RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")
 RegisterHamBots(Ham_TraceAttack, "fw_TraceAttack")
 RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
 RegisterHamBots(Ham_TakeDamage, "fw_TakeDamage")
 RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", 1)
 RegisterHamBots(Ham_Killed, "fw_PlayerKilled_Post", 1)
 
 cvar_zombie_madness_time = register_cvar("zp_zombie_madness_time", "5.0")
 cvar_madness_aura_color_R = register_cvar("zp_madness_aura_color_R", "150")
 cvar_madness_aura_color_G = register_cvar("zp_madness_aura_color_G", "0")
 cvar_madness_aura_color_B = register_cvar("zp_madness_aura_color_B", "0")
 
 g_ItemID = zp_items_register(ITEM_NAME, ITEM_COST)
}

public plugin_precache()
{
 // Initialize arrays
 g_sound_zombie_madness = ArrayCreate(SOUND_MAX_LENGTH, 1)
 
 // Load from external file
 amx_load_setting_string_arr(ZP_SETTINGS_FILE, "Sounds", "ZOMBIE MADNESS", g_sound_zombie_madness)
 
 // If we couldn't load custom sounds from file, use and save default ones
 new index
 if (ArraySize(g_sound_zombie_madness) == 0)
 {
 for (index = 0; index < sizeof sound_zombie_madness; index++)
 ArrayPushString(g_sound_zombie_madness, sound_zombie_madness[index])
 
 // Save to external file
 amx_save_setting_string_arr(ZP_SETTINGS_FILE, "Sounds", "ZOMBIE MADNESS", g_sound_zombie_madness)
 }
 
 // Precache sounds
 new sound[SOUND_MAX_LENGTH]
 for (index = 0; index < ArraySize(g_sound_zombie_madness); index++)
 {
 ArrayGetString(g_sound_zombie_madness, index, sound, charsmax(sound))
 precache_sound(sound)
 }
}

public plugin_natives()
{
 register_library("zp50_item_zombie_madness")
 register_native("zp_item_zombie_madness_get", "native_item_zombie_madness_get")
 
 set_module_filter("module_filter")
 set_native_filter("native_filter")
}
public module_filter(const module[])
{
 if (equal(module, LIBRARY_NEMESIS) || equal(module, LIBRARY_DRAGON) || equal(module, LIBRARY_NIGHTCRAWLER) || equal(module, LIBRARY_ASSASSIN) || equal(module, LIBRARY_GRENADE_FROST) || equal(module, LIBRARY_GRENADE_FIRE))
 return PLUGIN_HANDLED;
 
 return PLUGIN_CONTINUE;
}
public native_filter(const name[], index, trap)
{
 if (!trap)
 return PLUGIN_HANDLED;
 
 return PLUGIN_CONTINUE;
}

public native_item_zombie_madness_get(plugin_id, num_params)
{
 new id = get_param(1)
 
 if (!is_user_alive(id))
 {
 log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
 return false;
 }
 
 return flag_get_boolean(g_MadnessBlockDamage, id);
}

public zp_fw_items_select_pre(id, itemid, ignorecost)
{
 // This is not our item
 if (itemid != g_ItemID)
 return ZP_ITEM_AVAILABLE;
 
 // Zombie madness only available to zombies
 if (!zp_core_is_zombie(id))
 return ZP_ITEM_DONT_SHOW;
 
 // Zombie madness not available to Nemesis/Assassin/Dragon/Nightcrawler
 if (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(id) || LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(id) || LibraryExists(LIBRARY_DRAGON, LibType_Library) && zp_class_dragon_get(id) || LibraryExists(LIBRARY_NIGHTCRAWLER, LibType_Library) && zp_class_nightcrawler_get(id))
 return ZP_ITEM_DONT_SHOW;
 
 // Player already has madness
 if (flag_get(g_MadnessBlockDamage, id))
 return ZP_ITEM_NOT_AVAILABLE;
 
 return ZP_ITEM_AVAILABLE;
}

public zp_fw_items_select_post(id, itemid, ignorecost)
{
 // This is not our item
 if (itemid != g_ItemID)
 return;
 
 // Do not take damage
 flag_set(g_MadnessBlockDamage, id)
 
 // Madness aura
 set_task(0.1, "madness_aura", id+TASK_AURA, _, _, "b")
 
 // Madness sound
 new sound[SOUND_MAX_LENGTH]
 ArrayGetString(g_sound_zombie_madness, random_num(0, ArraySize(g_sound_zombie_madness) - 1), sound, charsmax(sound))
 emit_sound(id, CHAN_VOICE, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
 
 // Set task to remove it
 set_task(get_pcvar_float(cvar_zombie_madness_time), "remove_zombie_madness", id+TASK_MADNESS)
}

// Ham Player Spawn Post Forward
public fw_PlayerSpawn_Post(id)
{
 // Not alive or didn't join a team yet
 if (!is_user_alive(id) || !cs_get_user_team(id))
 return;
 
 // Remove zombie madness from a previous round
 remove_task(id+TASK_MADNESS)
 remove_task(id+TASK_AURA)
 flag_unset(g_MadnessBlockDamage, id)
}

// Ham Trace Attack Forward
public fw_TraceAttack(victim, attacker)
{
 // Non-player damage or self damage
 if (victim == attacker || !is_user_alive(attacker))
 return HAM_IGNORED;
 
 // Prevent attacks when victim has zombie madness
 if (flag_get(g_MadnessBlockDamage, victim))
 return HAM_SUPERCEDE;
 
 return HAM_IGNORED;
}

// Ham Take Damage Forward (needed to block explosion damage too)
public fw_TakeDamage(victim, inflictor, attacker)
{
 // Non-player damage or self damage
 if (victim == attacker || !is_user_alive(attacker))
 return HAM_IGNORED;
 
 // Prevent attacks when victim has zombie madness
 if (flag_get(g_MadnessBlockDamage, victim))
 return HAM_SUPERCEDE;
 
 return HAM_IGNORED;
}

public zp_fw_grenade_frost_pre(id)
{
 // Prevent frost when victim has zombie madness
 if (flag_get(g_MadnessBlockDamage, id))
 return PLUGIN_HANDLED;
 
 return PLUGIN_CONTINUE;
}

public zp_fw_grenade_fire_pre(id)
{
 // Prevent burning when victim has zombie madness
 if (flag_get(g_MadnessBlockDamage, id))
 return PLUGIN_HANDLED;
 
 return PLUGIN_CONTINUE;
}

public zp_fw_core_cure(id, attacker)
{
 // Remove zombie madness task
 remove_task(id+TASK_MADNESS)
 remove_task(id+TASK_AURA)
 flag_unset(g_MadnessBlockDamage, id)
}

// Ham Player Killed Post Forward
public fw_PlayerKilled_Post(victim, attacker, shouldgib)
{
 // Remove zombie madness task
 remove_task(victim+TASK_MADNESS)
 remove_task(victim+TASK_AURA)
 flag_unset(g_MadnessBlockDamage, victim)
}

// Remove Spawn Protection Task
public remove_zombie_madness(taskid)
{
 // Remove aura
 remove_task(ID_MADNESS+TASK_AURA)
 
 // Remove zombie madness
 flag_unset(g_MadnessBlockDamage, ID_MADNESS)
}

public client_disconnect(id)
{
 // Remove tasks on disconnect
 remove_task(id+TASK_MADNESS)
 remove_task(id+TASK_AURA)
 flag_unset(g_MadnessBlockDamage, id)
}

// Madness aura task
public madness_aura(taskid)
{
 // Get player's origin
 static origin[3]
 get_user_origin(ID_AURA, origin)
 
 // Colored Aura
 message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
 write_byte(TE_DLIGHT) // TE id
 write_coord(origin[0]) // x
 write_coord(origin[1]) // y
 write_coord(origin[2]) // z
 write_byte(20) // radius
 write_byte(get_pcvar_num(cvar_madness_aura_color_R)) // r
 write_byte(get_pcvar_num(cvar_madness_aura_color_G)) // g
 write_byte(get_pcvar_num(cvar_madness_aura_color_B)) // b
 write_byte(2) // life
 write_byte(0) // decay rate
 message_end()
}


Última edição por cancels em 15/7/2017, 7:56 pm, editado 1 vez(es)

description[Dúvida] Limit Bomb Player EmptyRe: [Dúvida] Limit Bomb Player

more_horiz
alguem?
privacy_tip Permissões neste sub-fórum
Não podes responder a tópicos
power_settings_newInicie sessão para responder