AimTrain!
#1
Hola, terminé haciendo este copypast para mi y lo comparto por si a alguien mas le sirve o interesa.
La idea es usarlo con podbot y tienen que tener activo statsx.amxx, adjunto un mapa que hice rápido junto con sus waypoints y sonidos, salu3

Código PHP:
#include <amxmod>
#include <amxmisc>
#include <csstats>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>

#define PLUGIN "AimTrain!"
#define VERSION "1.0"
#define AUTHOR "amxmodx"

// Ammo fill by Exolent in https://forums.alliedmods.net/showthread.php?t=102416?t=102416
// Auto Respawn by Napoleon_be in https://forums.alliedmods.net/showthread.php?t=320116
// RoundTimer by AntiBots in https://forums.alliedmods.net/showthread.php?t=80044
// Screen Fade by Exolent in https://forums.alliedmods.net/showthread.php?t=72932

enum AmmoTypes
{
    AMMO_CLIP,
    AMMO_BACKPACK
};

new const 
g_iWeaponAmmo[ ][ AmmoTypes ] =
{
    0}, // NULL
    1352 },
    0}, // SHIELD
    1090 },
    01} ,
    732 },
    0}, // C4
    30100 },
    3090 },
    0},
    30120 },
    20100 },
    25100 },
    3090 },
    3590 },
    2590 },
    12100 },
    20120 },
    1030 },
    30120 },
    100200 },
    832 },
    3090 },
    30120 },
    2090 },
    0},
    735 },
    3090 },
    3090 },
    0}, // KNIFE
    50100 }
};

new 
g_iMaxPlayers;
new 
g_msgScreenFade;

new 
trainTime
new bool:atrSounds
new bool:atiAmmo
new szPWeapons
new szSWeapons

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)        
    
RegisterHam(Ham_Killed"player""PostPlayerKilled"1)
    
register_event"DeathMsg""EventDeathMsg""a");
    
trainTime register_cvar("trainTime","60")
    
g_iMaxPlayers get_maxplayers( );
    
g_msgScreenFade get_user_msgid("ScreenFade");
    
register_clcmd("say /s""stats")
    
register_clcmd("say /w""watch")
    
register_clcmd("say /t""restartTrain")
    
register_clcmd("say /m""aimtrainMenu")
    
register_clcmd("say /j""weaponmenu")
    
register_clcmd("say /i""loadweapons")
    
register_clcmd("say /o""playsounds")
    
register_clcmd("say /k""noweaponsbots")
}

public 
plugin_precache(){
    
precache_sound("misc/sheep.wav")
    
precache_sound("misc/impressive.wav")
    
precache_sound("misc/perfect.wav")
    
precache_sound("misc/holyshit.wav")
    
precache_sound("misc/wickedsick.wav")
    
precache_sound("misc/godlike.wav")
}

public 
client_connect(id){
    if(!
is_user_bot(id))
    {
        
server_cmd("amx_cvar pb_jasonmode 1")
    }
}

//Refill by Exolent
public EventDeathMsg(){
    if(
atiAmmo){
        new 
iKiller read_data);
        if( !( 
<= iKiller <= g_iMaxPlayers )|| !is_user_aliveiKiller ) )
        {
            return;
        }
        new 
iVictim read_data);
        if( 
iVictim == iKiller|| cs_get_user_teamiVictim ) == cs_get_user_teamiKiller ) )
        {
            return;
        } 
        static 
szWeaponName32 ];
        
read_data4szWeaponName31 );
        if( 
equalszWeaponName"grenade" ) )
        {
            return;
        }
        new 
iWeaponId get_user_weaponiKiller );
        if( !( 
<= iWeaponId sizeofg_iWeaponAmmo ) )|| ( << iWeaponId ) & ( ( << ) | ( << CSW_C4 ) | ( << CSW_KNIFE ) ) )
        {
            return;
        }
        
get_weaponnameiWeaponIdszWeaponName31 );
        new 
iWeaponEntity find_ent_by_owner( -1szWeaponNameiKiller );
        if( 
is_valid_entiWeaponEntity ) )
        {
            
cs_set_weapon_ammoiWeaponEntityg_iWeaponAmmoiWeaponId ][ AMMO_CLIP ] );
        }
  
        cs_set_user_bpammo
iKilleriWeaponIdg_iWeaponAmmoiWeaponId ][ AMMO_BACKPACK ] );
    }
}
//Auto Respawn by Napoleon_be
public PostPlayerKilled(iVictimiAttackershouldgib) {
        set_task(2.0"RespawnVictim"iVictim)
}


public 
RespawnVictim(id) {
    if(!is_user_alive(id)) {
        ExecuteHamB(Ham_CS_RoundRespawnid
     
    
}
}
//Screen Fade by Exolent
make_ScreenFade(plrFloat:fDurationredgreenbluealpha){
    new 
plr plr get_player();
    if( !
)
    {
        return 
0;
    }
    
    
message_begin(plr MSG_ONE MSG_ALLg_msgScreenFade, {000}, plr);
    
write_short(floatround(4096.0 fDurationfloatround_round));
    
write_short(floatround(4096.0 fDurationfloatround_round));
    
write_short(4096);
    
write_byte(red);
    
write_byte(green);
    
write_byte(blue);
    
write_byte(alpha);
    
message_end();    
    return 
1;
}

get_player(){
    for( new 
plr 1plr <= g_iMaxPlayersplr++ )
    {
        if( 
is_user_connected(plr) )
        {
            return 
plr;
        }
    }
    return 
0;
}
//Timer
public showtimer(id){
    new 
RoundTime
    RoundTime 
get_user_msgid("RoundTime");
    
message_begin(MSG_ONERoundTime, {000}, id);
    
write_short(get_pcvar_num(trainTime))
    
message_end(); 
}

//Stats
public stats(id){
    if (
callfunc_begin("cmdStatsMe""statsx.amxx") ==  1) {
        
callfunc_push_int(id)
        
callfunc_end()
    }
}

//Trainer
public watch(id){
    
make_ScreenFade(id3.0000255)
    
loadweapons(id)
    
client_print(id,print_center,"AimTrain is On!")
    
set_task(3.0"showtimer"id)
    
set_task(get_pcvar_float(trainTime), "stats",id)
    
set_task(get_pcvar_float(trainTime), "restartTrain",id)
    
set_task(get_pcvar_float(trainTime), "playsounds",id)
}

//Weapon Loader
public loadweapons(id){
    
strip_user_weapons(id)
    if(
szPWeapons == 0)
    {
        
give_item(id"weapon_ak47")
        
cs_set_user_bpammo(idCSW_AK4790)
    }
    if(
szPWeapons == 1)
    {
        
give_item(id"weapon_m4a1")
        
cs_set_user_bpammo(idCSW_M4A190)
    }
    if(
szPWeapons == 2)
    {
        
give_item(id"weapon_galil")
        
cs_set_user_bpammo(idCSW_GALIL90)
    }
    if(
szPWeapons == 3)
    {
        
give_item(id"weapon_famas")
        
cs_set_user_bpammo(idCSW_FAMAS90)
    }
    if(
szPWeapons == 4)
    {
        
give_item(id"weapon_awp")
        
cs_set_user_bpammo(idCSW_AWP3)
    }
    if(
szPWeapons == 5)
    {
        
give_item(id"weapon_aug")
        
cs_set_user_bpammo(idCSW_AUG90)
    }
    if(
szPWeapons == 6)
    {
        
give_item(id"weapon_sg552")
        
cs_set_user_bpammo(idCSW_SG55290)
    }
    if(
szSWeapons == 0)
    {
        
give_item(id"weapon_glock18")
        
cs_set_user_bpammo(idCSW_GLOCK18120)
    }
    if(
szSWeapons == 1)
    {
        
give_item(id"weapon_usp")
        
cs_set_user_bpammo(idCSW_USP100)
    }
    if(
szSWeapons == 2)
    {
        
give_item(id"weapon_deagle")
        
cs_set_user_bpammo(idCSW_DEAGLE35)
    }
    if(
szSWeapons == 3)
    {
        
give_item(id"weapon_p228")
        
cs_set_user_bpammo(idCSW_P228120)
    }
    if(
szSWeapons == 4)
    {
        
give_item(id"weapon_elite")
        
cs_set_user_bpammo(idCSW_ELITE120)
    }
    if(
szSWeapons == 5)
    {
        
give_item(id"weapon_fiveseven")
        
cs_set_user_bpammo(idCSW_FIVESEVEN120)
    }
}

//Sounds
public playsounds(id){
    new 
frags get_user_frags(id)
    if(
atrSounds)
    {
        if(
frags <= 0)
        {
            
client_cmd(id"spk misc/sheep.wav")
        }
        if(
frags >= 25 && frags 35)
        {
            
client_cmd(id"spk misc/impressive.wav")
        }
        if(
frags >= 35 && frags 40)
        {
            
client_cmd(id"spk misc/perfect.wav")
        }
        if(
frags >= 40 && frags 45)
        {
            
client_cmd(id"spk misc/holyshit.wav")
        }
        if(
frags >= 45 && frags 50)
        {
            
client_cmd(id"spk misc/wickedsick.wav")
        }
        if(
frags >= 50)
        {
            
client_cmd(id"spk misc/godlike.wav")
        }
    }
}

//Menues
public aimtrainMenu(id){
    new 
atSounds[198]
    new 
atiClip [198]
    new 
atMenu menu_create("\yAimTrain!""aimcfgMenu")
    
formatex(atSoundscharsmax(atSounds), "AimTrain! Sounds: \r[%s]"atrSounds "On" "Off")
    
formatex(atiClipcharsmax(atiClip), "AimTrain! Refill on kill: \r[%s]"atiAmmo "On" "Off")
    
menu_additem(atMenu"\wStart AimTrain!""1")
    
menu_additem(atMenu"\wWeapons""2")
    
menu_additem(atMenuatiClip"3")
    
menu_additem(atMenuatSounds"4")
    
menu_display(idatMenu0)
}

public 
aimcfgMenu(idmenuitem){
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    switch(
item)
    {
        case 
0:
        {
            
reset_user_wstats(id)
            
set_task (2.0"watch"id)
            
server_cmd("amx_cvar mp_freezetime 3")
            
server_cmd("amx_cvar sv_restart 1")
        }
    }
    switch(
item)
    {
        case 
1:
        {
            
weaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
2:
        {
            
atiAmmo = !atiAmmo
            
if(atiAmmo)
            {
                
client_print(id,print_chat,"Refill on Kill is On")
                
aimtrainMenu(id)
            }
            else
            {
                
client_print(id,print_chat,"Refill on Kill is Off")
                
aimtrainMenu(id)
            }
        }
    }
    switch(
item)
    {
        case 
3:
        {
            
atrSounds = !atrSounds
            
if(atrSounds)
            {
                
client_print(id,print_chat,"Sounds On")
                
aimtrainMenu(id)
            }
            else
            {
                
client_print(id,print_chat,"Sounds Off")
                
aimtrainMenu(id)
            }
        }
    }
    return 
PLUGIN_HANDLED;    
}

public 
weaponmenu(id){
    new 
wMenu menu_create("\yWeapons Menu""aimtrainPWeapons")
    
menu_additem(wMenu"\wAK-47""0")
    
menu_additem(wMenu"\wM4A1""1")
    
menu_additem(wMenu"\wGalil""2")
    
menu_additem(wMenu"\wFamas""3")
    
menu_additem(wMenu"\wAWP""4")
    
menu_additem(wMenu"\wAUG""5")
    
menu_additem(wMenu"\wSG552 Krieg""6")
    
menu_display(idwMenu0)
}

public 
aimtrainPWeapons(idmenuitem){
    if (
item == MENU_EXIT)
    {
        
sweaponmenu(id)
    }
    switch(
item)
    {
        case 
0:
        {
            
strip_user_weapons(id)
            
szPWeapons 0
            give_item
(id"weapon_ak47")
            
cs_set_user_bpammo(idCSW_AK4790)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
1:
        {
            
strip_user_weapons(id)
            
szPWeapons 1
            give_item
(id"weapon_m4a1")
            
cs_set_user_bpammo(id,CSW_M4A1,90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
2:
        {
            
strip_user_weapons(id)
            
szPWeapons 2
            give_item
(id"weapon_galil")
            
cs_set_user_bpammo(idCSW_GALIL90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
3:
        {
            
strip_user_weapons(id)
            
szPWeapons 3
            give_item
(id"weapon_famas")
            
cs_set_user_bpammo(idCSW_FAMAS90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
4:
        {
            
strip_user_weapons(id)
            
szPWeapons 4
            give_item
(id"weapon_awp")
            
cs_set_user_bpammo(idCSW_AWP30)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
5:
        {
            
strip_user_weapons(id)
            
szPWeapons 5
            give_item
(id"weapon_aug")
            
cs_set_user_bpammo(idCSW_AUG90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
6:
        {
            
strip_user_weapons(id)
            
szPWeapons 6
            give_item
(id"weapon_sg552")
            
cs_set_user_bpammo(idCSW_SG55290)
            
sweaponmenu(id)
        }
    }
}

public 
sweaponmenu(id){
    new 
swMenu menu_create("\yWeapons Menu""aimtrainSWeapons")
    
menu_additem(swMenu"\wGlock""0")
    
menu_additem(swMenu"\wUSP""1")
    
menu_additem(swMenu"\wDeagle""2")
    
menu_additem(swMenu"\wP228""3")
    
menu_additem(swMenu"\wDual""4")
    
menu_additem(swMenu"\wFive-Sevem""5")
    
menu_display(idswMenu0)
}

public 
aimtrainSWeapons(idmenuitem){
    if (
item == MENU_EXIT)
    {
        
aimtrainMenu(id)
    }
    switch(
item)
    {
        case 
0:
        {
            
szSWeapons 0
            give_item
(id"weapon_glock18")
            
cs_set_user_bpammo(idCSW_GLOCK18120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
1:
        {
            
szSWeapons 1
            give_item
(id"weapon_usp")
            
cs_set_user_bpammo(idCSW_USP120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
2:
        {
            
szSWeapons 2
            give_item
(id"weapon_deagle")
            
cs_set_user_bpammo(idCSW_DEAGLE35)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
3:
        {
            
szSWeapons 3
            give_item
(id"weapon_p228")
            
cs_set_user_bpammo(idCSW_P228120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
4:
        {
            
szSWeapons 4
            give_item
(id"weapon_elite")
            
cs_set_user_bpammo(idCSW_ELITE120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
5:
        {
            
szSWeapons 5
            give_item
(id"weapon_fiveseven")
            
cs_set_user_bpammo(idCSW_FIVESEVEN120)
            
aimtrainMenu(id)
        }
    }
}

public 
restartTrain(id){
    new 
gMenu menu_create("\yReset AimTrain?""aimtrainReset")
    
menu_additem(gMenu"\wYes""1")
    
menu_additem(gMenu"\wNo""2")
    
menu_display(idgMenu0)
}

public 
aimtrainReset(idmenuitem)
{
    if ( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED;
    }
    switch(item)
    {
        case 0:
        {
    
reset_user_wstats(id)
    
set_task(2.0"watch"id)
    
client_print(idprint_center"AimTrain reseted.")
    
server_cmd("amx_cvar mp_freezetime 3")
    
server_cmd("amx_cvar sv_restart 1")

      }
        case 1:
        {
            client_print(idprint_center"Enjoy freeplay :)")
        }
    }
    return PLUGIN_HANDLED;



Archivos adjuntos
.rar   AimTrain!.rar (Tamaño: 377.38 KB / Descargas: 8)
Responder
#2
[Imagen: 572669096374698024.png]

Código PHP:
public weaponmenu(id){
    new 
wMenu menu_create("\yWeapons Menu""aimtrainPWeapons")
    
menu_additem(wMenu"\wAK-47""0")
    
menu_additem(wMenu"\wM4A1""1")
    
menu_additem(wMenu"\wGalil""2")
    
menu_additem(wMenu"\wFamas""3")
    
menu_additem(wMenu"\wAWP""4")
    
menu_additem(wMenu"\wAUG""5")
    
menu_additem(wMenu"\wSG552 Krieg""6")
    
menu_display(idwMenu0)
}

public 
aimtrainPWeapons(idmenuitem){
    if (
item == MENU_EXIT)
    {
        
sweaponmenu(id)
    }
    switch(
item)
    {
        case 
0:
        {
            
strip_user_weapons(id)
            
szPWeapons 0
            give_item
(id"weapon_ak47")
            
cs_set_user_bpammo(idCSW_AK4790)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
1:
        {
            
strip_user_weapons(id)
            
szPWeapons 1
            give_item
(id"weapon_m4a1")
            
cs_set_user_bpammo(id,CSW_M4A1,90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
2:
        {
            
strip_user_weapons(id)
            
szPWeapons 2
            give_item
(id"weapon_galil")
            
cs_set_user_bpammo(idCSW_GALIL90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
3:
        {
            
strip_user_weapons(id)
            
szPWeapons 3
            give_item
(id"weapon_famas")
            
cs_set_user_bpammo(idCSW_FAMAS90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
4:
        {
            
strip_user_weapons(id)
            
szPWeapons 4
            give_item
(id"weapon_awp")
            
cs_set_user_bpammo(idCSW_AWP30)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
5:
        {
            
strip_user_weapons(id)
            
szPWeapons 5
            give_item
(id"weapon_aug")
            
cs_set_user_bpammo(idCSW_AUG90)
            
sweaponmenu(id)
        }
    }
    switch(
item)
    {
        case 
6:
        {
            
strip_user_weapons(id)
            
szPWeapons 6
            give_item
(id"weapon_sg552")
            
cs_set_user_bpammo(idCSW_SG55290)
            
sweaponmenu(id)
        }
    }
}

public 
sweaponmenu(id){
    new 
swMenu menu_create("\yWeapons Menu""aimtrainSWeapons")
    
menu_additem(swMenu"\wGlock""0")
    
menu_additem(swMenu"\wUSP""1")
    
menu_additem(swMenu"\wDeagle""2")
    
menu_additem(swMenu"\wP228""3")
    
menu_additem(swMenu"\wDual""4")
    
menu_additem(swMenu"\wFive-Sevem""5")
    
menu_display(idswMenu0)
}

public 
aimtrainSWeapons(idmenuitem){
    if (
item == MENU_EXIT)
    {
        
aimtrainMenu(id)
    }
    switch(
item)
    {
        case 
0:
        {
            
szSWeapons 0
            give_item
(id"weapon_glock18")
            
cs_set_user_bpammo(idCSW_GLOCK18120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
1:
        {
            
szSWeapons 1
            give_item
(id"weapon_usp")
            
cs_set_user_bpammo(idCSW_USP120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
2:
        {
            
szSWeapons 2
            give_item
(id"weapon_deagle")
            
cs_set_user_bpammo(idCSW_DEAGLE35)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
3:
        {
            
szSWeapons 3
            give_item
(id"weapon_p228")
            
cs_set_user_bpammo(idCSW_P228120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
4:
        {
            
szSWeapons 4
            give_item
(id"weapon_elite")
            
cs_set_user_bpammo(idCSW_ELITE120)
            
aimtrainMenu(id)
        }
    }
    switch(
item)
    {
        case 
5:
        {
            
szSWeapons 5
            give_item
(id"weapon_fiveseven")
            
cs_set_user_bpammo(idCSW_FIVESEVEN120)
            
aimtrainMenu(id)
        }
    }


Responder
#3
Como que no se usar bien arrays con get_user_weapons y hasta que entienda esa me pareció la manera mas sencilla para que te de las armas después del restart kpo
Responder
#4
Es lo mismo solamente que sin niveles, http://amxmodx-es.com/Thread-TUT-Armas-por-niveles
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#5
Ahora le doy una leída, gracias Sonrisa
Responder
#6
(06/01/2021, 02:00 AM)warps escribió: Como que no se usar bien arrays con get_user_weapons y hasta que entienda esa me pareció la manera mas sencilla para que te de las armas después del restart kpo

Aparte de eso, me refería a que haces un switch para cada case, cuando uno solo para todos es suficiente xd

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)