AMX MOD X
Суббота, 03.01.2026, 08:26:24



Приветствую Вас Гость | RSS
[ Главная ] [ Бессмертие в последнем раунде - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Бессмертие в последнем раунде
AmXДата: Вторник, 11.11.2008, 09:46:03 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Не в сети
плз помогите решить проблемку....
решил сделать из плагина lastround2 свой плагин, в котором в последнем раунде все игроки становятся бессмертными, но тем методом как я это делаю, ничего не происходит =( я в скриптинге не профи, так что прошу сильна не ругаться ^_^
вот код:
Code
#include <amxmodx>
#include <fakemeta>
#include <cstrike>

#pragma semicolon           1
#define HIT_SHIELD 8
      
new g_scTitle[]   = "Last Round God";
new g_scVersion[] = "2.0";
new g_scAuthor[]  = "many";

new g_iMaxPlayers;
//Перепенная с разрешением/запретом бессмертия
new bool:god_mode = false;
      
new bool:g_lastround = false;
new bool:g_changemap = false;
new Float:g_timelimit = 0.0;
new Float:g_maxspeed;

#define INITIATE_LAST_ROUND_TASK 545454
#define CHANGE_MAP_TASK 545455
#define DISABLE_PLAYERS_TASK 545456

//Тут выполняется сама проверка значения переменной
public onTraceLinePost(Float:v1[3], Float:v2[3], fNoMonsters, pentToSkip, ptr)
{
  //engfunc(EngFunc_TraceLine, v1, v2, fNoMonsters, pentToSkip, ptr)

  static iHitEnt; iHitEnt = get_tr2(ptr, TR_pHit);

  if(1 <= iHitEnt <= g_iMaxPlayers)
  {
   static iArmor;
   static CsArmorType:tArmor;

   iArmor = cs_get_user_armor(iHitEnt, tArmor);

   if(iArmor >= 0 && tArmor == CS_ARMOR_VESTHELM)
   {
       if (god_mode == true)
       {
     iHitEnt = HIT_SHIELD;
    } else
    {
        iHitEnt = HIT_HEAD;
    }
    set_tr2(ptr, TR_iHitgroup, iHitEnt);
   }
  }

  //return FMRES_SUPERCEDE
}

//Тут задается значение переменной
public evRoundStart() {
  if (!get_cvar_num("lastround")) return PLUGIN_CONTINUE;

  // Wanted this in init but never got a value  
  if (g_timelimit == 0.0)
   g_timelimit = get_cvar_float("mp_timelimit");

  if (g_lastround) {
          set_cvar_float("mp_timelimit", 0.0);
       
   new text[256];
   format(text, 255, "This is the final round!");
   doTypesay(text, 5, 255, 255, 255);
   //ставим полож.знач.
   god_mode = true;

   g_changemap = true;
   g_lastround = false;
  } else if (g_changemap) {
   new nextmap[32];
          get_cvar_string("amx_nextmap", nextmap, 31);
   
   new text[256];
   format(text, 255, "Thank you for playing. Now switching to %s!", nextmap);
   doTypesay(text, 5, 255, 255, 255);
   //ставим отр.знач.
   god_mode = false;

   g_maxspeed = get_cvar_float("sv_maxspeed");
   set_cvar_float("sv_maxspeed", 0.0);

                 set_task(0.1, "disablePlayers", DISABLE_PLAYERS_TASK, "", 0, "a", 4);
                 set_task(6.0, "changeMap", CHANGE_MAP_TASK);
  }

         return PLUGIN_CONTINUE;
}

public initiateLastRound() {
  if (!get_cvar_num("lastround")) return PLUGIN_CONTINUE;

  remove_task(INITIATE_LAST_ROUND_TASK);

  new text[256];
  format(text, 255, "The final round is coming up");
         doTypesay(text, 5, 255, 255, 255);

  set_cvar_float("mp_timelimit", 0.0);

  g_lastround = true;

  return PLUGIN_CONTINUE;
}

public disablePlayers() {
         new players[32], num;
         get_players(players, num, "c");
         for(new i=0;i<num; i++) {
   client_cmd(players[i],"hud_fastswitch 1");
   client_cmd(players[i],"slot1");
   client_cmd(players[i],"drop");
   client_cmd(players[i],"slot2");
   client_cmd(players[i],"drop");
   client_cmd(players[i],"slot5");
   client_cmd(players[i],"drop");
}

  register_clcmd("galil", "cmdBlock");
  register_clcmd("defender", "cmdBlock");
  register_clcmd("ak47", "cmdBlock");
  register_clcmd("cv47", "cmdBlock");
  register_clcmd("scout", "cmdBlock");
  register_clcmd("sg552", "cmdBlock");
  register_clcmd("krieg552", "cmdBlock");
  register_clcmd("awp", "cmdBlock");
  register_clcmd("magnum", "cmdBlock");
  register_clcmd("g3sg1", "cmdBlock");
  register_clcmd("d3au1", "cmdBlock");
  register_clcmd("famas", "cmdBlock");
  register_clcmd("clarion", "cmdBlock");
  register_clcmd("m4a1", "cmdBlock");
  register_clcmd("aug", "cmdBlock");
  register_clcmd("bullpup", "cmdBlock");
  register_clcmd("sg550", "cmdBlock");
  register_clcmd("krieg550", "cmdBlock");
  register_clcmd("glock", "cmdBlock");
  register_clcmd("9x19mm", "cmdBlock");
  register_clcmd("usp", "cmdBlock");
  register_clcmd("km45", "cmdBlock");
  register_clcmd("p228", "cmdBlock");
  register_clcmd("228compact", "cmdBlock");
  register_clcmd("deagle", "cmdBlock");
  register_clcmd("nighthawk", "cmdBlock");
  register_clcmd("elites", "cmdBlock");
  register_clcmd("fn57", "cmdBlock");
  register_clcmd("fiveseven", "cmdBlock");
  register_clcmd("m3", "cmdBlock");
  register_clcmd("12gauge", "cmdBlock");
  register_clcmd("xm1014", "cmdBlock");
  register_clcmd("autoshotgun", "cmdBlock");
  register_clcmd("mac10", "cmdBlock");
  register_clcmd("tmp", "cmdBlock");
  register_clcmd("mp", "cmdBlock");
  register_clcmd("mp5", "cmdBlock");
  register_clcmd("smg", "cmdBlock");
  register_clcmd("ump45", "cmdBlock");
  register_clcmd("p90", "cmdBlock");
  register_clcmd("c90", "cmdBlock");
  register_clcmd("m249", "cmdBlock");
  register_clcmd("primammo", "cmdBlock");
  register_clcmd("secammo", "cmdBlock");
  register_clcmd("vest", "cmdBlock");
  register_clcmd("vesthelm", "cmdBlock");
  register_clcmd("flash", "cmdBlock");
  register_clcmd("hegren", "cmdBlock");
  register_clcmd("sgren", "cmdBlock");
  register_clcmd("nvgs", "cmdBlock");
  register_clcmd("defuser", "cmdBlock");
  register_clcmd("shield", "cmdBlock");
  register_clcmd("buyammo1", "cmdBlock");
  register_clcmd("buyammo2", "cmdBlock");
  register_clcmd("impulse 201", "cmdBlock");
  register_clcmd("jointeam 1", "cmdBlock");
  register_clcmd("chooseteam", "cmdBlock");
  register_clcmd("buy", "cmdBlock");
  register_clcmd("buyammo1", "cmdBlock");
  register_clcmd("buyammo2", "cmdBlock");
  register_clcmd("buyequip", "cmdBlock");
  register_clcmd("cl_autobuy", "cmdBlock");
  register_clcmd("cl_rebuy", "cmdBlock");
  register_clcmd("cl_setautobuy", "cmdBlock");
  register_clcmd("cl_setrebuy", "cmdBlock");
  register_clcmd("fullupdate", "cmdBlock");
  register_clcmd("radio1", "cmdBlock");
  register_clcmd("radio2", "cmdBlock");
  register_clcmd("radio3", "cmdBlock");
  register_clcmd("coverme", "cmdBlock");
  register_clcmd("takepoint", "cmdBlock");
  register_clcmd("holdpos", "cmdBlock");
  register_clcmd("regroup", "cmdBlock");
  register_clcmd("followme", "cmdBlock");
  register_clcmd("takingfire", "cmdBlock");
  register_clcmd("go", "cmdBlock");
  register_clcmd("fallback", "cmdBlock");
  register_clcmd("sticktog", "cmdBlock");
  register_clcmd("getinpos", "cmdBlock");
  register_clcmd("stormfront", "cmdBlock");
  register_clcmd("report", "cmdBlock");
  register_clcmd("roger", "cmdBlock");
  register_clcmd("enemyspot", "cmdBlock");
  register_clcmd("needbackup", "cmdBlock");
  register_clcmd("sectorclear", "cmdBlock");
  register_clcmd("inposition", "cmdBlock");
  register_clcmd("reportingin", "cmdBlock");
  register_clcmd("getout", "cmdBlock");
  register_clcmd("negative", "cmdBlock");
  register_clcmd("enemydown", "cmdBlock");
}

public changeMap() {
  remove_task(CHANGE_MAP_TASK);

         new nextmap[32];
         get_cvar_string("amx_nextmap", nextmap, 31);
         server_cmd("changelevel %s", nextmap);
}

doTypesay(string[], duration, r, g, b) {
         set_hudmessage(r, g, b, 0.05, 0.45, 0, 6.0, float(duration) , 0.5, 0.15, 4);
         show_hudmessage(0, string);
}
       
public plugin_init() {
  register_plugin(g_scTitle, g_scVersion, g_scAuthor);

  register_cvar("lastround", "1");
  register_logevent("evRoundStart", 2, "0=World triggered", "1=Round_Start");
  register_forward(FM_TraceLine, "onTraceLinePost", 1);

  // Chose 90 seconds not to clash with other events
  set_task(90.0, "initiateLastRound", INITIATE_LAST_ROUND_TASK, "", 0, "d");

  return PLUGIN_CONTINUE;
}

public cmdBlock(id)
{
  if (g_changemap)
   return PLUGIN_HANDLED;

  return PLUGIN_CONTINUE;
}

public plugin_end() {
  set_cvar_float("mp_timelimit", g_timelimit);
  set_cvar_float("sv_maxspeed", g_maxspeed);

  remove_task(DISABLE_PLAYERS_TASK);

  return PLUGIN_CONTINUE;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/

буду благодарен если кто поможет ^_^
 
draftДата: Вторник, 11.11.2008, 12:47:50 | Сообщение # 2
Полковник
Группа: Пользователи
Сообщений: 225
Репутация: 3
Статус: Не в сети
...
format(text, 255, "Thank you for playing. Now switching to %s!", nextmap);
for(new i = 1; i <= get_maxplayers(); i++)
set_pev(i, pev_takedamage, DAMAGE_NO)
...


Сообщение отредактировал draft - Вторник, 11.11.2008, 12:47:58
 
AmXДата: Среда, 12.11.2008, 09:53:44 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Не в сети
Спс =) всё работает ;)
Готовый плагин в аттаче ^_^
Прикрепления: lastround_god.amxx (9.1 Kb)
 
HatebreederДата: Среда, 12.11.2008, 18:22:42 | Сообщение # 4
Подполковник
Группа: Пользователи
Сообщений: 120
Репутация: 0
Статус: Не в сети
А зачем тебе это? :)
 
AmXДата: Четверг, 13.11.2008, 09:09:23 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Не в сети
Так просто попрактиковаться ;)
Да и ТК тоже не дремлют в последнем lol
 
HatebreederДата: Четверг, 13.11.2008, 20:01:42 | Сообщение # 6
Подполковник
Группа: Пользователи
Сообщений: 120
Репутация: 0
Статус: Не в сети
так ты сделай за 10 секунд до конца раунда. или бессмертие только на ТК, тобишь mp_friendlyfire 0... а полное бессмертие, хз... не лучше ли сделать, что в последнем раунде можно убить только в голову например или урон значительно ниже.. но бессмертие, гон, имхо
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026