Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер
2 страниц V   1 2

WarmUP by Safety1st

Статус пользователя firante
сообщение 7.6.2014, 7:11
Сообщение #1


Стаж: 12 лет

Сообщений: 409
Благодарностей: 41
Полезность: < 0

Привет всем ребята кто может сделать так что-бы в плагине WarmUP разминка начиналась сразу на пестиках с бронёй (или можно было её покупать) и надпись Разминка в Худе ( а то люди играют и без всякой причины даётся рестарт потом удивляются ) и после рестарта типо: LIVE LIVE LIVE ?
WarmUP.sma
Код:
/* last update: 2/25/2014
*
* Attention: setting hp during knife round (if enabled) to bots are NOT supported!
*
* Credits:
* - Subb98 for the idea & prototype
* - ConnorMcLeod for code that forces spawning of newly connected players
* https://forums.alliedmods.net/showthread.ph...862#post1820862
*
* Thanks to eX-test from CS Support Community https://c-s.net.ua/ for testing
*/

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Simple WarmUp"
#define VERSION "0.50"
#define AUTHOR "Safety1st"

// *** customizable parameters
#define RESTART_AFTER // comment to disable restart round after warmup end
//#define KNIFE_ROUND_ONLY // uncomment to enable knife warmup round only
//#define _35HP_FOR_KNIFE_ROUND // uncomment to enable 35 hp during knife round
// *** end of customizable parameters

#define TT 1
#define CT 2

new giRoundCounter
new gMsgStatusIconReg, gMsgStatusIcon, gMsgCurWeapon
new HamHook:g_iHhCBasePlayerSpawn, HamHook:g_iHhCBasePlayerPreThink
new bool:gbWarmupActive

#if defined RESTART_AFTER
new bool:gbIgnoreRestart
#endif

// offsets
#define m_fClientMapZone 235
#define MAPZONE_BUYZONE ( 1<<0 )

enum {
ROUND_NONE,
ROUND_KNIFE,
ROUND_PISTOL
}

const m_iJoinedState = 121
const m_iMenu = 205

const MENU_CHOOSEAPPEARANCE = 3
const STATE_PICKINGCLASS = 4

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )

register_event( "TextMsg", "EventNewGame", "a", "2=#Game_will_restart_in", "2=#Game_Commencing" )
register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" )
register_event( "CurWeapon", "EventCurWeapon", "be", "1=1", "2!29" ) // specified, call if is send to alive player only

register_logevent( "EventRoundEnd", 2, "1=Round_End" )

gMsgStatusIcon = get_user_msgid( "StatusIcon" )
gMsgCurWeapon = get_user_msgid( "CurWeapon" )

DisableHamForward( g_iHhCBasePlayerSpawn = RegisterHam( Ham_Spawn, "player", "OnCBasePlayer_Spawn_Post", 1 ) )

DisableHamForward( g_iHhCBasePlayerPreThink = RegisterHam( Ham_Player_PreThink, "player", "OnCBasePlayer_PreThink_Post", 1 ) )

register_clcmd( "menuselect", "ClCmd_MenuSelect_JoinClass" )
register_clcmd( "joinclass", "ClCmd_MenuSelect_JoinClass" )
}

public EventNewGame() {
#if defined RESTART_AFTER
if( gbIgnoreRestart ) {
// it is planned
gbIgnoreRestart = false
return
}
#endif

if( !gbWarmupActive ) {
// we don't have active 'hooks' for now
gMsgStatusIconReg = register_message( gMsgStatusIcon, "MessageStatusIcon" )
EnableHamForward( g_iHhCBasePlayerSpawn )
gbWarmupActive = true
}

giRoundCounter = ROUND_NONE
}

public EventNewRound() {
if( !gbWarmupActive )
return

giRoundCounter++
}

public OnCBasePlayer_Spawn_Post(id) {
if( !is_user_alive(id) )
return

switch( giRoundCounter ) {
#if defined _35HP_FOR_KNIFE_ROUND
case ROUND_KNIFE : set_pev( id, pev_health, 35.0 )
#endif
case ROUND_PISTOL: {
switch( get_user_team(id) ) {
case TT: cs_set_user_bpammo( id, CSW_GLOCK18, 120 )
case CT: cs_set_user_bpammo( id, CSW_USP, 100 )
}
}
}
}

public EventCurWeapon(id) {
if( !gbWarmupActive )
return

switch( giRoundCounter ) {
case ROUND_KNIFE : {
if( read_data(2) /* weapon id */ != CSW_C4 )
SetKnife(id)
}
case ROUND_PISTOL: {
switch( read_data(2) ) {
case CSW_GLOCK18, CSW_USP, CSW_C4 : return
}
SetKnife(id)
}
}
}

SetKnife(id) {
engclient_cmd( id, "weapon_knife" )

// update info about weapon
emessage_begin( MSG_ONE, gMsgCurWeapon, _, id )
ewrite_byte(1) // active
ewrite_byte(CSW_KNIFE) // weapon
ewrite_byte(-1) // clip
emessage_end()
}

public MessageStatusIcon( msgid, dest, receiver ) { // Exolent[jNr]'s code
// check if status is to be shown
if( get_msg_arg_int(1) ) {
static const buyzone[] = "buyzone"

// grab what icon is being shown
new icon[ sizeof( buyzone ) + 1 ]
get_msg_arg_string( 2, icon, charsmax(icon) )

// check if buyzone icon
if( !strcmp( icon, buyzone ) ) {
// remove player's buyzone bit for the map zones
set_pdata_int( receiver, m_fClientMapZone, get_pdata_int( receiver, m_fClientMapZone ) &~ MAPZONE_BUYZONE )
// block buyzone icon
return PLUGIN_HANDLED
}
}

return PLUGIN_CONTINUE
}

public EventRoundEnd() {
if( !gbWarmupActive )
return

// remember: Round_End is fired right after Game_Commencing too
switch( giRoundCounter ) {
case ROUND_NONE: return
#if !defined KNIFE_ROUND_ONLY
case ROUND_KNIFE : return
#endif
}

gbWarmupActive = false
unregister_message( gMsgStatusIcon, gMsgStatusIconReg )
DisableHamForward( g_iHhCBasePlayerSpawn )

#if defined RESTART_AFTER
gbIgnoreRestart = true
set_cvar_num( "sv_restart", 4 )
#endif
}

public ClCmd_MenuSelect_JoinClass(id) {
if( !gbWarmupActive )
return

if( get_pdata_int(id, m_iMenu) == MENU_CHOOSEAPPEARANCE && get_pdata_int(id, m_iJoinedState) == STATE_PICKINGCLASS )
EnableHamForward( g_iHhCBasePlayerPreThink )
}

public OnCBasePlayer_PreThink_Post(id) {
DisableHamForward( g_iHhCBasePlayerPreThink )
if( !is_user_alive(id) )
ExecuteHam( Ham_Spawn, id )
}


Отредактировал: firante, - 7.6.2014, 7:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Safety1st
сообщение 7.6.2014, 7:32
Сообщение #2
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Я передумал, сделаю ;) Эти функции, кажется, пригодятся многим.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 7.6.2014, 7:41
Сообщение #3


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Safety1st, Ждемс. А сделай, квары, что бы можно было выбрать: Ножи или Пистолеты.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.6.2014, 7:42
Сообщение #4
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Не, только define'ы. Это выгоднее и проще сделать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 7:47
Сообщение #5


Стаж: 12 лет

Сообщений: 409
Благодарностей: 41
Полезность: < 0

Safety1st,
Вот спасибо ) а то попробовал много вармапов не понравились(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 7.6.2014, 9:24
Сообщение #6


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Safety1st, А долго ждать релиз?

Отредактировал: Nebo, - 7.6.2014, 9:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.6.2014, 9:54
Сообщение #7
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Завтра, наверное)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 7.6.2014, 10:22
Сообщение #8


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Я думал через часик, два, а тут sad.gif

Кстати, а как будут обстоять дела с картами типа: aim_, awp_, 35hp_? Можно сделать, что бы на таких картах, плагин не работал (только не конфигами)

Отредактировал: Nebo, - 7.6.2014, 11:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.6.2014, 18:09
Сообщение #9
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(Nebo @ 7.6.2014, 12:22) *
Я думал через часик, два, а тут sad.gif

Мои сервера ждут и мелкие плагины месяцами.

Цитата(Nebo @ 7.6.2014, 12:22) *
Кстати, а как будут обстоять дела с картами типа: aim_, awp_, 35hp_? Можно сделать, что бы на таких картах, плагин не работал (только не конфигами)

Можно, но я не буду.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 18:14
Сообщение #10


Стаж: 12 лет

Сообщений: 409
Благодарностей: 41
Полезность: < 0

Цитата(Nebo @ 7.6.2014, 10:22) *
Кстати, а как будут обстоять дела с картами типа: aim_, awp_, 35hp_? Можно сделать, что бы на таких картах, плагин не работал (только не конфигами)

В configs можно поставить pause на плагин в определённых картах!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя perfectblood0
сообщение 7.6.2014, 18:15
Сообщение #11
Стаж: 17 лет

Сообщений: 5065
Благодарностей: 2685
Полезность: 488

Цитата(Nebo @ 7.6.2014, 12:22) *
Я думал через часик, два, а тут sad.gif

Кстати, а как будут обстоять дела с картами типа: aim_, awp_, 35hp_? Можно сделать, что бы на таких картах, плагин не работал (только не конфигами)

Чем конфиги не устраивают?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 7.6.2014, 18:16
Сообщение #12


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

perfectblood0, Каждый раз создавать конфиг, как то не очень.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя perfectblood0
сообщение 7.6.2014, 18:21
Сообщение #13
Стаж: 17 лет

Сообщений: 5065
Благодарностей: 2685
Полезность: 488

Цитата(Nebo @ 7.6.2014, 20:16) *
perfectblood0, Каждый раз создавать конфиг, как то не очень.

1 раз создал на нужную карту и все.
Вряд ли у тебя много awp или knife карт
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 7.6.2014, 18:22
Сообщение #14
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(Nebo @ 7.6.2014, 20:16) *
Каждый раз создавать конфиг, как то не очень.

А кому-то кажется не очень выключать плагин на определённых картах) Вот я, например) Ведь плагин оружие не выдаёт, чтобы вырубать на knife-картах, например. Просто во время warmup'а все игроки смогут заспавниться, а не ждать конца раунда. Конфиги по префиксам мап (иногда - и для самих мап есть) у меня активно используются, что такое в плагинах не имеет смысла мутить - оно очень 'личное' и должно настраиваться персонально для сервера.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 7.6.2014, 18:23
Сообщение #15


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Ладно, ладно. Главное плагин сделай :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.6.2014, 18:26
Сообщение #16
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

С этим затык: пока достойная идея в голову не пришла, как всё лучше сделать. Сейчас плагин жёстко заточен на первый knife-раунд, придётся многое переделывать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 19:15
Сообщение #17


Стаж: 12 лет

Сообщений: 409
Благодарностей: 41
Полезность: < 0

Цитата(Safety1st @ 7.6.2014, 18:26) *
С этим затык: пока достойная идея в голову не пришла, как всё лучше сделать. Сейчас плагин жёстко заточен на первый knife-раунд, придётся многое переделывать.


По мне кажется разминочный раунд должен быть простым без такого Рестарт через %d допустим (но надпись в HUD Разминка должна быть и после разминки типо LIVE!). Это же разминочный раунд сыграли раунд и рестарт желательно с дефолтными пестиками чтобы могли покупать на 800$ всё что возможно!

Отредактировал: firante, - 7.6.2014, 19:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 7.6.2014, 19:28
Сообщение #18
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(firante @ 7.6.2014, 21:15) *
По мне кажется разминочный раунд должен быть простым без такого Рестарт через %d допустим

Не, без restart'а - это не warmup. Не все же начинают сначала, кто позже - тому труднее обычно. Цель warmup'а - занять чем-нибудь присутствующих, пока остальные подтягиваются, чтобы начать всем вместе реальную игру. Я уберу возможность отключения restart'а.

С остальным согласен.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 7.6.2014, 19:34
Сообщение #19


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Safety1st, не, он про HUD с отсчетом до конца warmup'а
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 19:36
Сообщение #20


Стаж: 12 лет

Сообщений: 409
Благодарностей: 41
Полезность: < 0

Цитата(Bloo @ 7.6.2014, 19:34) *
Safety1st, не, он про HUD с отсчетом до конца warmup'а

Да я насчёт худа имел ввиду не нужно такое нужна простенькая надпись "Разминка" или "Разминочный раунд" как заканчивается раунд или когда всех убивают потом делается уже рестарт!

Отредактировал: firante, - 7.6.2014, 19:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: