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

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

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

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

2 страниц V   1 2

Помогите доработать очень полезный плагин.

, Хотя бы частично, надо урезать Walkguard
Статус пользователя wopox3
сообщение 11.12.2013, 11:51
Сообщение #1


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Здравствуйте! Имею одну идею, которая уже реализована неким SKAJIbnEJIb (платно - Balancing Map). И цена для этого плагина, для меня высока. Обидеть создателя этого плагина не хочу, поэтому за реализацию своих идей и чужие наработки - отвечаю. Делаю плагин лично для своего проекта.

Имею некоторые наработки, которые естественно сделаны "криво". Плагин работает и в таком виде, но имеет баги, связанные с методом его работы.
За часть данных наработок нужно поблагодарить Internal. Доделать плагин он так и не смог, в связи с уходом в армию.

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

Вот плагин, который я пытался сделать.
Работает, но не совсем корректно.

Если бы была возмжность поставить HIDE - я бы поставил.
2x2_mode v1.1
Код:
// Пытался доработать плагин - wopox

#include <amxmodx>
#include <fun>
#include <engine>

#define DE_DUST2 1
#define DE_INFERNO 2
#define DE_NUKE 3
#define DE_TRAIN 4

static g_pPlayersNum;
static g_iMap = 0;
static g_iOriginLast[33][3];
static bool: g_bCurRoundEnable = false;

public plugin_init () {
register_plugin ("2x2 Mode_mod","1.1","Internal");
new sMap[64];
get_mapname (sMap,63);
if (equali (sMap,"de_dust2")) g_iMap = DE_DUST2;
else if (equali (sMap,"de_nuke")) g_iMap = DE_NUKE;
else if (equali (sMap,"de_inferno")) g_iMap = DE_INFERNO;
else if (equali (sMap,"de_train")) g_iMap = DE_TRAIN;
if (g_iMap) {
g_pPlayersNum = register_cvar ("2x2_players","8");
register_logevent ("round_start",2,"1=Round_Start");
set_task (0.1,"check_user_origin",_,_,_,"b");
}
register_clcmd ("say /2x2","enable_info");
register_clcmd ("say_team /2x2","enable_info");
}

public enable_info (id) {
new sBuffer[16];
if (g_bCurRoundEnable) copy (sBuffer,15,"ENABLED");
else copy (sBuffer,15,"DISABLED");
client_print (id,print_chat,"[2X2 MODE] SYSTEM %s",sBuffer);
return PLUGIN_HANDLED;
}

public round_start () {
if (get_playersnum () < get_pcvar_num (g_pPlayersNum)) g_bCurRoundEnable = true;
else g_bCurRoundEnable = false;
}

public check_user_origin () {
if (!g_bCurRoundEnable) return PLUGIN_CONTINUE;
new a = 0;
new iOrigin[3];
for (a = 1;a < 33;a ++) {
if (!is_user_connected (a) || is_user_hltv (a) || !is_user_alive (a)) continue;
get_user_origin (a,iOrigin);
switch (g_iMap) {
case DE_DUST2: {
if ((iOrigin[0] <= (-500) && iOrigin[1] >= 1310)
|| (iOrigin[0] <= (-1360) && iOrigin[1] >= (-980) && iOrigin[1] <= (-270))) {
stop_player_ground (a);
continue;
}
}
case DE_NUKE: {
if ((iOrigin[0] >= (-240) && iOrigin[0] <= (-80) && iOrigin[1] >= (-685))
|| (iOrigin[0] >= 800 && iOrigin[0] <= 831 && iOrigin[1] >= (-1365) && iOrigin[2] <= (-550))
|| (iOrigin[0] >= 800 && iOrigin[0] <= 831 && iOrigin[1] <= (-1470) && iOrigin[2] <= (-550))
|| (iOrigin[0] >= 448 && iOrigin[0] <= 479 && iOrigin[1] >= (-1365) && iOrigin[2] <= (-550))
|| (iOrigin[0] >= 448 && iOrigin[0] <= 479 && iOrigin[1] <= (-1470) && iOrigin[2] <= (-550))
|| (iOrigin[0] >= 1040 && iOrigin[0] <= 1199 && iOrigin[1] >= (-130))
|| (iOrigin[0] <= 2325 && iOrigin[0] >= 2160 && iOrigin[1] <= (-1713))) {
stop_player_ground (a);
continue;
}
if (iOrigin[0] >= 206 && iOrigin[0] <= 210 && iOrigin[1] <= (-765) && iOrigin[1] >= (-825) && iOrigin[2] >= (-165)) {
stop_player_ladder (a);
continue;
}
}
case DE_INFERNO: {
if ((iOrigin[0] >= 50 && iOrigin[0] <= 195 && iOrigin[1] >= 912)
|| (iOrigin[0] <= 2224 && iOrigin[1] <= 2607 && iOrigin[1] >= 2224)){
stop_player_ground (a);
continue;
}
}
case DE_TRAIN: {
if ((iOrigin[0] >= (-830) && iOrigin[1] <= 1700 && iOrigin[1] >= (-400) )) {
stop_player_ground (a);
continue;
}
}
}
g_iOriginLast[a][0] = iOrigin[0];
g_iOriginLast[a][1] = iOrigin[1];
g_iOriginLast[a][2] = iOrigin[2];
}
return PLUGIN_CONTINUE;
}

public stop_player_ground (id) {
new iOriginEnd[3];
iOriginEnd[0] = g_iOriginLast[id][0];
iOriginEnd[1] = g_iOriginLast[id][1];
iOriginEnd[2] = g_iOriginLast[id][2] + 30;
set_user_origin (id,iOriginEnd);
drop_to_floor (id);
set_user_velocity (id,Float: {0.0,0.0,0.0});
}

public stop_player_ladder (id) {
set_user_origin (id,g_iOriginLast[id]);
set_user_velocity (id,Float: {0.0,0.0,0.0});
}

public client_connect (id) {
clean_vars (id);
}

public client_disconnect (id) {
clean_vars (id);
}

public clean_vars (id) {
g_iOriginLast[id][0] = 0;
g_iOriginLast[id][1] = 0;
g_iOriginLast[id][2] = 0;
}

Я думаю, сам метод работы с игроком не правильный. Перемещение на последнюю точку игрока вне заданной зоны.

Весь вечер просидел, дабы разобрать код плагина WalkGuard v1.3.2. Так и не смог. Слишком он для меня "объёмный и не понятный".
Так же в коде присутствуют комментарии, но они на не понятном для меня языке (пример: benцtigt fьr die Lininen)

Взял именно этот плагин, потому что думаю, что нужен метод использующий SOLID_BBOX для блокирования игрока. И там этот метод используется, но я даже не смог найти толково, в какой части кода он задействован.

WalkGuard v1.3.2
Скачать sma с AlliedMods
Под спойлер код бы не поместился (1124 строчки)


В этом плагине я увидел:
ZM_BLOCK_ALL
ZONE_MODE_BLOCKING
wgz_block_all


Помогите использовать другой метод, желательно с вырезом меню из WalkGuard.
Думаю, наследовать мне стоит и этой темой - https://c-s.net.ua/forum/topic14773.html
Хотел бы узнать ваше мнение.

upd1: потихоньку расковыриваю walkguard. Пока что успешно. О дальнейших действиях сообщу в этой теме.
upd2: покопавшись в 2-ух исходниках, понял, что лучше будет отредактировать уже готовый WalkGuard 1.3.2
Подскажите, как этот кусок кода:
кусок кода из walkGuard
Код:


enum ZONEMODE {
ZM_NOTHING,
ZM_CAMPING,
ZM_CAMPING_T1, // Team 1 -> e.g. Terrorist
ZM_CAMPING_T2, // Team 2 -> e.g. Counter-Terroris
ZM_BLOCK_ALL,
ZM_KILL,
ZM_KILL_T1, // DoD-Unterstьtzung
ZM_KILL_T2
}

new zonemode[ZONEMODE][] = { "ZONE_MODE_NONE", "ZONE_MODE_CAMPER", "ZONE_MODE_CAMPER_T1", "ZONE_MODE_CAMPER_T2", "ZONE_MODE_BLOCKING", "ZONE_MODE_CHEATER", "ZONE_MODE_CHEATER_T1", "ZONE_MODE_CHEATER_T2" }
new zonename[ZONEMODE][] = { "wgz_none", "wgz_camper", "wgz_camper_t1", "wgz_camper_t2", "wgz_block_all", "wgz_kill", "wgz_kill_t1", "wgz_kill_t2" }
new solidtyp[ZONEMODE] = { SOLID_NOT, SOLID_TRIGGER, SOLID_TRIGGER, SOLID_TRIGGER, SOLID_BBOX, SOLID_TRIGGER, SOLID_TRIGGER, SOLID_TRIGGER }
new zonecolor[ZONEMODE][3] = {
{ 255, 0, 255 }, // nichts
{ 0, 255, 0 }, // Camperzone
{ 0, 255, 128 }, // Camperzone T1
{ 128, 255, 0 }, // Camperzone T2
{ 255, 255, 255 }, // alle Blockieren
{ 255, 0, 0 }, // Kill
{ 255, 0, 128 }, // Kill - T1
{ 255, 128, 0 } // Kill - T2
}

#define ZONEID pev_iuser1
#define CAMPERTIME pev_iuser2


заменить на примерно такой:
Упрощённый WalkGuard
Код:

new ZONEMODE = ZM_BLOCK_ALL
new zonename = wgz_block_all
new solidtyp = SOLID_BBOX
new zonecolor = ("255", "255", "255")

// #define ZONEID pev_iuser1
// #define CAMPERTIME pev_iuser2


Просто ведь, если убрать "лишнее" из WalkGuard - то получится достойная замена Balancing Map, и бесплатная.

и еще добавить это:

Подсчёт количества игроков каждый новый раунд
Код:


static bool: g_bCurRoundEnable = false;
g_pPlayersNum = register_cvar ("2x2_players","8");
register_logevent("Event_RoundStart", 2, "1=Round_Start")

public Event_RoundStart () {
if (get_playersnum () <= get_pcvar_num (g_pPlayersNum)) g_bCurRoundEnable = true;
else g_bCurRoundEnable = false;
}

public BlockZones () {
if (!g_bCurRoundEnable) return PLUGIN_CONTINUE;
}

Это так сказать набросок. И если знающие хоть немного лучше меня люди возьмутся за это, то думаю получится не плохая замена.
Тоесть, сохранение позиций обьектов блокировки в файл + не надо ни каких спрайтов.
Так же есть идея реализации, не пустого entity, а стекла (как в окне на de_nuke), но не разбиваемого, и убирать при некотором условии.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя smarty
сообщение 11.12.2013, 13:01
Сообщение #2


Стаж: 10 лет

Сообщений: 316
Благодарностей: 111
Полезность: 109

Цитата(wopox3 @ 11.12.2013, 13:51) *
...

Гугл отдал. Посмотри мб и полная.
Прикрепленные файлы:
Прикрепленный файл  Balancing_Map.rar ( 17,53 килобайт ) Кол-во скачиваний: 30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
exec1337
сообщение 11.12.2013, 13:15
Сообщение #3
Стаж: 11 лет

Сообщений: 6490
Благодарностей: 2558
Полезность: 491

Обращаться к опытному скриптеру с приемлимыми ценами вы не хотите, так?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 11.12.2013, 13:25
Сообщение #4


Иконка группы

Стаж: 13 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

Цитата(smarty @ 11.12.2013, 13:01) *
Гугл отдал. Посмотри мб и полная.


Скорее всего полная но без исходника не то то раз, а во вторых у скальпеля все плагины привязаны по net_adress что в принципе легко обходится но приносит кучу костылей в будущем!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 11.12.2013, 13:35
Сообщение #5
Стаж: 12 лет
Город: Moscow

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

Цитата(wopox3 @ 11.12.2013, 13:51) *
И цена для этого плагина, для меня высока. Обидеть создателя этого плагина не хочу, поэтому за реализацию своих идей и чужие наработки - отвечаю. Делаю плагин лично для своего проекта.

Цитата(smarty @ 11.12.2013, 15:01) *
Гугл отдал. Посмотри мб и полная.

Человек прямо сказал: купить возможности нет, нахаляву юзать не буду, так ему всё равно плагин пихают cbf1b2bfde1a.gif

Цитата(f1nik @ 11.12.2013, 15:25) *
у скальпеля все плагины привязаны по net_adress что в принципе легко обходится но приносит кучу костылей в будущем!

Не так уж и легко, если не знать кое-чего. А вообще зачем было вдаваться в детали ('легко')? У нас форум кулхацкеров? cbf1b2bfde1a.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 11.12.2013, 22:11
Сообщение #6


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(smarty @ 11.12.2013, 14:01) *
Гугл отдал. Посмотри мб и полная.


Извини, но вариант использования пиратской версии не подойдёт.
Врядли этот плагин есть в паблике.

Цитата(exec1337 @ 11.12.2013, 14:15) *
Обращаться к опытному скриптеру с приемлимыми ценами вы не хотите, так?


Есть такой вариант, но только если этот вариант меньше цены самого плагина, то есть - cost <500

Отредактировал: wopox3, - 11.12.2013, 22:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 11.12.2013, 22:29
Сообщение #7


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(Safety1st @ 11.12.2013, 14:35) *
Человек прямо сказал: купить возможности нет, нахаляву юзать не буду, так ему всё равно плагин пихают cbf1b2bfde1a.gif


Не так уж и легко, если не знать кое-чего. А вообще зачем было вдаваться в детали ('легко')? У нас форум кулхацкеров? cbf1b2bfde1a.gif


Спасибо за поддержку, из последних новостей новичка (меня):
Я смог поковырять код walkguard (далее WG), и обрезать (не до конца, мусор еще есть) то, что мне не нужно, при этом оставить нужную функцию создание entity, с изменением её типа в зависимости от условия.

Пример куска кода:

Код:

...
static переключатель: g_включение_опции = false;

public round_start () {
if (число игроков < число заданное кваром) g_включение_опции = true;
else g_включение_опции = false;
}

public СозданиеЕнтити {
...
if (!g_включение_опции) {
свойстваEntity (..., ..., SOLID_BBOX)
} else {
свойстваEntity (..., ..., SOLID_NON)
}
...


Конечно, там еще много нужно доработать, но я рад результатом работы!)
Код написал именно так - специально. Может немного не правильно, но суть ясна. Кому нужно - подхватят.

Из идей: хочу реализовать на проверку нахождения бомбы в зоне ентити, и при нахождении - либо передать игроку, либо блокировать, так же как и player, но я не знаю, как назвать бомбу, ентити бомбы.

Я думаю, если поможете, то получится нужный плагин. Но как бы не обидеть SKAJIbneJIb.... тоесть этот продукт нельзя в паблик? sad.gif

Отредактировал: wopox3, - 11.12.2013, 22:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 11.12.2013, 22:50
Сообщение #8
Стаж: 10 лет

Сообщений: 4755
Благодарностей: 3837
Полезность: 693

// Is bomb dropped/carried?
if (fm_find_ent_by_class(-1, "weapon_c4"))

// Is bomb dropped?
new bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && pev(bomb, pev_owner) > get_maxplayers())

// Is bomb carried/who is the carrier?
new carrier = 0, ownerent, bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && (ownerent = pev(bomb, pev_owner)) <= get_maxplayers())
carrier = ownerent
if (carrier) // we have the carrier
else // we do not have a carrier

// Is given player has the bomb?
if (user_has_weapon(id, CSW_C4)) // method #1
if (pev(id, pev_weapons) & (1<<CSW_C4)) // method #2
if (fm_find_ent_by_owner(-1, "weapon_c4", id)) // method #3

// How to transfer the bomb from one player to another?
fm_transfer_user_gun(carrier, recipient, CSW_C4) // returns true on success

// How to force a player to drop the bomb?
engclient_cmd(id, "drop", "weapon_c4")

// How to remove the dropped bomb?
new weapbox, bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && (weapbox = pev(bomb, pev_owner)) > get_maxplayers()) {
dllfunc(DLLFunc_Think, weapbox) // will remove weaponbox + weapon_c4 entity pair
// remove blinking red bomb mark on the radar
message_begin(MSG_ALL, get_user_msgid("BombPickup"))
message_end()
}

// How to give the bomb to a player?
fm_give_item(id, "weapon_c4")
// use cs_set_user_plant(id) to allow planting

// How to strip the bomb from a player?
engclient_cmd(id, "weapon_c4")
cs_set_user_bpammo(id, CSW_C4, 0)
engclient_cmd(id, "lastinv")
// remove bomb hud icon
message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, id)
write_byte(0)
write_string("c4")
message_end()

// Is bomb planted/how to remove the planted bomb?
new bomb
if ((bomb = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl"))) {
// bomb is planted
fm_remove_entity(bomb) // remove the planted bomb
}


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 11.12.2013, 23:10
Сообщение #9
Стаж: 12 лет
Город: Moscow

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

[quote name='wopox3' date='12.12.2013, 0:29' post='507152']Код:

public round_start () {
if (число игроков < число заданное кваром) g_включение_опции = true;
else g_включение_опции = false;
}

Тут надо хитрее. Этот 'баг' ещё в BM есть. В начале карты игроки только собираются в 1-м раунде, 'шторка' закрыта, а народу много. Прикольно было бы сделать, чтобы она убиралась и после начала раунда.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 11.12.2013, 23:19
Сообщение #10


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(csnet @ 11.12.2013, 23:50) *
...


Thanks! Это несомненно мне поможет!

Запихал весь его ко под спойлер, ради удобства.
Работа с объектами fakemeta

Код:

// Is bomb dropped/carried?
if (fm_find_ent_by_class(-1, "weapon_c4"))

// Is bomb dropped?
new bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && pev(bomb, pev_owner) > get_maxplayers())

// Is bomb carried/who is the carrier?
new carrier = 0, ownerent, bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && (ownerent = pev(bomb, pev_owner)) <= get_maxplayers())
carrier = ownerent
if (carrier) // we have the carrier
else // we do not have a carrier

// Is given player has the bomb?
if (user_has_weapon(id, CSW_C4)) // method #1
if (pev(id, pev_weapons) & (1<<CSW_C4)) // method #2
if (fm_find_ent_by_owner(-1, "weapon_c4", id)) // method #3

// How to transfer the bomb from one player to another?
fm_transfer_user_gun(carrier, recipient, CSW_C4) // returns true on success

// How to force a player to drop the bomb?
engclient_cmd(id, "drop", "weapon_c4")

// How to remove the dropped bomb?
new weapbox, bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && (weapbox = pev(bomb, pev_owner)) > get_maxplayers()) {
dllfunc(DLLFunc_Think, weapbox) // will remove weaponbox + weapon_c4 entity pair
// remove blinking red bomb mark on the radar
message_begin(MSG_ALL, get_user_msgid("BombPickup"))
message_end()
}

// How to give the bomb to a player?
fm_give_item(id, "weapon_c4")
// use cs_set_user_plant(id) to allow planting

// How to strip the bomb from a player?
engclient_cmd(id, "weapon_c4")
cs_set_user_bpammo(id, CSW_C4, 0)
engclient_cmd(id, "lastinv")
// remove bomb hud icon
message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, id)
write_byte(0)
write_string("c4")
message_end()

// Is bomb planted/how to remove the planted bomb?
new bomb
if ((bomb = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl"))) {
// bomb is planted
fm_remove_entity(bomb) // remove the planted bomb
}



Отредактировал: wopox3, - 11.12.2013, 23:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 11.12.2013, 23:33
Сообщение #11


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(Safety1st @ 12.12.2013, 0:10) *
Цитата(wopox3 @ 12.12.2013, 0:29) *
Код:

public round_start () {
if (число игроков < число заданное кваром) g_включение_опции = true;
else g_включение_опции = false;
}

Тут надо хитрее. Этот 'баг' ещё в BM есть. В начале карты игроки только собираются в 1-м раунде, 'шторка' закрыта, а народу много. Прикольно было бы сделать, чтобы она убиралась и после начала раунда.


Если речь идёт о том, что надо сделать задержку перед подгрзкой зон для карты? там это уже сделанно, но маловато ;)

Код:
set_task(1.0, "LoadWGZ")

переделать в
Код:
set_task(10.0, "LoadWGZ")


не думаю, что это как то повредит работе, просто ведь будет подгружать зоны через 10 секунд, после смены карты.

Кстати, еще надо продумать респауны, или слачаи, когда игрок находится в зоне (так же как и бомба)

Отредактировал: wopox3, - 11.12.2013, 23:35
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
exec1337
сообщение 11.12.2013, 23:37
Сообщение #12
Стаж: 11 лет

Сообщений: 6490
Благодарностей: 2558
Полезность: 491

Цитата(wopox3 @ 11.12.2013, 23:11) *
Есть такой вариант, но только если этот вариант меньше цены самого плагина, то есть - cost <500

Тогда пишите мне по контактам. Дам координаты стОящего скриптера.

// можно и ЛС
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 11.12.2013, 23:37
Сообщение #13
Стаж: 12 лет
Город: Moscow

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

Задержка не нужна, иначе игроки успеют убежать в зону, которая позже будет заблокирована. Просто хотя бы в putinserver проверять суммарное число игроков в тимах.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 11.12.2013, 23:50
Сообщение #14


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(Safety1st @ 12.12.2013, 0:37) *
Задержка не нужна, иначе игроки успеют убежать в зону, которая позже будет заблокирована. Просто хотя бы в putinserver проверять суммарное число игроков в тимах.



Тоесть:
Код:

public client_putinserver(id){

new players
players = get_playersnum()

}


Как то так я понимаю реализацию тобою написанного. Правильно мыслю?
И, мне кажется, что реализовать функцию прямо по середине раунда - как то не правильно. Надо в начале раунда, а может просто после 1-го раунда исполнять? 1ый раунд то пусть побегают. Или до события начала игры?

Принципе, 1 "тесный раунд" ничего плохого не сделает, с учётом того, как все любят 2х2 карты, я думаю если второй раунд начнётся как положено, то будет всё в порядке.

Отредактировал: wopox3, - 11.12.2013, 23:57
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 12.12.2013, 12:45
Сообщение #15


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(Safety1st @ 12.12.2013, 0:37) *
Задержка не нужна, иначе игроки успеют убежать в зону, которая позже будет заблокирована. Просто хотя бы в putinserver проверять суммарное число игроков в тимах.



Подскажи пожалуйста, правильно ли записывать код именно так?

Код:

if (editorMode || ( "g_2x2mode_enable = false" ))
{
set_pev(entity, pev_solid, SOLID_NOT)
} else {
set_pev(entity, pev_solid, SOLID_BBOX)
}


Правильно ли я ввёл условие? g_2x2mode_enable = false

Отредактировал: wopox3, - 12.12.2013, 12:46
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 12.12.2013, 13:29
Сообщение #16


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(Safety1st @ 12.12.2013, 0:37) *
Задержка не нужна, иначе игроки успеют убежать в зону, которая позже будет заблокирована. Просто хотя бы в putinserver проверять суммарное число игроков в тимах.


upd: разобрался :)

Код:
if (editorMode || (!g_2x2mode_enable)) 
{
set_pev(entity, pev_solid, SOLID_NOT)
} else {
set_pev(entity, pev_solid, SOLID_BBOX)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Takashi Murakami
сообщение 12.12.2013, 13:47
Сообщение #17
Стаж: 12 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

В паблике есть данный плагин но без исходника. С бекдуром и редиректом на другие сервера правда. yy.gif так что не качайте с файлообменников.

Например вот красавчик лежит:

http://rghost.ru/39009294

С редиректом на сервер.

Отредактировал: Takashi Murakami, - 12.12.2013, 13:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 12.12.2013, 14:07
Сообщение #18


Иконка группы

Стаж: 13 лет

Сообщений: 7566
Благодарностей: 5436
Полезность: 1305

ой, я бы поучаствовал немного, но у меня мало времени и меня надо дёргать ТС если подергает то постараюсь помочь.
Я правда не могу пока что почитать подробно даже. может уже всё сделали =)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mysubcult
сообщение 12.12.2013, 14:23
Сообщение #19
Стаж: 10 лет

Сообщений: 382
Благодарностей: 28
Полезность: 86

А я вот к сожалению в этом 0, но плагин очень хотелось бы такой в бесплатном доступе увидеть, когда он будет готов, это возможно будет? Или тоже приватным будет?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 12.12.2013, 15:55
Сообщение #20


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Цитата(mazdan @ 12.12.2013, 15:07) *
ой, я бы поучаствовал немного, но у меня мало времени и меня надо дёргать ТС если подергает то постараюсь помочь.
Я правда не могу пока что почитать подробно даже. может уже всё сделали =)



На данный момент, я сделал проверку на количество человек в каждом раунде, и если количество <= заданного количества кваром - то плагин включает блокировку зон, иначе не трогает.

Так то работает, осталось убрать ненужные функции, оставшиеся от WalkGuard, такие как разновидность зон, и их настройки. Так как сам я "очень даже начинающий" сделать сам этого не не могу, при попытке поубирать, плагин выдаёт ошибки при компиляции.

Ну вообщем, осталось убрать лишнее, и возможно оптимизировать, а то я ж криворукий, ой, тоесть начинающий.)

В Скором времени выложу "супеКод" сюда.

Ребята, знающие уж всяко лучше меня, ПОМОГИТЕ - ОПТИМИЗИРУЙТЕ! без вас, это так и останется кривым кодом.... на вас надежда....

Цитата(mysubcult @ 12.12.2013, 15:23) *
А я вот к сожалению в этом 0, но плагин очень хотелось бы такой в бесплатном доступе увидеть, когда он будет готов, это возможно будет? Или тоже приватным будет?)


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

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