Проблема с плагином подтверждения SteamId

Тема в разделе "Программирование / Скриптинг", создана пользователем DozoR1, 18 июл 2013.

  1. DozoR1

    DozoR1

    Сообщения:
    0
    Симпатии:
    0
    Добрый день. Посмотрел мануал на странице: http://duxa72.blogspot.ru/2012/09/sourcepawn-steam-id.html
    Ясно, что это "издержки" редактора:
    PHP:
    </sourcemod>
    Собственно, получившийся код при компилировании:
    PHP:
    #pragma semicolon 1
     
    #include <sourcemod>
     
    #define PLUGIN_VERSION  "0.0.3"
    #define PHRASES    "translations/RegSys.phrases.txt"
    #define TIME    3.0
    #define DEBUG
     
    // --MySQL-------------------------------------------------------------------------------
    new String:MySQL_SelectTables[] = "SELECT %s, %s FROM %s WHERE %s REGEXP '^STEAM_[0-9]:%s$';";
    new 
    String:MySQL_UpdateTables[] = "UPDATE %s SET %s = '1', %s = '%d' WHERE %s REGEXP '^STEAM_[0-9]:%s$';";
    // --SQLite------------------------------------------------------------------------------
    new String:SQLite_SelectTables[] = "SELECT %s, %s FROM %s WHERE %s = '%s';";
    new 
    String:SQLite_UpdateTables[] = "UPDATE %s SET %s = '1', %s = '%d' WHERE %s = '%s';";
    // --------------------------------------------------------------------------------------
     
    new String:szDatabase[64],
     
    String:szTimeEnd[64],
     
    String:szActive[64],
     
    String:szSteamID[64],
     
    String:szTimeActive[64];
     
    new 
    Handle:ClientRecheck[MAXPLAYERS+1];
     
    new 
    Handle:db      INVALID_HANDLE;
     
    new 
    Handle:sm_rs_tb    INVALID_HANDLE;
    new 
    Handle:sm_rs_tb_steamid  INVALID_HANDLE;
    new 
    Handle:sm_rs_tb_active  INVALID_HANDLE;
    new 
    Handle:sm_rs_tb_te    INVALID_HANDLE;
    new 
    Handle:sm_rs_tb_ta    INVALID_HANDLE;
     
    public 
    Plugin:myinfo 
    {
     
    name "RegSys",
     
    author "duxa",
     
    description "Registration System",
     
    version PLUGIN_VERSION,
     
    url ""
    }
     
    public 
    OnPluginStart()

     
    decl String:szPath[PLATFORM_MAX_PATH];
     
     
    BuildPath(Path_SMszPathsizeof(szPath), "%s"PHRASES);
     if(!
    FileExists(szPath)) 
     {
      
    PrintToServer("[RegSys] Cannot find the translations for \"RegSys\"");
      
    LogError("[RegSys] Cannot find the translations for \"RegSys\"");
      return;
     }
     
    LoadTranslations("RegSys.phrases");
     
     
    CreateConVar("sm_rs_version"PLUGIN_VERSION_FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_DONTRECORD|FCVAR_NOTIFY);
     
     
    sm_rs_tb    CreateConVar("sm_rs_tb",   "reg_data",  "The name table");
     
    sm_rs_tb_steamid  CreateConVar("sm_rs_tb_steamid",  "STEAM_ID",  "The name table with STEAM_ID");
     
    sm_rs_tb_active  CreateConVar("sm_rs_tb_active",  "active",   "The name table with the state of activation");
     
    sm_rs_tb_te    CreateConVar("sm_rs_tb_te",  "time_end",  "The name table with end time");
     
    sm_rs_tb_ta    CreateConVar("sm_rs_tb_ta",  "time_active",  "The name table for activation time");
      
     
    HookConVarChange(sm_rs_tb,    OnSettingChanged);
     
    HookConVarChange(sm_rs_tb_steamid,  OnSettingChanged);
     
    HookConVarChange(sm_rs_tb_activeOnSettingChanged);
     
    HookConVarChange(sm_rs_tb_te,   OnSettingChanged);
     
    HookConVarChange(sm_rs_tb_ta,   OnSettingChanged);
      
     
    AutoExecConfig(true"RegSys");
    }
     
    public 
    OnConfigsExecuted()
    {
     if(!
    SQL_CheckConfig("RegSys"))
     {
      
    PrintToServer("[RegSys] Database failure: Could not find Database conf \"RegSys\"");
      
    LogError("[RegSys] Database failure: Could not find Database conf \"RegSys\"");
      return;
     }
     
     
    GetConVarString(sm_rs_tb,      szDatabase,  sizeof(szDatabase));
     
    GetConVarString(sm_rs_tb_te,    szTimeEnd,  sizeof(szTimeEnd));
     
    GetConVarString(sm_rs_tb_active,  szActive,  sizeof(szActive));
     
    GetConVarString(sm_rs_tb_steamidszSteamIDsizeof(szSteamID));
     
    GetConVarString(sm_rs_tb_ta,   szTimeActivesizeof(szTimeActive));
     
     
    #if defined DEBUG
     
    PrintToServer("OnConfigsExecuted: TB = %s, TE = %s, A = %s, S = %s, TA = %s"szDatabaseszTimeEndszActiveszSteamIDszTimeActive);
     
    #endif
     
     
    SQL_TConnect(GotDatabase"RegSys");
    }
     
    public 
    OnSettingChanged(Handle:convar, const String:oldValue[], const String:newValue[])
    {
     if(
    convar == sm_rs_tb
     {
      if(!
    StrEqual(oldValuenewValue))
      {
       
    GetConVarString(convarszDatabasesizeof(szDatabase));
      }
     } else
     
     if(
    convar == sm_rs_tb_te
     {
      if(!
    StrEqual(oldValuenewValue))
      {
       
    GetConVarString(convarszTimeEndsizeof(szTimeEnd));
      }
     } else
     
     if(
    convar == sm_rs_tb_active
     {
      if(!
    StrEqual(oldValuenewValue))
      {
       
    GetConVarString(convarszActivesizeof(szActive));
      }
     } else
     
     if(
    convar == sm_rs_tb_steamid
     {
      if(!
    StrEqual(oldValuenewValue))
      {
       
    GetConVarString(convarszSteamIDsizeof(szSteamID));
      }
     } else
     
     if(
    convar == sm_rs_tb_ta
     {
      if(!
    StrEqual(oldValuenewValue))
      {
       
    GetConVarString(convarszTimeActivesizeof(szTimeActive));
      }
     }
     
     
    #if defined DEBUG
     
    PrintToServer("OnSettingChanged: TB = %s, TE = %s, A = %s, S = %s, TA = %s"szDatabaseszTimeEndszActiveszSteamIDszTimeActive);
     
    #endif
    }
     
    public 
    GotDatabase(Handle:ownerHandle:hndl, const String:error[], any:data)
    {
     if(
    hndl == INVALID_HANDLE)
     {
      
    PrintToServer("[RegSys] Unable to connect to database");
      
    LogError("[RegSys] Unable to connect to database (%s)"error);
      return;
     }
     
    db hndl;
    }
     
    public 
    OnClientAuthorized(client, const String:auth[])
    {
     if(
    auth[0] == 'B' || auth[9] == 'L' || IsFakeClient(client) || db == INVALID_HANDLE) return;
     
     
    decl String:szQuery[256];
     
     new 
    String:szIdent[16];
     
     
    SQL_ReadDriver(dbszIdentsizeof(szIdent));
      
     if(
    strcmp(szIdent"mysql") == 0)
     {
      
    Format(szQuerysizeof(szQuery), MySQL_SelectTablesszTimeEndszActiveszDatabaseszSteamIDauth[8]);
     } else
     if(
    strcmp(szIdent"sqlite") == 0)
     {
      
    Format(szQuerysizeof(szQuery), SQLite_SelectTablesszTimeEndszActiveszDatabaseszSteamIDauth);
     } else
     {
      
    PrintToServer("[RegSys] Unknown driver type.");
      
    LogError("[RegSys] Unknown driver type.");
      return;
     }
     
    #if defined DEBUG
     
    PrintToServer("OnClientAuthorized(%d): %s"clientszQuery);
     
    #endif
     
    SQL_TQuery(dbT_CheckszQueryclient);
    }
     
    public 
    OnClientDisconnect_Post(client)
    {
     if(
    ClientRecheck[client] != INVALID_HANDLE)
     {
      
    CloseHandle(ClientRecheck[client]);
      
    ClientRecheck[client] = INVALID_HANDLE;
     }
    }
     
    public 
    Action:Recheck(Handle:timerany:client)
    {
     
    decl String:szClientSteamID[21];
      
     
    GetClientAuthString(clientszClientSteamIDsizeof(szClientSteamID));
     
    OnClientAuthorized(clientszClientSteamID);
    }
     
    public 
    T_Check(Handle:ownerHandle:hndl, const String:error[], any:client)
    {
     if(
    hndl == INVALID_HANDLE)
     {
      
    #if defined DEBUG
      
    PrintToServer("T_Check(%d): %s"clienterror);
      
    #endif
      
    KickClient(client"%t""Error Miss");
      return;
     }
     
     if(
    SQL_FetchRow(hndl))
     {
      new 
    time_end,
       
    active;
     
      
    time_end SQL_FetchInt(hndl0);
      
    active   SQL_FetchInt(hndl1);
     
      if(
    active == 1)
      {
       
    KickClient(client"%t""Already Confirmed");
       return;
      }
     
      if(
    time_end GetTime())
      {
       
    decl String:szQuery[256];
       
    decl String:szClientSteamID[21];
     
       new 
    String:szIdent[16];
     
       
    GetClientAuthString(clientszClientSteamIDsizeof(szClientSteamID));
       
    SQL_ReadDriver(dbszIdentsizeof(szIdent));
     
       if(
    strcmp(szIdent"mysql") == 0)
       {
        
    Format(szQuery255MySQL_UpdateTablesszDatabaseszActiveszTimeActiveGetTime(), szSteamIDszClientSteamID[8]);
       } else
       if(
    strcmp(szIdent"sqlite") == 0)
       {
        
    Format(szQuery255SQLite_UpdateTablesszDatabaseszActiveszTimeActiveGetTime(), szSteamIDszClientSteamID);
       } else
       {
        
    PrintToServer("[RegSys] Unknown driver type.");
        
    LogError("[RegSys] Unknown driver type.");
        return;
       }
       
    #if defined DEBUG
       
    PrintToServer("T_Check(%d): %s"clientszQuery);
       
    #endif
       
    SQL_TQuery(dbSQL_CheckCallbackszQueryclient);
      } else
      {
       
    KickClient(client"%t""Error Time");
       return;
      }
     } else
     {
      
    KickClient(client"%t""Error Miss");
      return;
     }
    }
     
    public 
    SQL_CheckCallback(Handle:ownerHandle:hndl, const String:error[], any:client)
    {
     if(
    hndl == INVALID_HANDLE)
     {
      
    ClientRecheck[client] = CreateTimer(TIMERecheckclient);
      return;
     }
     
     
    #if defined DEBUG
     
    decl String:szClientSteamID[21];
     
     
    GetClientAuthString(clientszClientSteamIDsizeof(szClientSteamID));
     
    PrintToServer("SQL_CheckCallback(%d): '%s' was confirmed"clientszClientSteamID);
     
    #endif
     
    KickClient(client"%t""Confirm");
    }
    При компилировании плагина возникли 5 ошибок:


    Помогите решить проблему.

    UP:
    Есть подозрение, что вместо
    PHP:
    public Plugin:myinfo =  

     
    name "RegSys"
     
    author "duxa"
     
    description "Registration System"
     
    version PLUGIN_VERSION
     
    url "" 
    Должно быть
    PHP:
    public Plugin:myinfo =  

     
    name "RegSys"
     
    author "duxa"
     
    description "Registration System"
     
    version PLUGIN_VERSION
     
    url "" 
    }; 
     
    Последнее редактирование модератором: 18 июл 2013
  2. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    У меня без ошибок скомпилировалось:pardon:
     
  3. DozoR1

    DozoR1

    Сообщения:
    0
    Симпатии:
    0
    Хмм. Видимо не стоит компилировать все подряд через online-компиляторы.
     
  4. Plankton

    Plankton

    Сообщения:
    2
    Симпатии:
    0
    нафига они вам вообще? пользуйтесь стандартным компилятором и не будет ни каких проблем
     
  5. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
    Для них слишком сложно держать на компе папку scripting
     
    R1KO нравится это.
  6. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.976
    Кажись я слепой, но в чем разница ?
     
  7. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    вот в этом
     
    R1KO нравится это.
  8. OffsprinG

    OffsprinG

    Сообщения:
    59
    Симпатии:
    16
    В самом конце стоит знак ";" :)
    Блин. Опередили.
     
    Последнее редактирование: 19 июл 2013
    R1KO нравится это.
  9. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.976
    ну тогда понятное дело что ; должен быть
     
  10. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.914
    за ; отвечает semicolon
     
    R1KO нравится это.