Обучение и помощь по скриптингу для MIRDOBRO777

Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
MIRDOBRO777,
Код:
mp_round_infinite "f"
лочим проверку на количество живых игроков

Но в таком случае будет заблокирован конец раунда в не зависимости из какой команды умер игрока
 
Сообщения
112
Реакции
26
Ребята, что-то не могу придумать решение лучше для получения id оставшихся 1 на 1 игроков.
Каждую смерть проверяю число живых и когда остаются 1 на 1, мне надо их id для дуэли.
Есть другой способ, чтобы не пробегать циклом по всем игрокам?
Код:
public on_player_killed(iVictim, iAttacker) {
 new iPlayers[MAX_PLAYERS], iNumCt, iNumT;
 get_players(iPlayers, iNumCt, "ae", "CT");
 get_players(iPlayers, iNumT, "ae", "TERRORIST");
 if(iNumCt > 1 || iNumT > 1) return;
 for (new i = 1; i <= MAX_PLAYERS; i++) {
 if(is_user_alive(i) && get_member(i, m_iTeam) == CS_TEAM_CT) g_iCT = i;
 if(is_user_alive(i) && get_member(i, m_iTeam) == CS_TEAM_T) g_iT = i;
}
 
Сообщения
271
Реакции
347
Помог
15 раз(а)
Код:
public on_player_killed(iVictim, iAttacker) {
    new iPlayersCT[MAX_PLAYERS], iNumCT; get_players(iPlayersCT, iNumCT, "ae", "CT");
    new iPlayersTT[MAX_PLAYERS], iNumTT; get_players(iPlayersTT, iNumTT, "ae", "TERRORIST");

    if (iNumCT != 1 || iNumTT != 1)
        return;

    g_iCT = iPlayersCT[0];
    g_iTT = iPlayersTT[0];
}
ну или можно сначала проверять одну команду, а потом уже другую (для оптимизаторов)..
 
  • Нравится
Реакции: Ayk
Сообщения
112
Реакции
26
Denzer, я так делал.
И моя ошибка была в том, что я брал не '0' ячейку, а '1'.
И еще, поправка на число игроков, что точно если не по 1, то стопим плагин.
Спасибо!
 
Сообщения
225
Реакции
90
Помог
1 раз(а)
MIRDOBRO777, Можно при спавне игрока прибавлять общее количество игроков в его команде, а потом при каждой смерти вычитать. Что-то вроде:

C++:
new g_AliveUsers[2];

event_player_spawn(id)
{
    ++g_AliveUsers[get_team(id)];
}

event_player_kill(id)
{
    --g_AliveUsers[get_team(id)];
    if(g_AliveUsers[TEAM_CT] == 1 && g_AliveUsers[TEAM_TT] == 1) start_duel();
}
event_round_start()
{
g_AliveUsers[TEAM_CT] = g_AliveUsers[TEAM_TT] = 0;
}
upd: там возможные воскрешения живых нужно учитывать, но думаю разберёшься
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
MIRDOBRO777, получай список живых игроков. проверяй их колеичество. если 2 и они в разных командах, то стартуй дуель. Примерно так
Код:
new players[MAX_PLAYERS], num;
get_players_ex(players, num, GetPlayers_ExcludeDead | GetPlayers_ExcludeHLTV);
if (num == 2 && get_user_team(players[0]) != get_user_team(players[1])) {
    // ...
}
 
Сообщения
112
Реакции
26
Всем привет!
Подскажите, пожалуйста, возможно ли управлять счетом побед в TAB (таблица счета)?
Например, я хочу хранить число побед за все карты.
Т.е. на одной карте счет 10-25 в пользу КТ, а на другой карте 21-15 в пользу ТТ.
Мне надо, чтобы после двух и последующих карт счет сохранялся и подгружался в таблицу счета на клавишу "TAB".
На третьей карте счет должен показывать: 31-40 в пользу КТ.
И еще, есть возможность изменять название команд в той же таблице счета?
 
Сообщения
112
Реакции
26
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
MIRDOBRO777, нужно менять мемберы которые я выделил, либо хука ть мессагу, которую скинул Denzer.
 
  • Нравится
Реакции: Ayk

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
346
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
5к строк, но не пойму что с этим делать
Там же строки выделены которые тебе нужны.
13 Мар 2020
Код:
void CHalfLifeMultiplay::UpdateTeamScores()
{
    MESSAGE_BEGIN(MSG_ALL, gmsgTeamScore);
        WRITE_STRING("CT");
        WRITE_SHORT(m_iNumCTWins);
    MESSAGE_END();

    MESSAGE_BEGIN(MSG_ALL, gmsgTeamScore);
        WRITE_STRING("TERRORIST");
        WRITE_SHORT(m_iNumTerroristWins);
    MESSAGE_END();
}
 
  • Нравится
Реакции: Ayk
Сообщения
579
Реакции
338
Предупреждения
1
Помог
9 раз(а)
Код:
get_member_game(m_iNumCTWins/m_iNumTerroristWins)
set_member_game(m_iNumCTWins/m_iNumTerroristWins, VALUE)
 
Последнее редактирование:
Сообщения
58
Реакции
2
Помог
2 раз(а)
Странное советуете, он же написал не понимает синтаксис этого языка

Вот пример
Код:
message_begin( MSG_BROADCAST, get_user_msgid( "TeamScore" ) )
write_string( "TERRORIST" )
write_short( 5 ) // счет для теров = 5
message_end( )

message_begin( MSG_BROADCAST, get_user_msgid( "TeamScore" ) )
write_string( "CT" )
write_short( 9 ) // счет для контров = 9
message_end( )
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
pro100iweb, А не лучше поменять мемберы при старте, и больше не парится? Пусть регейм себе сам считает победы и отправляет TeamScore.
 
  • Нравится
Реакции: Ayk
Сообщения
58
Реакции
2
Помог
2 раз(а)
fantom, на rehlds не так давно, вот и подобное пишу с помощью message_begin конструкций, хотя это не лучшее решение, так как, если где то ошибиться, то кирдык
13 Мар 2020
Видимо я отстаю от вас, всё ещё по старинке, времени нет, что бы догнать вас
 
Сообщения
112
Реакции
26
MIRDOBRO777, нужно менять мемберы которые я выделил, либо хука ть мессагу, которую скинул Denzer.
я уже в данной теме писал, что незрячий. Так что простите, что переспрашиваю. Я не могу видеть выделения. С кодом работаю исключительно через экранный диктор на слух.
Поэтому многое мне не понятно.
Спасибо, что активно откликаетесь (я про всех, кто помогает)!
Но что из всего написанного лучше использовать?
И, если не сложно, с примером функций.
Это мне подсказывают о изменении счета, а можно изменить названия команд?
 

Garey

ninjaCow
Сообщения
411
Реакции
1,051
Помог
10 раз(а)
MIRDOBRO777 Если вам нужно индивидуально каждому игроку менять счёт то надо использовать register_message где вы можете отловить сообщение TeamScore и соответственно поменять счёт на нужный отдельному игроку, Если же вам глобально нужно поменять счет команд и вы используете reapi то используйте set_member_game с аргументом m_iNumCTWins или m_iNumTerroristWins.
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
MIRDOBRO777, не видел сообщения. Приношу извинения. Если кратко то Garey, все верно расписал.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу