Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Nosock » 31 янв 2018, 17:31
как сделать чтобы в этом плагине вместо обычных скинов оружий золотые (только скины)?
- Код: Выделить всё
public plugin_init()
{
register_plugin("VIP Menu", "1.0", "Anonymus");
register_clcmd("vipmenu", "MenuVIP");
register_menucmd(register_menuid("Menu VIP"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8, "VIPMENU");
RegisterHam(Ham_Player_Jump, "player", "CBasePlayer_Jump", false);
register_event("CurWeapon", "WeaponChange", "be", "1=1");
RegisterHam(Ham_Spawn, "player", "CBasePlayer_Spawn", 0);
set_task(1.0, "Timer", COUNT_TIMER, _, _, "b")
}
new g_ak47[33], g_m4a1[33], g_awp[33], g_money[33], g_health[33], g_speed[33],
g_UserSpeed[33], g_doublejump[33], g_iJumpNum[33], g_bunny[33], g_block[33];
new const PRIMARY_WEAPONS_BITSUM = (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_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
public Timer()
{
for(new i; i < 32;i++)
{
if(g_ak47[i] > 0) g_ak47[i]--
if(g_m4a1[i] > 0) g_m4a1[i]--
if(g_awp[i] > 0) g_awp[i]--
if(g_money[i] > 0) g_money[i]--
if(g_health[i] > 0) g_health[i]--
if(g_speed[i] > 0) g_speed[i]--
if(g_block[i] > 0) g_block[i]--
}
}
public MenuVIP(id)
{
if(~get_user_flags(id) & ACCESS_LEVEL_1)
{
client_print_color(id, print_team_default, "^1[^4INFO^1] Только ^3VIP ^4может пользоваться этой командой !");
return PLUGIN_HANDLED;
}
if(g_block[id] > 0)
{
client_print_color(id, print_team_default, "^1[^4INFO^1] Подождите^4 40 ^1сек после входа. ^3!");
return PLUGIN_HANDLED;
}
if(!is_user_alive(id))
{
client_print_color(id, print_team_default, "^1[^4INFO^1] Данное меню ^4Недоступно ^3для мертвых !");
return PLUGIN_HANDLED;
}
new szMenu[1024], iLen = formatex(szMenu, charsmax(szMenu), "\yVIP Меню^n^n"), iKey = MENU_KEY_8;
if(g_ak47[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \wВзять AK-47 \y[\r%d Секунд\y]^n", VIP_TIME_AK47)
iKey |= MENU_KEY_1;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \dВзять AK-47 \y[\rЖдите %d Секунд\y]^n", g_ak47[id])
iKey &= ~MENU_KEY_1;
}
if(g_m4a1[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \wВзять M4A1 \y[\r%d Секунд\y]^n", VIP_TIME_M4A1)
iKey |= MENU_KEY_2;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \dВзять M4A1 \y[\rЖдите %d Секунд\y]^n", g_m4a1[id])
iKey &= ~MENU_KEY_2;
}
if(g_awp[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r3. \wВзять AWP & Deagle \y[\r%d Секунд\y]^n", VIP_TIME_AWP)
iKey |= MENU_KEY_3;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r3. \dВзять AWP & Deagle \y[\rЖдите %d Секунд\y]^n", g_awp[id])
iKey &= ~MENU_KEY_3;
}
if(g_money[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \wВзять 16000$ \y[\r%d Секунд\y]^n", VIP_TIME_MONEY)
iKey |= MENU_KEY_4;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \dВзять 16000$ \y[\rЖдите %d Секунд\y]^n", g_money[id])
iKey &= ~MENU_KEY_4;
}
if(g_health[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. \wВзять 255HP и 255AP \y[\r%d Секунд\y]^n", VIP_TIME_HEALTH)
iKey |= MENU_KEY_5;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. \dВзять 255HP и 255AP \y[\rЖдите %d Секунд\y]^n", g_health[id])
iKey &= ~MENU_KEY_5;
}
if(g_speed[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r6. \wВзять Скорость \y[\r%d Секунд\y]^n", VIP_TIME_SPEED)
iKey |= MENU_KEY_6;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r6. \dВзять Скорость \y[\rЖдите %d Секунд\y]^n", g_speed[id])
iKey &= ~MENU_KEY_6;
}
if(get_user_flags(id) & ACCESS_LEVEL_2)
{
if(g_doublejump[id])
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \wDouble-Jump \r[\yВкл\r]^n")
iKey |= MENU_KEY_7;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \wDouble-Jump \r[\yВыкл\r]^n")
iKey |= MENU_KEY_7;
}
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \dDouble-Jump \r[\yНет прав!\r]^n")
iKey &= ~MENU_KEY_7
}
if(g_bunny[id])
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r8. \wBunnyHop \r[\yВкл\r]^n^n")
iKey |= MENU_KEY_8
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r8. \wBunnyHop \r[\yВыкл\r]^n^n")
iKey |= MENU_KEY_8
}
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r0. \wВыход^n")
iKey |= MENU_KEY_0;
return show_menu(id, iKey, szMenu, -1, "Menu VIP");
}
public VIPMENU(id, iKey)
{
switch(iKey)
{
case 0:
{
g_ak47[id] = VIP_TIME_AK47;
give_item_ex(id, "weapon_ak47", 90, 1);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 AK-47!");
}
case 1:
{
g_m4a1[id] = VIP_TIME_M4A1;
give_item_ex(id, "weapon_m4a1", 90, 1);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 M4A1!");
}
case 2:
{
g_awp[id] = VIP_TIME_AWP;
give_item_ex(id, "weapon_awp", 30, 1);
give_item_ex(id, "weapon_deagle", 35, 1);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 AWP и Deagle!");
}
case 3:
{
g_money[id] = VIP_TIME_MONEY;
cs_set_user_money(id, cs_get_user_money(id) + 16000);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 16000$!");
}
case 4:
{
g_health[id] = VIP_TIME_HEALTH;
set_user_health(id, 500);
set_user_armor(id, get_user_armor(id) + 255);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 255HP и 255AP!");
}
case 5:
{
g_speed[id] = VIP_TIME_SPEED;
g_UserSpeed[id] = true;
set_user_maxspeed(id, 365.0);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 Скорость!");
}
case 6:
{
if(!g_doublejump[id])
{
g_doublejump[id] = true;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3включили ^4DoubleJump!");
}
else
{
g_doublejump[id] = false;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3выключили ^4DoubleJump!");
}
}
case 7:
{
if(!g_bunny[id])
{
g_bunny[id] = true;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3включили ^4BunnyHop!");
}
else
{
g_bunny[id] = false;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3выключили ^4BunnyHop!");
}
}
}
MenuVIP(id);
return PLUGIN_HANDLED;
}
public CBasePlayer_Jump(id)
{
if(g_bunny[id] && pev(id, pev_flags) & (FL_ONGROUND|FL_CONVEYOR))
{
new Float:vecVelocity[3];
pev(id, pev_velocity, vecVelocity);
vecVelocity[2] = 250.0;
set_pev(id, pev_velocity, vecVelocity);
set_pev(id, pev_gaitsequence, 6);
}
new obut = get_user_oldbutton(id); new nbut = get_user_button(id)
new iFlags = pev(id, pev_flags);
if(g_doublejump[id] && (nbut & IN_JUMP) && !(obut & IN_JUMP) && ~iFlags & (FL_ONGROUND|FL_CONVEYOR|FL_INWATER))
{
if(g_iJumpNum[id] < 1)
{
g_iJumpNum[id]++
new Float:vecVelocity[3];
pev(id, pev_velocity, vecVelocity);
vecVelocity[2] = 265.0;
set_pev(id, pev_velocity, vecVelocity);
set_pev(id, pev_gaitsequence, 6);
}
}
if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
g_iJumpNum[id] = 0;
}
}
public WeaponChange(id)
{
if(g_UserSpeed[id])
set_user_maxspeed(id, 320.0)
}
public client_putinserver(id)
{
g_doublejump[id] = false;
g_bunny[id] = false;
g_ak47[id] = VIP_TIME_AK47;
g_m4a1[id] = VIP_TIME_M4A1;
g_awp[id] = VIP_TIME_AWP;
g_money[id] = VIP_TIME_MONEY;
g_health[id] = VIP_TIME_HEALTH;
g_speed[id] = VIP_TIME_SPEED;
g_block[id] = VIP_TIME_MENY;
if(get_user_flags(id) & ACCESS_LEVEL_1)
{
set_task(45.0, "Blocked", id+TASKID, .flags = "a");
}
}
public client_disconnect(id)
{
remove_task(id + TASKID) }
public CBasePlayer_Spawn(id)
{
g_UserSpeed[id] = false;
}
public Blocked(taskid)
{
new id = taskid - TASKID;
if(!is_user_connected(id) || (~get_user_flags(id) & ACCESS_LEVEL_1)) return;
set_dhudmessage(0, 255, 0, -1.0, 0.10, 0, 5.0, 4.0)
show_dhudmessage(id, "Випменю - Активировано!")
}
stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
static weaponsList[32], weaponName[32], weaponsNum, currWeaponID;
currWeaponID = get_weaponid(currWeaponName);
if(dropFlag)
{
weaponsNum = 0;
get_user_weapons(id,weaponsList,weaponsNum);
for (new i;i < weaponsNum;i++)
{
if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
{
get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
engclient_cmd(id,"drop",weaponName);
}
}
}
fm_give_item(id,currWeaponName);
cs_set_user_bpammo(id,currWeaponID,ammoAmount);
return 1;
}
-
Nosock
-
- Сообщения: 16
- Зарегистрирован: 31 янв 2018, 17:24
- Благодарил (а): 2 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
Subb98 » 31 янв 2018, 17:52
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
-
Subb98
-
- Сообщения: 5485
- Зарегистрирован: 24 мар 2011, 19:42
- Откуда: г. Пермь
- Благодарил (а): 1329 раз.
- Поблагодарили: 2343 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: PHP
Nosock » 31 янв 2018, 20:50
он ведь меняет полностью, а мне нужно только чтобы их можно было взять из одного меню
Последний раз редактировалось
Nosock 31 янв 2018, 20:57, всего редактировалось 1 раз.
-
Nosock
-
- Сообщения: 16
- Зарегистрирован: 31 янв 2018, 17:24
- Благодарил (а): 2 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
Subb98 » 31 янв 2018, 21:02
Nosock, это статья, а не плагин.
Вы должны зарегистрироваться, чтобы видеть ссылки..
Добавлено спустя 5 минут 34 секунды:Nosock писал(а):а мне нужно только чтобы их можно было взять из одного меню
Это пример, а не готовое решение. Ищите тогда плагины типа Gold AK-47 / M4A1 и добавляйте их в меню.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
-
Subb98
-
- Сообщения: 5485
- Зарегистрирован: 24 мар 2011, 19:42
- Откуда: г. Пермь
- Благодарил (а): 1329 раз.
- Поблагодарили: 2343 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: PHP
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21