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

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

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

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

Team Manager

, tm invisible
Статус пользователя unnamed7777
сообщение 17.6.2014, 19:51
Сообщение #1


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Добрый день форум. Где-то 3 месяца тому, я начал писать новый мод "Invisible". Все было хорошо написал я его, но когда писал Team Manager(Остается 1 терорист, и 31 контр), при убийстве терориста раунд не заканчивается, а тупу мой манаджер скидает след жертву за терориста, как править
Код:
#include <amxmodx>
#include <Invisible>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#define PLAYERS_NEED 1

public plugin_init() {
register_plugin("Invisible [TEAM]", "1.0", "ServerBy905 Team & Tom")
/* # Event # */
RegisterHam(Ham_Killed, "player", "BalanceTeam")
/* # Message Event # */
register_message(get_user_msgid("ShowMenu"), "BlockCMD")
register_message(get_user_msgid("VGUIMenu"), "BlockCMD")
/* # Blocked Command. # */
register_clcmd("jointeam", "BlockCMD")
register_clcmd("jointeam 1", "BlockCMD")
register_clcmd("jointeam 2", "BlockCMD")
register_clcmd("jointeam 3", "BlockCMD")
register_clcmd("jointeam 4", "BlockCMD")
register_clcmd("jointeam 5", "BlockCMD")
register_clcmd("jointeam 6", "BlockCMD")
/*set_task(1.0, "StartGame", 0, _, _, "b")*/
set_task(4.5, "ChangeMap", 0, _, _, "b")
}

/*public StartGame() {
new player[32], num, id

get_players(player, num, "ch")

for(id=1;id<32;id++) {
if(num == 2 && invisible_control(id) && invisible_team_ct(id)) {
new pID = random_num(1,2)

cs_set_user_team(pID, CS_TEAM_T, CS_T_ARCTIC)
}
}
}*/

public ChangeMap() {
new iUser[32], num_tt
get_players(iUser, num_tt, "e", "TERRORIST")

if(num_tt == 1) {
}else{
new iPlayers[PLAYERS_NEED], iPlayersHave
iPlayersHave = GetRandomPlayers( iPlayers, PLAYERS_NEED )
if( iPlayersHave )
cs_set_user_team(iPlayers[0], CS_TEAM_T, CS_T_ARCTIC)
}
return PLUGIN_HANDLED
}

public client_putinserver(id)
set_task(0.1, "AutoJoinTeam", id)

public AutoJoinTeam(id) {
engclient_cmd(id, "jointeam", "2")
engclient_cmd(id, "joinclass", "3")
}

public BalanceTeam(victim, attacker, corpse) {
if(invisible_connect(attacker))
{
if(invisible_team_ct(attacker))
{
cs_set_user_team(victim, CS_TEAM_CT, CS_CT_SAS)
set_user_footsteps(victim, 0)
set_user_rendering(victim, kRenderFxNone, 255, 255, 255, kRenderNormal, 16)
}
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}

public BlockCMD(id)
return PLUGIN_HANDLED

GetRandomPlayers( players[], const need ) {
new iPlayers[32], iPlayersNum, iLastPlayer, iRandom, iFound
get_players( iPlayers, iPlayersNum, "a" )

iLastPlayer = iPlayersNum - 1

while( iLastPlayer != -1 && iFound != need ) {
iRandom = random_num( 0, iLastPlayer )
players[iFound++] = iPlayers[iRandom]
if( iRandom != iLastPlayer ) {

iPlayers[iRandom] = iPlayers[iLastPlayer]
}
iLastPlayer--
}

return iFound
}


Отредактировал: tom94ok, - 17.6.2014, 19:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя unnamed7777
сообщение 17.6.2014, 20:17
Сообщение #2


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(tom94ok @ 17.6.2014, 19:51) *
Добрый день форум. Где-то 3 месяца тому, я начал писать новый мод "Invisible". Все было хорошо написал я его, но когда писал Team Manager(Остается 1 терорист, и 31 контр), при убийстве терориста раунд не заканчивается, а тупу мой манаджер скидает след жертву за терориста, как править
Код:
#include <amxmodx>
#include <Invisible>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#define PLAYERS_NEED 1

public plugin_init() {
register_plugin("Invisible [TEAM]", "1.0", "ServerBy905 Team & Tom")
/* # Event # */
RegisterHam(Ham_Killed, "player", "BalanceTeam")
/* # Message Event # */
register_message(get_user_msgid("ShowMenu"), "BlockCMD")
register_message(get_user_msgid("VGUIMenu"), "BlockCMD")
/* # Blocked Command. # */
register_clcmd("jointeam", "BlockCMD")
register_clcmd("jointeam 1", "BlockCMD")
register_clcmd("jointeam 2", "BlockCMD")
register_clcmd("jointeam 3", "BlockCMD")
register_clcmd("jointeam 4", "BlockCMD")
register_clcmd("jointeam 5", "BlockCMD")
register_clcmd("jointeam 6", "BlockCMD")
/*set_task(1.0, "StartGame", 0, _, _, "b")*/
set_task(4.5, "ChangeMap", 0, _, _, "b")
}

/*public StartGame() {
new player[32], num, id

get_players(player, num, "ch")

for(id=1;id<32;id++) {
if(num == 2 && invisible_control(id) && invisible_team_ct(id)) {
new pID = random_num(1,2)

cs_set_user_team(pID, CS_TEAM_T, CS_T_ARCTIC)
}
}
}*/

public ChangeMap() {
new iUser[32], num_tt
get_players(iUser, num_tt, "e", "TERRORIST")

if(num_tt == 1) {
}else{
new iPlayers[PLAYERS_NEED], iPlayersHave
iPlayersHave = GetRandomPlayers( iPlayers, PLAYERS_NEED )
if( iPlayersHave )
cs_set_user_team(iPlayers[0], CS_TEAM_T, CS_T_ARCTIC)
}
return PLUGIN_HANDLED
}

public client_putinserver(id)
set_task(0.1, "AutoJoinTeam", id)

public AutoJoinTeam(id) {
engclient_cmd(id, "jointeam", "2")
engclient_cmd(id, "joinclass", "3")
}

public BalanceTeam(victim, attacker, corpse) {
if(invisible_connect(attacker))
{
if(invisible_team_ct(attacker))
{
cs_set_user_team(victim, CS_TEAM_CT, CS_CT_SAS)
set_user_footsteps(victim, 0)
set_user_rendering(victim, kRenderFxNone, 255, 255, 255, kRenderNormal, 16)
}
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}

public BlockCMD(id)
return PLUGIN_HANDLED

GetRandomPlayers( players[], const need ) {
new iPlayers[32], iPlayersNum, iLastPlayer, iRandom, iFound
get_players( iPlayers, iPlayersNum, "a" )

iLastPlayer = iPlayersNum - 1

while( iLastPlayer != -1 && iFound != need ) {
iRandom = random_num( 0, iLastPlayer )
players[iFound++] = iPlayers[iRandom]
if( iRandom != iLastPlayer ) {

iPlayers[iRandom] = iPlayers[iLastPlayer]
}
iLastPlayer--
}

return iFound
}


Хотябы дайте подсказку, что я сделал не так thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 17.6.2014, 20:23
Сообщение #3


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(Anton1o @ 17.6.2014, 20:21) *
/del


Что /del? Что на том месте было?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 17.6.2014, 20:24
Сообщение #4


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Лишнее.
Код:
register_clcmd("jointeam 1", "BlockCMD")
register_clcmd("jointeam 2", "BlockCMD")
register_clcmd("jointeam 3", "BlockCMD")
register_clcmd("jointeam 4", "BlockCMD")
register_clcmd("jointeam 5", "BlockCMD")
register_clcmd("jointeam 6", "BlockCMD")

Зачем блочить все мессаги менюшек? Если блочите смену тимы, то и ловите эти меню, а не все.
Лови пост килл, а не пре.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 17.6.2014, 20:28
Сообщение #5


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(Mistrick94 @ 17.6.2014, 20:24) *
Лишнее.
Код:
register_clcmd("jointeam 1", "BlockCMD")
register_clcmd("jointeam 2", "BlockCMD")
register_clcmd("jointeam 3", "BlockCMD")
register_clcmd("jointeam 4", "BlockCMD")
register_clcmd("jointeam 5", "BlockCMD")
register_clcmd("jointeam 6", "BlockCMD")

Зачем блочить все мессаги менюшек? Если блочите смену тимы, то и ловите эти меню, а не все.
Лови пост килл, а не пре.

А что нащед функции, что не заканчивается раунд когда T убили?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 17.6.2014, 20:37
Сообщение #6


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Цитата(Mistrick94 @ 18.6.2014, 1:24) *
Лови пост килл, а не пре.

Цитата(tom94ok @ 18.6.2014, 1:28) *
А что нащед функции, что не заканчивается раунд когда T убили?

Ну не знаю...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 17.6.2014, 20:50
Сообщение #7


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(Mistrick94 @ 17.6.2014, 20:37) *
Ну не знаю...

Значит мне нужно менять кт с т местом и т возращать на респавн? Или если можно пример, буду благодарен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 17.6.2014, 22:02
Сообщение #8
Стаж: 12 лет

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

Mistrick94,
если ловить post то раунд как раз и закончится, потому чел труп и двиг не успеет просто "понять" что ему подсунули еще игрока.
тут надо pre и ставить чела за Т :)

ps.gif Просто логика...
ps.gif ps.gif Хам в этом случае не успеет отработать как надо.. Проверено:)

Отредактировал: trollface, - 17.6.2014, 22:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 17.6.2014, 22:39
Сообщение #9


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(trollface @ 17.6.2014, 22:02) *
Mistrick94,
если ловить post то раунд как раз и закончится, потому чел труп и двиг не успеет просто "понять" что ему подсунули еще игрока.
тут надо pre и ставить чела за Т :)

ps.gif Просто логика...
ps.gif ps.gif Хам в этом случае не успеет отработать как надо.. Проверено:)

буду рад примеру
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 17.6.2014, 22:51
Сообщение #10


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

trollface,
Как я понял ТСу и надо чтобы закончился.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 17.6.2014, 22:55
Сообщение #11
Стаж: 12 лет

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

Mistrick94,
я прочитал неверно.
извиняюсь ;)

ps.gif ТС, просто заблокируйте установку нового игрока при убийстве Т и все.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 17.6.2014, 23:18
Сообщение #12


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(trollface @ 17.6.2014, 22:55) *
Mistrick94,
я прочитал неверно.
извиняюсь ;)

ps.gif ТС, просто заблокируйте установку нового игрока при убийстве Т и все.

мне нужна эта установка, чтобы новый игрок был за Т, а тот что был за КТ, код который я предоставил работает не коректно, а точнее он не заканчивает раунд, если терориста убили
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 17.6.2014, 23:23
Сообщение #13
Стаж: 12 лет

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

tom94ok,
раунд и не закончится потому что есть живые игроки за разные команды.

вы это поймите;)
Раунд заканчивается:
1. Либо по времени
2. Либо в одной команде нет живых
3. Либо выполнение миссии
4. Либо доп модулем принудительно завершать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 17.6.2014, 23:25
Сообщение #14


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(trollface @ 17.6.2014, 23:23) *
tom94ok,
раунд и не закончится потому что есть живые игроки за разные команды.

вы это поймите;)
Раунд заканчивается:
1. Либо по времени
2. Либо в одной команде нет живых
3. Либо выполнение миссии
4. Либо доп модулем принудительно завершать

А если убить того, кто зашел за т? и добавить ему +фраг и -смерть?

Отредактировал: tom94ok, - 17.6.2014, 23:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 18.6.2014, 6:45
Сообщение #15
Стаж: 12 лет

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

tom94ok,
эм..
а разве не должен вместо него появиться другой? оО
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 18.6.2014, 8:38
Сообщение #16


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(trollface @ 18.6.2014, 6:45) *
tom94ok,
эм..
а разве не должен вместо него появиться другой? оО

Убить того, кого мой манаджер скинул, чтобы закончился раунд, а того и так перекинет за CT
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 18.6.2014, 11:16
Сообщение #17
Стаж: 12 лет

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

tom94ok,
стоп...
давайте по порядку.
что ваш манагер делает вообще?

ps.gif Напишите по контактам, может помогу :)
Просто не совсем понимаю ситуации
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 18.6.2014, 21:12
Сообщение #18


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Все решил, прошу закрыть тему, ибо я не знаю как :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 18.6.2014, 21:17
Сообщение #19


Стаж: 12 лет

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

tom94ok, правильно было.бы поделиться со всеми решением...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unnamed7777
сообщение 18.6.2014, 22:54
Сообщение #20


Стаж: 12 лет

Сообщений: 54
Благодарностей: 7
Полезность: 17

Цитата(Bloo @ 18.6.2014, 21:17) *
tom94ok, правильно было.бы поделиться со всеми решением...

Увеличил Set_task до 7 сек, и все заработало
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: