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

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

  • Страница 1 из 2
  • 1
  • 2
  • »
префикс
nynCuKaH Дата: Суббота, 21.04.2012, 17:11:19 | Сообщение # 1
Сообщений: 110
Репутация: 0 [ +/- ]
Здравствуйте.
Пишу плагин который будет показывать префикс админа. ТО есть написал в чате и сзади ника писало
допустим: [Админ]nynCuKaH ну вы поняли.
Код
Code
#include <sourcemod>
#include <sdktools>
#include <cstrike>

public OnPluginStart()
{
  RegConsoleCmd("say", say);
  RegConsoleCmd("say_team", say);
}

public Action:say(client, args)
{
  if(GetUserAdmin(client) != INVALID_ADMIN_ID)
  {
   decl String:text[255];
   GetCmdArgString(text, sizeof(text));
   StripQuotes(text);
    
   if(StrContains(text,false) != -1)
   {

    {
     ReplaceString(text, sizeof(text),false);
     PrintToChatAll("\x04[Админ] \x01%s", text);
      
     //top left
     decl String:message[255];
     Format(message, sizeof(message), text);
     new Handle:kv = CreateKeyValues("Stuff", "title", message);
     KvSetColor(kv, "color", 255, 0, 0, 255);
     KvSetNum(kv, "level", 200);
     KvSetNum(kv, "time", 10);
      
     for(new i = 1; i <= MaxClients; i++)
     {
      CreateDialog(i, kv, DialogType_Msg);
     }
      
     CloseHandle(kv);
     return Plugin_Handled
    }
   }
  }
  return Plugin_Continue
}


В чем моя ошибка? Пишешь текст любой а префикса нету
 
Scarface_slv Дата: Воскресенье, 22.04.2012, 23:20:36 | Сообщение # 2
Сообщений: 737
Репутация: 61 [ +/- ]
если доделаешь скинь)
 
nynCuKaH Дата: Понедельник, 23.04.2012, 17:11:50 | Сообщение # 3
Сообщений: 110
Репутация: 0 [ +/- ]
Помощь wS нужна.

Добавлено (23.04.2012, 17:11:50)
---------------------------------------------
Я сделал так что бы префикс был а ник и текста нет. Как эту ошибку исправить я не знаю.

 
Scarface_slv Дата: Понедельник, 23.04.2012, 17:43:57 | Сообщение # 4
Сообщений: 737
Репутация: 61 [ +/- ]
просто то что ты скинул даже не компил у меня поэтому хз
 
nynCuKaH Дата: Понедельник, 23.04.2012, 19:42:52 | Сообщение # 5
Сообщений: 110
Репутация: 0 [ +/- ]
То что я скинул компильнуть. Просто я убрал пару кодов что бы не стырили мой код :) всякие там...
Нужен код на префикс пиши в личку. Но мне все так же нужна помощь :(
 
_wS_ Дата: Понедельник, 23.04.2012, 20:37:28 | Сообщение # 6
Глупые ошибки.. А все потому, что используешь чужой код и сам не пишешь.
На синтаксис StrContains и ReplaceString в API посмотри, и примеров есть немало с этими командами.

Code
public Action:say(client, args)
{
     if (args > 0 и это админ)
     {
         decl String:text[255];
         GetCmdArgString(text, 255);
         StripQuotes(text);
         Format(text, 255, "[ prefix ] %N: %s", client, text);
         PrintToChatAll(text);
         return Plugin_Handled;
     }
     return Plugin_Continue;
}
 
Scarface_slv Дата: Вторник, 24.04.2012, 11:02:17 | Сообщение # 7
Сообщений: 737
Репутация: 61 [ +/- ]
уау спасибо те большое WS

Добавлено (24.04.2012, 10:45:31)
---------------------------------------------
у меня появились два вопроса по поводу кода который ты написал:
1.как проверить в спекторах или нет просто нужен префикс *SPEC* дописать.(у меня не получается)
2.как сделать чтобы при say_team писало только своей команде просто нужен префикс *TEAM*(наверно через for пойду пробывать)

Добавлено (24.04.2012, 11:02:17)
---------------------------------------------
по поводу 1 понял = ) осталось тока Командный чат(

 
nynCuKaH Дата: Вторник, 24.04.2012, 12:49:45 | Сообщение # 8
Сообщений: 110
Репутация: 0 [ +/- ]
_wS_ а ты уверен что я использовал чужой код? Я сам писал... -_-
 
_wS_ Дата: Вторник, 24.04.2012, 12:58:14 | Сообщение # 9
Code
public Action:say(client, args)
{
     if (client > 0 && args > 0)
     {
         decl String:text[255];
         GetCmdArgString(text, 255);
         StripQuotes(text);
         new team = GetClientTeam(client);
         if (team > 1)
         {
             decl String:cmd[10];
             GetCmdArg(0, cmd, 10);
             if (StrEqual(cmd, "say_team", false))
             {
                 if (team == 2) Format(text, 255, "[ *T* ] %N: %s", client, text);
                 else Format(text, 255, "[ *CT* ] %N: %s", client, text);
                 for (new i = 1; i <= MaxClients; i++)
                 {
                     if (IsClientInGame(i) && GetClientTeam(i) == team) PrintToChat(i, text);
                 }
                 return Plugin_Handled;
             }
             else
             {
                 // say
             }
         }
         else
         {
             Format(text, 255, "[ *SPEC* ] %N: %s", client, text);
             PrintToChatAll(text);
             return Plugin_Handled;
         }
     }
     return Plugin_Continue;
}


Еще надо проверку делать if (client > 0), потому что если использовать RCON команду say, это тоже вызовет функцию 'public Action:say' и client будет равен 0.
 
nynCuKaH Дата: Вторник, 24.04.2012, 13:34:32 | Сообщение # 10
Сообщений: 110
Репутация: 0 [ +/- ]
Проблема:

Все могут писать от моего лица. А от своего нет. Оо

Добавлено (24.04.2012, 13:34:32)
---------------------------------------------
Разобрался. -_-

 
Scarface_slv Дата: Вторник, 24.04.2012, 22:30:58 | Сообщение # 11
Сообщений: 737
Репутация: 61 [ +/- ]
Спасибо=), у меня немного по другому но все получилось спустя 5 часов мучения)

Добавлено (24.04.2012, 22:30:32)
---------------------------------------------
не получаеться создать синий за кт и красный за кт ник
сервак вылетает

Code

...
  new Handle:h = StartMessageAll("SayText2");
  if (GetClientTeam(client) < 2)
  {
     if (h != INVALID_HANDLE)
      {  
             Format(text, 255, "\x01*SPEC* \x04|ADMIN| \x03%N \x01:  %s", client, text);
             BfWriteByte(h, client);
             BfWriteByte(h, true);
             BfWriteString(h, text);
             EndMessage();
       }
}
else
...

Добавлено (24.04.2012, 22:30:58)
---------------------------------------------
ой и красный за Т

 
_wS_ Дата: Вторник, 24.04.2012, 23:23:32 | Сообщение # 12
Не знаю, у меня это работает, ищи ошибку в другом. И sm обновил? Последняя версия 1.4.2
 
nynCuKaH Дата: Среда, 25.04.2012, 10:54:59 | Сообщение # 13
Сообщений: 110
Репутация: 0 [ +/- ]
Scarface_slv, а что ты хочешь сделать? По подробнее.

Добавлено (25.04.2012, 10:54:59)
---------------------------------------------
Понял твою проблему. Попробую помочь

 
Scarface_slv Дата: Среда, 25.04.2012, 15:38:35 | Сообщение # 14
Сообщений: 737
Репутация: 61 [ +/- ]
я идиот) почему то вылетал потому что нельзя было использовать PrintToChat в одном блоке с BfWriteByte...
 
_wS_ Дата: Среда, 25.04.2012, 15:49:08 | Сообщение # 15
Да, точно, нельзя делать PrintTo.. между StartMessage.. и EndMessage.
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: