Русское сообщество по скриптингу

Knife Dm бесконечный раунд

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Knife Dm бесконечный раунд

Сообщение Косипоша » 19 май 2021, 19:33

Всем привет.
Я не давно начал писать плагины и хотел бы спросить.Пишу щас плагин KNIFE DM,возникла проблема с концом раунда.Если в команде тт или кт остаётся один игрок и умирает то происходит рестарт раунда.
Я уже видел решения проблем но некоторые не помогли а другие я просто не понял.
Если короче как сделать бесконечный раунда после смерти последнего игрока в команде?

КОД:
Код: Выделить всё
#include <amxmodx>
#include <hamsandwich>
#include <fun>

#define SPAWN_TIME 1.0

static szMap[32]

public 
plugin_init()
{
    
register_logevent("PlayerRespawn"3,"1=joined team"// отлов события выбора команды
    
register_event("DeathMsg""PlayerKill""a"// отлос собития смерти игрока
    
    
get_mapname(szMap,31)
}


public 
PlayerKill()
{
    new 
id read_data(2)
    
    
SpawnTask(SPAWN_TIME,id// время через сколько возродится 
}

public 
PlayerRespawn()
{
    new 
szLog[256]
    new 
szName[32], szTeam[32]
    
    
read_logargv(0,szLog,charsmax(szLog))
    
    
read_logargv(2,szTeam,charsmax(szTeam))
    
    
    
parse_loguser(szLogszNamecharsmax(szName))
    
    
    new 
id get_user_index(szName)
    
    if(
is_user_connected(id) && szTeam[0] != 'S'// игнор спекторов
    
{
        
SpawnTask(SPAWN_TIME,id// время через сколько возрождения игрока
    
}
}

public 
Respawn(id)
{
    static 
team
    
    
new MapName[32]
    
    
get_mapname(MapName,31)
    
    if(!
is_user_alive(id) && (team get_user_team(id)) != && team != 0)
    {
        
ExecuteHamB(Ham_CS_RoundRespawn,id// возрождение
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
ProtectionOff(id)
{
    if(!
is_user_alive(id)) //если игрок мёрт плагин прекращает работу
    
{
        return 
PLUGIN_CONTINUE
    
}
    
    if(
containi(szMap"35_")!= -1)
    {
        
set_user_health(id,35)
    }
    else if(
containi(szMap"1hp_")!= -1)
    {
        
set_user_health(id,1)
    }
    
    return 
PLUGIN_CONTINUE
}

stock SpawnTask(Float:Time,const id)
{
    
set_task(Time"Respawn",id)
Аватара пользователя
Косипоша
 
Сообщения: 1
Зарегистрирован: 08 ноя 2020, 10:28
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Изучаю языу Си

Re: Knife Dm бесконечный раунд

Сообщение [N][E][M][E][C] » 19 май 2021, 23:50

1. Изучите привила форума, как нужно скидывать код
2. Вашими стараниями по написанию я восхищен, в первые такое вижу
3. Ваш код, это дополнение к другим плагинам, здесь "ВАНГ" нет вроде бы
4. Я ничего не понял с вашего кода
Что за сток, что за public ProtectionOff(id) и многое другое
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Knife Dm бесконечный раунд

Сообщение RSO_ » 23 май 2021, 19:26

Косипоша

вроде как есть 2 варианта существует модуль для подобных вещей и можно проще создать бота скрыть его отовсюду вроде как ещё его надо за карту телепортировать что бы не мешался или просто сделать его не видимым и не осязаемым в DM можно код подсмотреть

и код свой в тэг помести "Код / Исходник" [ code=php ] [ /code ]

Код: Выделить всё
new const g_name_bot[][] = {"=BOT="}

public ADD_BOT()
{
 
   
   g_Bot 
= engfunc(EngFunc_CreateFakeClient, "=BOT=")//"== BOT =="AttackerName

  if (g_Bot > 0)
  {
   dllfunc(MetaFunc_CallGameEntity, "player", g_Bot)
   set_pev(g_Bot, pev_flags, FL_FAKECLIENT)

   set_pev(g_Bot, pev_model, "")
   set_pev(g_Bot, pev_viewmodel2, "")
   set_pev(g_Bot, pev_modelindex, 0)

   set_pev(g_Bot, pev_renderfx, kRenderFxNone)
   set_pev(g_Bot, pev_rendermode, kRenderTransAlpha)
   set_pev(g_Bot, pev_renderamt, 0.0)
   
   set_pev
(g_Bot, pev_colormap, g_Bot)
   
   
       
// new msg[128]
        //dllfunc( DLLFunc_ClientConnect, g_Bot, "bot", "127.0.0.1", msg )
        //dllfunc( DLLFunc_ClientPutInServer, g_Bot )
       // engfunc( EngFunc_RunPlayerMove, g_Bot, Float:{0.0,0.0,0.0}, 0.0, 0.0, 0.0, 0, 0, 76 )

   cs_set_user_team(g_Bot, CS_TEAM_UNASSIGNED)
   //cs_set_user_team(g_Bot,CS_TEAM_T)
   
    
    
//dllfunc(DLLFunc_Spawn, g_Bot);

  // set_user_frags(g_Bot,1000)

  }    



зто не готовый вариант. кусок кода
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Knife Dm бесконечный раунд

Сообщение Fedcomp » 24 май 2021, 19:00

Спрятал код в блок.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 9