Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Бомба
nynCuKaH Дата: Вторник, 15.05.2012, 16:43:27 | Сообщение # 1
Сообщений: 110
Репутация: 0 [ +/- ]
Помогите. Я не могу сделать так, чтобы нельзя было ставить бомбу на карте. Я сделал свой код, с помощью блокировки оружия. А можно ли как то по другому ( если можно пример еще :) )
 
Scarface_slv Дата: Вторник, 15.05.2012, 17:45:30 | Сообщение # 2
Сообщений: 737
Репутация: 61 [ +/- ]
Code

#include <sourcemod>
#include <sdktools_functions>
#include <cstrike>

public OnPluginStart()
{
  HookEvent( "bomb_beginplant", bomb_planted);
}

public bomb_planted(Handle:event, const String:name[], bool:dontBroadcast)
{
  new client = GetClientOfUserId(GetEventInt(event, "userid"));
  new index = GetPlayerWeaponSlot(client, 4);
  if (index > 0)
  {
   decl String:class[20];
   GetEntityClassname(index, class, 20);
   CS_DropWeapon(client, index, true);  
   PrintToChat(client, "Бомбу ставить нельзя");

  }
}

Можно по разному запретить ставить это один из вариантов...
 
nynCuKaH Дата: Вторник, 15.05.2012, 19:53:06 | Сообщение # 3
Сообщений: 110
Репутация: 0 [ +/- ]
Я кину свой код. Скажите правильно?

Code
#include <sourcemod>

#define VERSION "1.0"

new Handle:g_bEnabled;
new Handle:g_hBombPlace;

public Plugin:myinfo = {
   name = "nBombPlace",
   author = "nynCuKaH",
   description = "Bomb place A-B",
   version = VERSION,
   url = ""
};

public OnPluginStart()
{
      //Cvars
   g_hBombPlace = CreateConVar("nbomb_bombplace", "1", "Включить/выключить плагин 1 - off , 2 - on");
}
     
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
   if (g_bEnabled)
   {
    if (buttons & IN_ATTACK)
    {
     if (GetConVarInt(g_hBombPlace) == 0)
      buttons &= ~IN_ATTACK;
     else if (GetConVarInt(g_hBombPlace) == 1)
     {
      new String:classname[64];
      GetClientWeapon(client, classname, sizeof(classname));
      if (StrEqual(classname, "weapon_c4"))
       buttons &= ~IN_ATTACK;
     }
    }
   }
   return Plugin_Continue;
}


Добавлено (15.05.2012, 19:36:04)
---------------------------------------------
То что я кинул думаю правильно. :) Так как у тебя выкидывает бомбу. А у меня просто не ставит.

Добавлено (15.05.2012, 19:53:06)
---------------------------------------------
Оба примера работают :) Только мой еще нужно было дописать и HookEvent поставить. Спс за пример.
 
_wS_ Дата: Вторник, 15.05.2012, 20:00:23 | Сообщение # 4
Quote (nynCuKaH)
То что я кинул думаю правильно

Одно из лучших решений, это удалить/заставить выбросить бомбу в событии bomb_beginplant. Впиши в OnPlayerRunCmd PrintToChat или PrintToServer и подумай, надо это серверу или нет, эти бессмысленные вечные циклы и команды в них, в которых нет необходимости в этом случае (тупо лишний груз). Потом вопросы, почему сервер лагает и падает.
 
nynCuKaH Дата: Вторник, 15.05.2012, 20:04:29 | Сообщение # 5
Сообщений: 110
Репутация: 0 [ +/- ]
_wS_, ой не злись :)
 
  • Страница 1 из 1
  • 1
Поиск: