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 |
|
| |