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

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

  • Страница 1 из 1
  • 1
Проверьте плагин
Vitaminoz Дата: Понедельник, 25.06.2012, 11:17:13 | Сообщение # 1
Сообщений: 141
Репутация: 1 [ +/- ]
Всем привет написал еще 1 свой мини плагин )
Code
#include <sourcemod>
public Plugin:myinfo =  
{
  name = "Test",
  author = "Vitamin",
  description = "<- Description ->",
  version = "1.0",
  url = "<- URL ->"
}

public OnPluginStart()
{
  RegConsoleCmd("sm_health",Test_Function);
}

public Action:Test_Function(client,args)
{
  if(IsPlayerAlive(client))
  {
  PrintToChat(client, "You give'n 200 hp");
  SetEntityHealth(client, 200);
  {
}

Вопрос может бы есть какие то замечания к коду или его как то можно оптимизировать или что-то ёще
 
_wS_ Дата: Понедельник, 25.06.2012, 11:22:22 | Сообщение # 2
О некоторых ошибках тебе бы сказал и сам компилятор. Ниже SetEntityHealth нужно было закрытую скобку ставить, а ты поставил открытую. И в этом случае, перед проверкой IsPlayerAlive, нужно проверить игрок ли это вообще (может команда вписана в консоль сервера и client == 0), и функция должна возвращать (return) значение:

Code
public Action:Test_Function(client, args)
{
     if (client > 0 && IsPlayerAlive(client))
     {
         PrintToChat(client, "You give'n 200 hp");
         SetEntityHealth(client, 200);
     }
     return Plugin_Handled;
}

Еще можно проверить args. Т.е. сейчас игрок может вводить и "sm_health ав ав вп" и "sm_health хочу hp" и команда сработает. Если хочешь чтобы можно было писать только sm_health, то надо добавить проверку if (args < 1)
 
Vitaminoz Дата: Понедельник, 25.06.2012, 11:36:23 | Сообщение # 3
Сообщений: 141
Репутация: 1 [ +/- ]
Ок спасибо за все щас все в своей голове это попытаюсь уместить )

Добавлено (25.06.2012, 11:36:23)
---------------------------------------------
if (args < 1)
{
return Plugin_Continue;
}
?

 
_wS_ Дата: Понедельник, 25.06.2012, 11:39:05 | Сообщение # 4
Нет, в этом случае нужно всегда делать return Plugin_Handled;
Иначе выдаст сообщение "unknown command".

Code
public Action:Test_Function(client, args)  
{  
     if (client > 0 && args < 1 && IsPlayerAlive(client))
     {
         PrintToChat(client, "You give'n 200 hp");
         SetEntityHealth(client, 200);
     }
     return Plugin_Handled;
}
 
Vitaminoz Дата: Понедельник, 25.06.2012, 11:42:12 | Сообщение # 5
Сообщений: 141
Репутация: 1 [ +/- ]
Эх мне ёще учиться и учиться =(
 
  • Страница 1 из 1
  • 1
Поиск: