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

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

  • Страница 1 из 1
  • 1
Ошибка,.
Sunday Дата: Вторник, 13.11.2012, 00:51:39 | Сообщение # 1
Сообщений: 186
Репутация: 24 [ +/- ]
Ребят, подскажите, что не правильно в скрипте, из за которого в лог выписываются такие ошибки?

лог:
Code

L 11/12/2012 - 14:13:20: SourceMod error session started
L 11/12/2012 - 14:13:20: Info (map "dm_killgardens_v3") (file "errors_20121112.log")
L 11/12/2012 - 14:13:20: [SM] Native "StartMessage" reported: Client 6 is not connected
L 11/12/2012 - 14:13:20: [SM] Displaying call stack trace for plugin " textrp.smx":
L 11/12/2012 - 14:13:20: [SM]   [0]  Line 108, textrp.sp::timer_strip()
L 11/12/2012 - 14:33:07: Error log file session closed.


Скрипт:
Code

#include <sourcemod>
#pragma semicolon 1

#define MAXTEXTCOLORS 100

new CountColors = 0;
new String:TextColors[MAXTEXTCOLORS][256];

public OnPluginStart()
{
    HookUserMessage(GetUserMessageId("TextMsg"), TextMsg, true);
}

public OnConfigsExecuted()
{
    RefreshConfig();
}

stock RefreshConfig()
{
    for (new X = 0; X < MAXTEXTCOLORS; X++)
    {
     TextColors[X] = "";
    }
    decl String:sPaths[PLATFORM_MAX_PATH];
    BuildPath(Path_SM, sPaths, sizeof(sPaths),"configs/textrp.cfg");
    new Handle:hFile = OpenFile(sPaths, "r");
    new String:sBuffer[256];    
    CountColors = -1;
    while (ReadFileLine(hFile, sBuffer, sizeof(sBuffer)))
    {
     TrimString(sBuffer);
     if(!StrEqual(sBuffer,"",false))
     {
      ReplaceString(sBuffer, sizeof(sBuffer), "*", "\x08");
      ReplaceString(sBuffer, sizeof(sBuffer), "&", "\x07");
      CountColors++;
      Format(TextColors[CountColors], sizeof(TextColors), "%s", sBuffer);
      PrintToChatAll("\x01%s", sBuffer);
     }
    }
    CloseHandle(hFile);
}

public Action:TextMsg(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init)
{
    if(CountColors != -1)
    {
     if(reliable)
     {
      new String:buffer[256];
      new Handle:pack;
      BfReadString(bf, buffer, sizeof(buffer));
      if(StrContains(buffer, "\x03[SM]") == 0)
      {
       CreateDataTimer(0.0, timer_strip, pack);
       WritePackCell(pack, playersNum);
       for(new i = 0; i < playersNum; i++)
       {
        WritePackCell(pack, players[i]);
       }
       WritePackString(pack, buffer);
       ResetPack(pack);
       return Plugin_Handled;
      }
     }
    }
    return Plugin_Continue;
}

public Action:timer_strip(Handle:timer, Handle:pack)
{
    new playersNum = ReadPackCell(pack);
    new players[playersNum];
    for(new i = 0; i < playersNum; i++)
    {
     players[i] = ReadPackCell(pack);
    }
    new String:buffer[255];
    ReadPackString(pack, buffer, sizeof(buffer));
    new String:QuickFormat[255];
    new ColorChoose = 0;
    Format(QuickFormat, sizeof(QuickFormat), "%s", TextColors[ColorChoose]);
    ReplaceStringEx(buffer, sizeof(buffer), "[SM]", QuickFormat);
    new Handle:bf = StartMessage("SayText2", players, playersNum, USERMSG_RELIABLE|USERMSG_BLOCKHOOKS);
    BfWriteByte(bf, -1);
    BfWriteByte(bf, true);
    BfWriteString(bf, buffer);
    EndMessage();
}

Гости не могут скачивать файлы


Сообщение отредактировал Sunday - Вторник, 13.11.2012, 16:53:38
 
Scarface_slv Дата: Вторник, 13.11.2012, 13:22:34 | Сообщение # 2
Сообщений: 737
Репутация: 61 [ +/- ]
написано что клиента нет на сервере в StartMessage
[SM] Native "StartMessage" reported: Client 6 is not connected
 
Sunday Дата: Вторник, 13.11.2012, 16:50:22 | Сообщение # 3
Сообщений: 186
Репутация: 24 [ +/- ]
да, я английский читабельно знаю... вопрос был в другом. Как решить эту проблему?


Сообщение отредактировал Sunday - Вторник, 13.11.2012, 16:53:02
 
Scarface_slv Дата: Вторник, 13.11.2012, 18:04:54 | Сообщение # 4
Сообщений: 737
Репутация: 61 [ +/- ]
ну сделай проверку, есть ли этот индекс на сервере или нет
if(IsClientInGame(client)) .....


Сообщение отредактировал Scarface_slv - Вторник, 13.11.2012, 18:08:08
 
Sunday Дата: Вторник, 13.11.2012, 23:26:59 | Сообщение # 5
Сообщений: 186
Репутация: 24 [ +/- ]
не, так не получиться,, потому что скрипт то должен выводить всем, логики не будет, на клиента...
 
Scarface_slv Дата: Среда, 14.11.2012, 01:47:20 | Сообщение # 6
Сообщений: 737
Репутация: 61 [ +/- ]
=) не понимаю этот плагин, че он делает? заменяет [SM] и [UMC] на че то другое?
И все равно помоему над сделать проверку тут:
Code

for(new i = 0; i < playersNum; i++)
{
          if (IsClientInGame(i)) players[i] = ReadPackCell(pack);
}

Или жди WS может я не правильно подсказываю) а он подправит=)


Сообщение отредактировал Scarface_slv - Среда, 14.11.2012, 01:49:37
 
  • Страница 1 из 1
  • 1
Поиск: