Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
nemec21 » 09 мар 2017, 00:36
Ребят доброй ночи. подскажите почему иногда когда выбираешь оружие выдает калаш выкидывает сразу же. а потом выдает совсем другое оружие. это произошло после смены карты. потом я перезашел и все стало выдавать как надо. может надо создать какое то условие?
- Код: Выделить всё
new key = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_0
new g_szBlockMapPrefixList[][] =
{
"$2000$",
"awp_india2",
"aim_usp",
"aim_deagle",
"aim_headshot",
"aim_aztec",
"awp_india"
}
new gl_RoundsCount
new szMapName[32]
public plugin_init()
{
register_plugin ("LS VipzSistem", "1.0", "Nemec")
get_mapname(szMapName, charsmax(szMapName))
for(new i; i < sizeof(g_szBlockMapPrefixList); i++)
{
if (contain(g_szBlockMapPrefixList[i], szMapName) != INVALID_HANDLE)
{
pause("d");
}
}
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("PistolsMenu", keys, "PistolsMenuFunc")
RegisterHam(Ham_Spawn, "player", "SpawnPlayer", 1)
}
public EventStartRound()
gl_RoundsCount++
public EventRestartRound()
gl_RoundsCount = 0
public SpawnPlayer(id)
{
if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
return
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id , CSW_FLASHBANG, 2)
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
give_item(id,"item_thighpack")
if(gl_RoundsCount < 2)
{
strip_weapons(id,SECONDARY_ONLY)
give_item(id,"weapon_deagle")
cs_set_user_bpammo( id , CSW_DEAGLE, 35)
}
else
{
VipMenu(id)
}
}
public VipMenu(id)
{
new ctime[64]
get_time("%m/%d/%Y - %H.%M.%S", ctime, 63)
static weaponmenu[650], len
len = 0
len = formatex(weaponmenu[len], charsmax(weaponmenu) - len, " ...[Immortal_classic 18+]...^n V.I.P menu^n^n\d ...%s...^n^n", ctime)
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\w1. Ak-47^n")
key |= MENU_KEY_1
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "2. M4a1^n")
key |= MENU_KEY_2
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "3. Famas^n")
key |= MENU_KEY_3
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount > 3) ? "4. Awp^n^n" : "")
key |= MENU_KEY_4
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "5. P.I.S.T.O.L.S menu^n^n")
key |= MENU_KEY_5
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "0. Exit")
key |= MENU_KEY_0
show_menu(id, key, weaponmenu, 30, "VipMenu")
}
public VipMenuFunc(id, key)
{
switch(key)
{
case 0:
{
strip_weapons(id,PRIMARY_ONLY)
give_item(id,"weapon_ak47")
cs_set_user_bpammo(id , CSW_AK47, 90)
}
case 1:
{
strip_weapons(id,PRIMARY_ONLY)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id , CSW_M4A1, 90)
}
case 2:
{
strip_weapons(id,PRIMARY_ONLY)
give_item(id, "weapon_famas")
cs_set_user_bpammo(id , CSW_FAMAS, 90)
}
case 3:
{
strip_weapons(id,PRIMARY_ONLY)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id , CSW_AWP, 30)
}
case 4:
{
PistolsMenu(id)
}
case 9:
return
}
}
public PistolsMenu(id)
{
static weaponmenu[650], len
len = 0
len = formatex(weaponmenu[len], charsmax(weaponmenu) - len, " ...[Immortal_classic 18+]...^n P.I.S.T.O.L.S menu^n^n")
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "1. Deagle^n")
keys |= MENU_KEY_1
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "2. Usp^n")
keys |= MENU_KEY_2
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "3. Glock^n^n")
keys |= MENU_KEY_3
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "0. Back")
keys |= MENU_KEY_0
show_menu(id, keys, weaponmenu, 30, "PistolsMenu")
}
public PistolsMenuFunc(id, key)
{
switch(key)
{
case 0:
{
strip_weapons(id,SECONDARY_ONLY)
give_item(id,"weapon_deagle")
cs_set_user_bpammo( id , CSW_DEAGLE, 35)
VipMenu(id)
}
case 1:
{
strip_weapons(id,SECONDARY_ONLY)
give_item(id, "weapon_usp")
cs_set_user_bpammo(id , CSW_USP, 100)
VipMenu(id)
}
case 2:
{
strip_weapons(id,SECONDARY_ONLY)
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id , CSW_GLOCK18, 120)
VipMenu(id)
}
case 9:
{
VipMenu(id)
}
}
}
Добавлено спустя 1 минуту 8 секунд:или возможно инклуид левый?
- Код: Выделить всё
Добавлено спустя 8 минут 44 секунды:ведь по сути перед тем как выдать оружие отбирает основное
- Код: Выделить всё
{
strip_weapons(id,SECONDARY_ONLY)
give_item(id,"weapon_deagle")
cs_set_user_bpammo( id , CSW_DEAGLE, 35)
VipMenu(id)
}
-
nemec21
-
- Сообщения: 799
- Зарегистрирован: 07 фев 2016, 17:08
- Откуда: Беларусь
- Благодарил (а): 212 раз.
- Поблагодарили: 44 раз.
- Опыт программирования: Около 6 месяцев
- Языки программирования: Counter-Strike 1.6
jjey1 » 09 мар 2017, 01:54
не понимаю почему у тебя не было инклуда HAM
когда есть: HAM_Spawn
---------------------------------------------------------
под этим:
- Код: Выделить всё
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|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)
добавляешь stock
- Код: Выделить всё
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
за место:
- Код: Выделить всё
strip_weapons(id,SECONDARY_ONLY)
Ставишь слот для автомата:
- Код: Выделить всё
drop_weapons(id, 1)
Ставишь слот для пист:
- Код: Выделить всё
drop_weapons(id, 2)
не забываем добавить инклуды и убрать strip
#include <hamsandwich>
#include <cstrike>
Готовый код, чуть поправил строки:
- Код: Выделить всё
new key = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|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[][] =
{
"$2000$",
"awp_india2",
"aim_usp",
"aim_deagle",
"aim_headshot",
"aim_aztec",
"awp_india"
}
new gl_RoundsCount
new szMapName[32]
public plugin_init()
{
register_plugin ("LS VipzSistem", "1.0", "Nemec")
get_mapname(szMapName, charsmax(szMapName))
for(new i; i < sizeof(g_szBlockMapPrefixList); i++)
{
if (contain(g_szBlockMapPrefixList[i], szMapName) != INVALID_HANDLE)
{
pause("d");
}
}
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("PistolsMenu", keys, "PistolsMenuFunc")
RegisterHam(Ham_Spawn, "player", "SpawnPlayer", 1)
}
public EventStartRound()
gl_RoundsCount++
public EventRestartRound()
gl_RoundsCount = 0
public SpawnPlayer(id)
{
if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
return
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id , CSW_FLASHBANG, 2)
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
give_item(id,"item_thighpack")
if(gl_RoundsCount < 2)
{
drop_weapons(id, 2)
give_item(id,"weapon_deagle")
cs_set_user_bpammo( id , CSW_DEAGLE, 35)
}
else
{
VipMenu(id)
}
}
public VipMenu(id)
{
new ctime[64]
get_time("%m/%d/%Y - %H.%M.%S", ctime, 63)
static weaponmenu[650], len
len = 0
len = formatex(weaponmenu[len], charsmax(weaponmenu) - len, " ...[Immortal_classic 18+]...^n V.I.P menu^n^n\d ...%s...^n^n", ctime)
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\w1. Ak-47^n")
key |= MENU_KEY_1
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "2. M4a1^n")
key |= MENU_KEY_2
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "3. Famas^n")
key |= MENU_KEY_3
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount > 3) ? "4. Awp^n^n" : "")
key |= MENU_KEY_4
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "5. P.I.S.T.O.L.S menu^n^n")
key |= MENU_KEY_5
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "0. Exit")
key |= MENU_KEY_0
show_menu(id, key, weaponmenu, 30, "VipMenu")
}
public VipMenuFunc(id, key)
{
switch(key)
{
case 0:
{
drop_weapons(id, 1)
give_item(id,"weapon_ak47")
cs_set_user_bpammo(id , CSW_AK47, 90)
}
case 1:
{
drop_weapons(id, 1)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id , CSW_M4A1, 90)
}
case 2:
{
drop_weapons(id, 1)
give_item(id, "weapon_famas")
cs_set_user_bpammo(id , CSW_FAMAS, 90)
}
case 3:
{
drop_weapons(id, 1)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id , CSW_AWP, 30)
}
case 4:
{
PistolsMenu(id)
}
case 9:
return
}
}
public PistolsMenu(id)
{
static weaponmenu[650], len
len = 0
len = formatex(weaponmenu[len], charsmax(weaponmenu) - len, " ...[Immortal_classic 18+]...^n P.I.S.T.O.L.S menu^n^n")
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "1. Deagle^n")
keys |= MENU_KEY_1
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "2. Usp^n")
keys |= MENU_KEY_2
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "3. Glock^n^n")
keys |= MENU_KEY_3
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "0. Back")
keys |= MENU_KEY_0
show_menu(id, keys, weaponmenu, 30, "PistolsMenu")
}
public PistolsMenuFunc(id, key)
{
switch(key)
{
case 0:
{
drop_weapons(id, 2)
give_item(id,"weapon_deagle")
cs_set_user_bpammo( id , CSW_DEAGLE, 35)
VipMenu(id)
}
case 1:
{
drop_weapons(id, 2)
give_item(id, "weapon_usp")
cs_set_user_bpammo(id , CSW_USP, 100)
VipMenu(id)
}
case 2:
{
drop_weapons(id, 2)
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id , CSW_GLOCK18, 120)
VipMenu(id)
}
case 9:
{
VipMenu(id)
}
}
}
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
То что норм компилируется:
skype: tatoxa80
-
jjey1
-
- Сообщения: 199
- Зарегистрирован: 08 мар 2016, 18:32
- Забанен
- Благодарил (а): 39 раз.
- Поблагодарили: 9 раз.
- Опыт программирования: Около 3 месяцев
- Языки программирования: Counter-Strike 1.6
nemec21 » 09 мар 2017, 02:05
спасибо понял ошибку
-
nemec21
-
- Сообщения: 799
- Зарегистрирован: 07 фев 2016, 17:08
- Откуда: Беларусь
- Благодарил (а): 212 раз.
- Поблагодарили: 44 раз.
- Опыт программирования: Около 6 месяцев
- Языки программирования: Counter-Strike 1.6
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot], sb123, Yandex [Bot] и гости: 16