Kill Message - ошибка.

Тема в разделе "Общие вопросы", создана пользователем murk, 22 окт 2014.

  1. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    L 10/03/2014 - 00:11:23: [SM] Native "ClientCommand" reported: Client 14 is not connected
    L 10/03/2014 - 00:11:23: [SM] Displaying call stack trace for plugin "sm_killmessage_framework.smx":
    L 10/03/2014 - 00:11:23: [SM] [0] Line 62, D:\steampipe_css\cstrike\addons\sourcemod\scripting\sm_killmessage_framework.sp::ClearScreen()
    L 10/03/2014 - 00:11:23: [SM] [1] Line 69, D:\steampipe_css\cstrike\addons\sourcemod\scripting\sm_killmessage_framework.sp::CleanTimer()


    Мб кто в курсе как поправить? и что за ошибка вообще?
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.000
    Симпатии:
    2.992
    IsClientInGame(client)
     
  3. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.566
    Симпатии:
    1.988
    Перед
    поставить if (IsClientConnected(client)) или if (IsClientInGame(client)) (обычно последнее).
    Где client - поставить то же самое, что внутри ClientCommand (после скобки, но до запятой).
    Оффтоп
     
    murk нравится это.
  4. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    (IsClientConnected(client)) ставил вроде, не помогло, сейчас попробую if (IsClientInGame(client)) спс.
     
  5. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Вроде - тут не катит)
    Скидывай, как исправлял.
     
  6. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    public ClearScreen(client)
    {
    if(client > 0 && IsClientConnected(client))
    {
    ClientCommand(client, "r_screenoverlay \"\"");
    }
    }

    Так?
     
  7. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Может, быть весь исходник скинешь? в логах еще же есть ошибки
     
  8. murk

    murk

    Сообщения:
    79
    Симпатии:
    2

    public ClearScreen(client)
    {
    if(client > 0 && IsClientConnected(client))
    {
    ClientCommand(IsClientConnected(client), "r_screenoverlay \"\"");
    }
    }

    Так?
     
  9. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    public ClearScreen(client)
    {
    if(client > 0 && IsClientConnected(client))
    {
    ClientCommand(IsClientConnected(client), "r_screenoverlay \"\"");
    }
    }

    public CleanTimer(client)
    {
    if(client > 0 && IsClientConnected(client))
    {
    ClientCommand(IsClientConnected(client), "r_screenoverlay \"\"");
    }
    }


    Так?)

    Добавлено через 2 минуты
    или

    public Action:CleanTimer(Handle:Timer, any:client)
    {
    _atCleanTimer[client] = INVALID_HANDLE;
    ClearScreen(IsClientConnected(client));
    }
     
    Последнее редактирование: 22 окт 2014
  10. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    Нет, не сам, короче вот. Скинь плз., готовый, а то чет я запутался уже.

    #include <sourcemod>
    #include <sdktools>

    #define PLUGIN_VERSION "2.3"

    new Handle:_atCleanTimer[MAXPLAYERS+1] = INVALID_HANDLE
    new Handle:_hTimerLength;
    new Float:_dTimerLength;

    public Plugin:myinfo =
    {
    name = "Kill Message Overlays Framework",
    author = "Siang Chun & Black Haze & Xeon",
    description = "Framework for Kill Message Overlays",
    version = PLUGIN_VERSION,
    url = "bslw.co.uk & beernweed.com & csgo-astra.ru"
    }

    public OnPluginStart()
    {
    _hTimerLength = CreateConVar("sm_killmessage_overlays_length", "3.0", "Length of time an overlay is showed", FCVAR_PLUGIN|FCVAR_REPLICATED, true, 1.0);
    _dTimerLength = GetConVarFloat(_hTimerLength);

    RegServerCmd("sm_killmessage_show", ShowKillMessage);
    RegServerCmd("sm_killmessage_prepare", PrepareOverlay);
    }

    public Action:ShowKillMessage(args)
    {
    if (args < 2)
    {
    return Plugin_Handled;
    }

    decl String: client_id[192];
    GetCmdArg(1, client_id, sizeof(client_id));
    new client = GetClientOfUserId(StringToInt(client_id));

    if(client>0)
    {
    decl String: sOverLay[192];
    GetCmdArg(2, sOverLay, sizeof(sOverLay));

    if(_atCleanTimer[client] !=INVALID_HANDLE)
    {
    KillTimer(_atCleanTimer[client]);
    _atCleanTimer[client] =INVALID_HANDLE;
    }

    _atCleanTimer[client] = CreateTimer(_dTimerLength,CleanTimer,client);

    ClearScreen(client);
    ClientCommand(client, "r_screenoverlay \"ray_killmessages/%s.vtf\"",sOverLay);
    }
    return Plugin_Handled;
    }

    public ClearScreen(client)
    {
    if(client > 0 && IsClientConnected(client))
    {
    ClientCommand(IsClientConnected(client), "r_screenoverlay \"\"");
    }
    }

    public Action:CleanTimer(Handle:Timer, any:client)
    {
    _atCleanTimer[client] = INVALID_HANDLE;
    ClearScreen(client);
    }

    public Action:PrepareOverlay(args)
    {
    if (args < 1)
    {
    return Plugin_Handled;
    }

    decl String: sOverLay[192];
    GetCmdArg(1, sOverLay, sizeof(sOverLay));

    new String:overlays_file[64];
    new String:overlays_dltable[64];

    Format(overlays_file,sizeof(overlays_file),"ray_killmessages/%s.vtf",sOverLay);
    PrecacheDecal(overlays_file,true);
    Format(overlays_dltable,sizeof(overlays_dltable),"materials/ray_killmessages/%s.vtf",sOverLay);
    AddFileToDownloadsTable(overlays_dltable);
    Format(overlays_file,sizeof(overlays_file),"ray_killmessages/%s.vmt",sOverLay);
    PrecacheDecal(overlays_file,true);
    Format(overlays_dltable,sizeof(overlays_dltable),"materials/ray_killmessages/%s.vmt",sOverLay);
    AddFileToDownloadsTable(overlays_dltable);

    return Plugin_Handled;
    }
     
  11. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.566
    Симпатии:
    1.988
    PHP:
     #include <sourcemod>
     #include <sdktools>

     #define PLUGIN_VERSION "2.3"

     
    new Handle:_atCleanTimer[MAXPLAYERS+1] = INVALID_HANDLE
     
    new Handle:_hTimerLength;
     new 
    Float:_dTimerLength;

     public 
    Plugin:myinfo 
     {
     
    name "Kill Message Overlays Framework",
     
    author "Siang Chun & Black Haze & Xeon",
     
    description "Framework for Kill Message Overlays",
     
    version PLUGIN_VERSION,
     
    url "bslw.co.uk & beernweed.com & csgo-astra.ru"
     
    }

     public 
    OnPluginStart()
     { 
     
    _hTimerLength CreateConVar("sm_killmessage_overlays_length""3.0""Length of time an overlay is showed"FCVAR_PLUGIN|FCVAR_REPLICATEDtrue1.0);
     
    _dTimerLength GetConVarFloat(_hTimerLength);

     
    RegServerCmd("sm_killmessage_show"ShowKillMessage);
     
    RegServerCmd("sm_killmessage_prepare"PrepareOverlay);
     }

     public 
    Action:ShowKillMessage(args)
     {
     if (
    args 2)
     {
     return 
    Plugin_Handled;
     }

     
    decl Stringclient_id[192];
     
    GetCmdArg(1client_idsizeof(client_id));
     new 
    client GetClientOfUserId(StringToInt(client_id));

     if(
    client>0)
     {
     
    decl StringsOverLay[192];
     
    GetCmdArg(2sOverLaysizeof(sOverLay));

     if(
    _atCleanTimer[client] !=INVALID_HANDLE)
     {
     
    KillTimer(_atCleanTimer[client]);
     
    _atCleanTimer[client] =INVALID_HANDLE;
     }

     
    _atCleanTimer[client] = CreateTimer(_dTimerLength,CleanTimer,client);

     
    ClearScreen(client);
     
    ClientCommand(client"r_screenoverlay \"ray_killmessages/%s.vtf\"",sOverLay);
     }
     return 
    Plugin_Handled;
     }

     public 
    ClearScreen(client)
     {
     if(
    client && IsClientConnected(client)) ClientCommand(client"r_screenoverlay \"\"");
     }

     public 
    Action:CleanTimer(Handle:Timerany:client)
     {
     
    _atCleanTimer[client] = INVALID_HANDLE;
     
    ClearScreen(client);
     }

     public 
    ActionrepareOverlay(args)
     {
     if (
    args 1)
     {
     return 
    Plugin_Handled;
     }

     
    decl StringsOverLay[192];
     
    GetCmdArg(1sOverLaysizeof(sOverLay));

     new 
    String:overlays_file[64];
     new 
    String:overlays_dltable[64];

     
    Format(overlays_file,sizeof(overlays_file),"ray_ki llmessages/%s.vtf",sOverLay);
     
    PrecacheDecal(overlays_file,true);
     
    Format(overlays_dltable,sizeof(overlays_dltable)," materials/ray_killmessages/%s.vtf",sOverLay);
     
    AddFileToDownloadsTable(overlays_dltable);
     
    Format(overlays_file,sizeof(overlays_file),"ray_ki llmessages/%s.vmt",sOverLay);
     
    PrecacheDecal(overlays_file,true);
     
    Format(overlays_dltable,sizeof(overlays_dltable)," materials/ray_killmessages/%s.vmt",sOverLay);
     
    AddFileToDownloadsTable(overlays_dltable);

     return 
    Plugin_Handled;
     }
    Скидывать надо нормально. А так могут быть ошибки из-за плохих отступов.
     
    murk нравится это.
  12. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    Не помогло ((, щя попробую (IsClientInGame(client)).

    Но с отступами все нормуль, я только это поменял сам в ручную, ты же ток это поменял?

    public ClearScreen(client)
    {
    if(client && IsClientConnected(client)) ClientCommand(client, "r_screenoverlay \"\"");
    }
     
  13. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    Ну те же ошибки что и в начале темы, я сервак правда не перезагрузил, просто карту сменил (народу много), этого хватает обычно.
     
  14. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    Что такое "компилировал"?), smx не удалял, ок попробую удалить и залить переименованный, как сделаю отпишусь.
    Еще 1 момент, ты сказал что в 2х местах нужно прописать IsClientConnected(client), а в том скрипте что ты скинул ток в 1 месте исправлено, так что мне в 2х прописать или что?
    Так?

    public ClearScreen(client)
    {
    if(client && IsClientConnected(client)) ClientCommand(IsClientConnected(client), "r_screenoverlay \"\"");
    }
     
  15. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.566
    Симпатии:
    1.988
    murk, http://hlmod.ru/forum/plaginy-dlya-sourcemod/30-ustanovka-i-kompilyatsiya-plaginov.html изучи. Без этого ты никак не сможешь поправить работу плагина. Все твои изменения - просто текст.
    Нет, в одном - у тебя просто вызывается эта функция из других мест, вот и кажется, что ошибки две.
     
    murk нравится это.
  16. WeSTMan

    WeSTMan *Просто я - есть я*

    Сообщения:
    214
    Симпатии:
    39
    Это тема поднималась, нужно просто было пошарить в поисковике.
     
  17. murk

    murk

    Сообщения:
    79
    Симпатии:
    2
    Все, спасибо огромное, теперь многое стало понятно))) и не только с этой проблемой, я тупо .sp правил всегда, думал это файл настроек плагина). Компилировал тут www.sourcemod.net/compiler.php

    Добавлено через 1 минуту
    Да, я гуглил, пробовал, не знал просто что плагин нужно компилировать.
     
    Последнее редактирование: 23 окт 2014
  18. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    Если это не нарушение правил форума, скиньте пожалуйста ссылку на рабочий и не спамящий ошибками Kill Messages. Не могу избавиться от ошибок, описанных автором топа. Перепробовала все оверлеи, но после обновления см они работают не корректно...Игроки не могут зайти на сервер после смены мапы .Нужно откл и снова зайти..
     
  19. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.000
    Симпатии:
    2.992
    Скажу вот что - плагин написан убого.
    Писал похожий на заказ (интегрировал во что-то) проще было с 0 написать новый плагин.

    Лень листать тему. Скиньте исходники и ошибки сюда. Попробую пофиксить.
     
  20. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.566
    Симпатии:
    1.988
    А это разве не то же самое?
    Вижу, скачивали - проблема есть? Если компилируете на SM 1.7.0 и выше, то не факт, как будет работать.