Русское сообщество по скриптингу

нужно ли при спавне получать индексы игроков?

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

нужно ли при спавне получать индексы игроков?

Сообщение nemec21 » 19 мар 2017, 12:52

Код: Выделить всё
public SpawnPlayer()
{
    
get_players(playersnum"ach")
                                                   
    for(new 
0numi++) 
    { 
        
player players[i]                           
        
        if(
get_user_flags(player) & ADMIN_LEVEL_H)
        {
            
give_item(player,"weapon_hegrenade")
            
give_item(player,"weapon_flashbang")
            
cs_set_user_bpammo(player CSW_FLASHBANG2)
            
give_item(player,"weapon_smokegrenade")
            
give_item(player,"item_assaultsuit")
            
give_item(player,"item_thighpack")

            if(
g_UsePistol[player][DEAGLE])
            {
                
drop_weapons(player2)
                
give_item(player,"weapon_deagle")
                
cs_set_user_bpammo(player CSW_DEAGLE35)
            }

            if(
g_UsePistol[player][USP])
            {
                
drop_weapons(player2)
                
give_item(player,"weapon_usp")                                 
                
cs_set_user_bpammo(playerCSW_USP100)
            }

            if(
g_UsePistol[player][GLOCK])
            {
                
drop_weapons(player2)
                
give_item(player,"weapon_glock18")
                
cs_set_user_bpammo(playerCSW_GLOCK18120)                                   
            } 
        }
    }
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: нужно ли при спавне получать индексы игроков?

Сообщение lop50956 » 19 мар 2017, 12:59

весь код покажи
Аватара пользователя
lop50956
 
Сообщения: 178
Зарегистрирован: 29 ноя 2016, 00:36
Забанен
Благодарил (а): 18 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: Php

Re: нужно ли при спавне получать индексы игроков?

Сообщение flymic24 » 19 мар 2017, 13:01

nemec21,
Код: Выделить всё

public plugin_init
()
{
    RegisterHam(Ham_Spawn,    "player",    "HamHook_PlayerSpawn", 1);
}

public HamHook_PlayerSpawn(const iPlayer)
{
    //    iPlayer - твой искомый id игрока
// Дальше делай что хочешь с игроком
}
Аватара пользователя
flymic24
 
Сообщения: 209
Зарегистрирован: 05 окт 2012, 17:29
Откуда: Bryansk
Благодарил (а): 4 раз.
Поблагодарили: 76 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: нужно ли при спавне получать индексы игроков?

Сообщение nemec21 » 19 мар 2017, 13:05

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>  

new key MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0 

new const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)

new 
g_szBlockMapPrefixList[][] =
{
    
"awp_india",
    
"fy_pool_day",
    
"aim_map_hlo",
    
"35hp_2",
    
"fy_snow"
}

enum _:PISTOLS
{
    
DEAGLE,
    
USP,
    
GLOCK
}                         

new 
gl_RoundsCount
new bool:g_UsePistol[33][PISTOLS]
new 
szMapName[32]

public 
plugin_init()                                             
{
    
register_plugin ("LS VipzSistem""1.0""N.E.M.E.C.[BLR]")

    
get_mapname(szMapNamecharsmax(szMapName))
    for(new 
isizeof(g_szBlockMapPrefixList); i++)
    {
        if (
contain(g_szBlockMapPrefixList[i], szMapName) != INVALID_HANDLE)
        {
            
pause("d");                   
        }
    }
    
    
register_concmd("vipmenu""VipMenu")
    
    
register_event("HLTV""EventStartRound""a""1=0""2=0")
    
register_event("TextMsg""EventRestartRound""a""2=#Game_will_restart_in","2=#Game_Commencing")
    
register_menu("VipMenu"key"VipMenuFunc")
    
register_menu("AmxPistols"key"PistolsMenu")

    
RegisterHam(Ham_Spawn"player""SpawnPlayer"1)
 }

public 
EventStartRound()
    
gl_RoundsCount++

public 
EventRestartRound()
    
gl_RoundsCount 0

public client_authorized(id)
    
reset_pistols(id)                                                                                                             

public 
SpawnPlayer(id)
{                                
    if(
get_user_flags(id) & ADMIN_LEVEL_H && is_user_alive(id))
    {
        
give_item(id,"weapon_hegrenade")
        
give_item(id,"weapon_flashbang")
        
cs_set_user_bpammo(id CSW_FLASHBANG2)
        
give_item(id,"weapon_smokegrenade")
        
give_item(id,"item_assaultsuit")
        
give_item(id,"item_thighpack")

        if(
g_UsePistol[id][DEAGLE])
        {
            
drop_weapons(id2)
            
give_item(id,"weapon_deagle")
            
cs_set_user_bpammo(id CSW_DEAGLE35)                     
        }

        if(
g_UsePistol[id][USP])
        {                                                            
            
drop_weapons(id2)
            
give_item(id,"weapon_usp")                                       
            
cs_set_user_bpammo(idCSW_USP100)
        }

        if(
g_UsePistol[id][GLOCK])
        {
            
drop_weapons(id2)
            
give_item(id,"weapon_glock18")
            
cs_set_user_bpammo(idCSW_GLOCK18120)                                   
        }
    }
}                                                                                      
                                                                            
public 
VipMenu(id)                                          
{   
    if(!(
get_user_flags(id) & ADMIN_LEVEL_H) || !is_user_alive(id))                                                                                         
        return 
        
    if(
cs_get_user_buyzone(id))   
    {
        new 
ctime[64]                                                                             
        
get_time("%m/%d/%Y - %H.%M.%S"ctime63)

        static 
weaponmenu[650], len

        len 
0
        len 
formatex(weaponmenu[len], charsmax(weaponmenu) - len"     ...[Immortal_classic 18+]...^n             \yV.I.P \rÌåíþ^n^n\d ...%s...^n^n"ctime)

        
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount >= 2) ? "\w1. Ak-47^n" "")
        
key |= MENU_KEY_1            

        len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount >= 2) ? "2. M4a1^n" "")
        
key |= MENU_KEY_2

        len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount >= 3) ? "3. Awp^n" "")
        
key |= MENU_KEY_3

        len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount >= 2) ? "4. Famas^n^n" "")
        
key |= MENU_KEY_4

        len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"\w5. Âàø ïèñòîëåò")
        
key |= MENU_KEY_7                                                                                

        
if(g_UsePistol[id][DEAGLE])
        {
            
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len" \r[\yDeagle\r]^n")
        }

        else if(
g_UsePistol[id][USP])
        {
            
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len" \r[\yUsp\r]^n")
        }

        else if(
g_UsePistol[id][GLOCK])
        {
            
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len" \r[\yGlock18\r]^n")
        }
        else
        {
            
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len" \r[\dStandart\r]^n")
        }
                                                                                                                       
        
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len"^n\w0. Exit")
        
key |= MENU_KEY_0

        show_menu
(idkeyweaponmenu30"VipMenu")                                                 
    }
    else
    {
        
ChatColor(id"^3[ ^4Vip Menu ^3] ^1Äîñòóïíà òîëüêî â ^" ^3ÇÎÍÅ ÇÀÊÓÏÊÈ^^"")
    }                                                                                 
}

public 
VipMenuFunc(idkey)
{                                                                                  
    switch(
key)
    {
        case 
0:
        if(
gl_RoundsCount >= 2
        {          
            
drop_weapons(id1)
            
give_item(id,"weapon_ak47")
            
cs_set_user_bpammo(id CSW_AK4790)
        }

        case 
1:
        if(
gl_RoundsCount >= 2)
        {
            
drop_weapons(id1)
            
give_item(id"weapon_m4a1")
            
cs_set_user_bpammo(id CSW_M4A190)
        }

        case 
2:
        if(
gl_RoundsCount >= 3
        {
            
drop_weapons(id1)
            
give_item(id"weapon_awp")
            
cs_set_user_bpammo(id CSW_AWP30)
        }

        case 
3:
        if(
gl_RoundsCount >= 2
        {
            
drop_weapons(id1)
            
give_item(id"weapon_famas")
            
cs_set_user_bpammo(id CSW_FAMAS90)
        }

        case 
4:
        {
            
AmxPistolsMenu(id)
        }
        
        case 
9: return
    }
}

public 
AmxPistolsMenu(id)
{
    static 
pistolsmenu[650], len

    len 
0
    len 
formatex(pistolsmenu[len], charsmax(pistolsmenu) - len"\yP.i.s.t.o.l.s \rÌÅÍÞ^n^n")
                                                                                                                   
    
len += formatex(pistolsmenu[len], charsmax(pistolsmenu) - len"\w1. Deagle^n")
    
key |= MENU_KEY_1

    len 
+= formatex(pistolsmenu[len], charsmax(pistolsmenu) - len"2. Usp^n")
    
key |= MENU_KEY_2

    len 
+= formatex(pistolsmenu[len], charsmax(pistolsmenu) - len"3. Glock18^n^n")  
    
key |= MENU_KEY_3
                                                                                                              
    len 
+= formatex(pistolsmenu[len], charsmax(pistolsmenu) - len,(gl_RoundsCount >= 2) ? "0. Back" "0. Exit")

    
show_menu(idkeypistolsmenu30"AmxPistols")
}
stock reset_pistols(id)
{
    for(new 
ii<PISTOLSi++)
        
g_UsePistol[id][i] = false;
}
public 
PistolsMenu(idkey)                           
{
    switch(
key)
    {
        case 
0:
        {
            
reset_pistols(id)
            
g_UsePistol[id][DEAGLE] = true
        
            drop_weapons
(id2)
            
give_item(id,"weapon_deagle")
            
cs_set_user_bpammo(id CSW_DEAGLE35)
            
            if(
gl_RoundsCount 2)
                return
               
            
VipMenu(id)
        }
        case 
1:
        {
            
reset_pistols(id)
            
g_UsePistol[id][USP] = true
        
            drop_weapons
(id2)
            
give_item(id,"weapon_usp")                                                              
            
cs_set_user_bpammo(id CSW_USP100
            
            if(
gl_RoundsCount 2)
                return 
  
            
VipMenu(id)
        }
        case 
2:                                                                                 
        {
            
reset_pistols(id)
            
g_UsePistol[id][GLOCK] = true
               
            drop_weapons
(id2)
            
give_item(id,"weapon_glock18")
            
cs_set_user_bpammo(id CSW_GLOCK18120
                        
            if(
gl_RoundsCount 2)
                return
      
            
VipMenu(id)
        }
        case 
9:
        { 
            if(
gl_RoundsCount 2)
                return
 
                
            
VipMenu(id)  
        }        
    }
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid
    num 
0
    get_user_weapons
(idweaponsnum)
    for (
0numi++)
    {
        
weaponid weapons[i]     

        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
engclient_cmd(id"drop"wname)
        }
    }


stock ChatColor(const id,const input[],any:...)
{
    new 
count 1players[32]                               
    static 
msg[191]                                                                                                        
    
vformat(msg,190,input3)
    
    
replace_all(msg,190,"!g""^4")
    
replace_all(msg,190,"!y""^1")
    
replace_all(msg,190,"!t""^3")
    
    if (
idplayers[0] = id;else get_players(players,count,"ch")
    {
        for (new 
0;count;i++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }                                                    
    }
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: нужно ли при спавне получать индексы игроков?

Сообщение lop50956 » 19 мар 2017, 13:26

RegisterHam(Ham_Spawn, "player", "SpawnPlayer", 1)
Аватара пользователя
lop50956
 
Сообщения: 178
Зарегистрирован: 29 ноя 2016, 00:36
Забанен
Благодарил (а): 18 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: Php

Re: нужно ли при спавне получать индексы игроков?

Сообщение nemec21 » 19 мар 2017, 13:49

lop50956. для чего ты это показываешь???

RegisterHam(Ham_Spawn, "player", "SpawnPlayer", 1)

я понимаю что этим я регистрирую спавн игрока. который повторяется после события
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 8