Cashbrick

Cashbrick 1.0.2

Нет прав для скачивания
Сообщения
29
Реакции
15
Помог
1 раз(а)
Nordic Warrior, и какой смысл от этих манипуляций?
24 Май 2020
Nordic Warrior, и размер объекту вы как по другому установите?
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Nvoymax, какой смысл писать всё кроме 2 строк на реапи?
 
Сообщения
16
Реакции
1
Baton4ik48, было бы отлично, если бы был выбор между aes или aru (army ranks ultimate) :)
 
Сообщения
333
Реакции
290
Помог
9 раз(а)
Прям, удивили... Те, кто высказал, что реапи- не всегда "круто". Обычно, вы защищаете его грудью и хаете другие модули. Цены бы вам не было, если бы вы себе ответили на вопрос: зачем лишать людей без реапи возможности пользоваться плагином? Плагином, который написан с использованием реапи, но в котором этот реапи не решает ничего.
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
zhorzh78, какик образом var_model поставит модельку? У info_target нет в спавне SET_MODEL(pev->model), который бы так же нужно было вызывать через фейкмету.
 
Сообщения
147
Реакции
29
fl0wer translator sometimes doesnt do a proper job, but i also ask why is reapi must have in this plugin (i guess just a style of the coder)? isnt all posible with <engine>?
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
jocasrb, try to do optimized SetThink, SetTouch with engine? Ops, it haven't it and using global Touch for checking classnames. Also, you can use hamsandwich for this, but they reg for all the class of the entites and you need to filter your entity.
In this plugin reapi for entvars, SetThink, SetTouch, etc. And fakemeta for call gamedll func.
 
Сообщения
147
Реакции
29
fl0wer how i undestood, reapi is like shortcut here, to do faster job, because with other modules its also Possible, filter is easy also: reg. touch "cashbrick", "player"
 
Сообщения
333
Реакции
290
Помог
9 раз(а)
fl0wer, Ну ты то чего начинаешь. Все работает с var_modelindex.
Не поленился проверить.. код из соседней темы. Дальнейший оффтоп поддерживать не буду. Уперлись ногами- ваше право.
C++:
#include <amxmodx>
//#include <fakemeta>
#include <reapi>
#include <aes_v>

//#define MYSQL_SUPPORT   // Раскомментируйте данный define ,если хотите сохранять в БД MYSQL(по умолчанию, сохранение через nvault)

#if defined MYSQL_SUPPORT
#include <sqlx>
#else
#include <nvault>
#endif

#pragma semicolon 1

enum _:eCvars
{
    Float: ENT_LIFETIME,
    GLOW,
    AES_DEAD,
    AES_ALL,
    AES_EXP,
    TIME_DELETE,
    AES_BONUS
}
new g_eCvar[eCvars];

new g_iMaxPlayers;
new g_iCoin[33];

new const ENT_CLASSNAME[] = "raise_the_coin";
new const ENT_MODEL[] = "models/gamecms/present/exp2_blue.mdl";
//new const SND_PICKUP[] = "exp.wav";


// НАСТРОЙКА ДАННЫХ  MYSQL (Вводить, если раскомментировон #define MYSQL_SUPPORT)
#if defined MYSQL_SUPPORT
new Host[]     = ""; // ip адрес хоста
new User[]    = ""; // Имя хоста
new Pass[]     = ""; // Пароль хоста
new Db[]     = "";  // Название бд
// КОНЕЦ НАСТРОЙКИ ДАННЫХ  MYSQL
new Handle:sql_typle;
new g_Error[512];
#else
new g_Vault;
#endif

public plugin_init( )
{
  register_plugin( "(AES)Raise_the_coin", "1.0.0", "Baton4ik48" );
  RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true);
  g_iMaxPlayers = get_maxplayers();
 // set_task(2.0, "Task_HudMsg", .flags = "b");
}
// Настройка кваров
/*
public plugin_cfg()
{
    bind_pcvar_float(create_cvar("raise_ent_life", "7.0", FCVAR_NONE), g_eCvar[ENT_LIFETIME]); // Время через которое исчезнет монета
    bind_pcvar_num(create_cvar("raise_ent_glow", "1", FCVAR_NONE), g_eCvar[GLOW]); // Свечение монеты
    bind_pcvar_num(create_cvar("raise_dead_exp", "1", FCVAR_NONE), g_eCvar[AES_DEAD]); // Кол-во опыта теряемое при смерти (ставить без минуса)
    bind_pcvar_num(create_cvar("raise_aes_all", "30", FCVAR_NONE), g_eCvar[AES_ALL]); // Необходимое кол-во монет до вознаграждения
    bind_pcvar_num(create_cvar("raise_aes_exp", "100", FCVAR_NONE), g_eCvar[AES_EXP]); // Кол-во опыта за вознаграждении
    bind_pcvar_num(create_cvar("raise_aes_bonus", "10", FCVAR_NONE), g_eCvar[AES_BONUS]); // Кол-во бонусов за вознаграждении
    bind_pcvar_num(create_cvar("raise_deletetime", "5", FCVAR_NONE), g_eCvar[TIME_DELETE]); // Записи игроков, не заходивших указанное кол-во дней, удаляются из хранилища. Меньше 1, - отключить (не рекомендуется) Квар для nvault!!!

// Конец настройки кваров

    #if defined MYSQL_SUPPORT
      set_task(1.0, "mysql_start");
      #else
      g_Vault = nvault_open("raise_the_coin");
      if(g_Vault == INVALID_HANDLE)
            {
                set_fail_state("Error nvault");
             }
    if (g_eCvar[TIME_DELETE] > 0)
        nvault_prune(g_Vault, 0, get_systime() - (86400 * g_eCvar[TIME_DELETE]));
      #endif
}

*/
new model;
public plugin_precache()
{
    model =  precache_model(ENT_MODEL);
    //precache_sound(SND_PICKUP);
}


public CBasePlayer_Killed_Post(pVictim, pAttacker, pGib)
{
    new Float: vecOrigin[3];
    new Float: vecVelocity[3];

    get_entvar(pVictim, var_origin, vecOrigin);

    new iEntity = rg_create_entity("info_target", false);

    if(is_nullent(iEntity))
        return;

   // aes_add_player_exp_f(pVictim,-g_eCvar[AES_DEAD]);

    vecVelocity[0] = random_float(-200.0, 200.0);
    vecVelocity[1] = random_float(-200.0, 200.0);
    vecVelocity[2] = random_float(1.0, 200.0);

    //engfunc(EngFunc_SetModel, iEntity, ENT_MODEL);
    set_entvar(iEntity, var_model, ENT_MODEL);
    set_entvar(iEntity, var_modelindex, model);
    //engfunc(EngFunc_SetSize, iEntity, {-9.0, -7.0, -0.0}, {9.0, 7.0, 6.0});
    set_entvar(iEntity, var_framerate, 1.0);
    set_entvar(iEntity, var_sequence, 2);
    //engfunc(EngFunc_AnimationAutomove, iEntity, 100.0);

    set_entvar(iEntity, var_origin, vecOrigin);
    set_entvar(iEntity, var_classname, ENT_CLASSNAME);
    set_entvar(iEntity, var_movetype, MOVETYPE_TOSS);
    set_entvar(iEntity, var_solid, SOLID_TRIGGER);
    set_entvar(iEntity, var_velocity, vecVelocity);
    set_entvar(iEntity, var_nextthink, get_gametime() + g_eCvar[ENT_LIFETIME]);

    if(g_eCvar[GLOW])
    {
        set_entvar(iEntity, var_rendermode, kRenderGlow);
        set_entvar(iEntity, var_renderamt, 1.0);
        set_entvar(iEntity, var_rendercolor, Float: { 0.0, 255.0, 0.0 });
        set_entvar(iEntity, var_renderfx, kRenderFxGlowShell);
    }

   // SetThink(iEntity, "Cashbrick_Think");
    SetTouch(iEntity, "Cashbrick_Touch");
}
/*
public Cashbrick_Think(pEntity)
{
    if(!is_entity(pEntity))
        return;

    if(get_entvar(pEntity, var_iuser2))
    {
        new Float: fRenderAmt;
        get_entvar(pEntity, var_renderamt, fRenderAmt);

        if(fRenderAmt > 20.0)
        {
            set_entvar(pEntity, var_renderamt, fRenderAmt - 20.0);
            set_entvar(pEntity, var_nextthink, get_gametime() + 0.1);
        }
        else
            set_entvar(pEntity, var_flags, FL_KILLME);
    }
    else
    {
        set_entvar(pEntity, var_iuser2, 1);
        set_entvar(pEntity, var_rendermode, kRenderTransTexture);
        set_entvar(pEntity, var_renderamt, 255.0);
        set_entvar(pEntity, var_nextthink, get_gametime() + 1.5);
    }
}
*/
public Cashbrick_Touch(pEntity, pToucher)
{
    if(!is_entity(pEntity) || !is_user_connected(pToucher))
        return;

    g_iCoin[pToucher]++;
    set_hudmessage(0, 255, 0, -1.0, 0.26, 0, 0.1, 2.0, 0.1, 0.1, 3);
    show_hudmessage(pToucher, "+1 монета", g_iCoin);
   // rh_emit_sound2(pToucher, 0, CHAN_ITEM, SND_PICKUP, VOL_NORM, ATTN_NORM);
    set_entvar(pEntity, var_flags, FL_KILLME);
/*
    if(g_iCoin[pToucher] == g_eCvar[AES_ALL])
        {
            client_print_color(pToucher, print_team_default, "^1Вы получили ^4%i ^1опыта и ^4%i ^1бонус.", g_eCvar[AES_EXP] ,g_eCvar[AES_BONUS]);
            aes_add_player_exp_f(pToucher,g_eCvar[AES_EXP]);
            aes_add_player_bonus_f(pToucher,g_eCvar[AES_BONUS]);
            g_iCoin[pToucher]  = 0;
        }*/
}
/*
public Task_HudMsg()
{
    set_hudmessage(200, 200, 200, 0.01, 0.90, 0, 0.1, 1.0, 0.1, 0.1, 4);

    for(new id = 1; id < g_iMaxPlayers; id++)
    {
        if(!is_user_alive(id))
            continue;

        show_hudmessage(id, "Монет до вознаграждения: %i/%i", g_iCoin[id], g_eCvar[AES_ALL]);
    }
}

public client_connect(id)
{
    #if defined MYSQL_SUPPORT
    Load_MySql(id);
    #else
    load_coins(id);
    #endif
}

public client_disconnected(id)
{
    #if defined MYSQL_SUPPORT
        Save_MySql(id);
    #else
        save_coins(id);
    #endif
}

public plugin_end()
{
    #if defined MYSQL_SUPPORT
    if (sql_typle)
        SQL_FreeHandle(sql_typle);
    log_amx("sql_close");
    #else
    nvault_close(g_Vault);
    log_amx("nvault_close");
    #endif
}

#if defined MYSQL_SUPPORT
public mysql_start()
{
    sql_typle = SQL_MakeDbTuple(Host, User, Pass, Db);

    new ErrorCode,Handle:SqlConnection = SQL_Connect(sql_typle,ErrorCode,g_Error,charsmax(g_Error));
    if(SqlConnection == Empty_Handle)
        set_fail_state(g_Error);

    new Handle:Queries;
    Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS Raise_the_coin (steamid varchar(32), coin INT(11))");

    if(!SQL_Execute(Queries))
    {
        SQL_QueryError(Queries,g_Error,charsmax(g_Error));
        set_fail_state(g_Error);
    }
    SQL_FreeHandle(Queries);
    SQL_FreeHandle(SqlConnection);
}

public Load_MySql(id)
{
  new sAuthID[32];
  new szTemp[512];
  get_user_authid(id, sAuthID, charsmax(sAuthID));

  new Data[1];
  Data[0] = id;

  format(szTemp,charsmax(szTemp),"SELECT * FROM `Raise_the_coin` WHERE (`Raise_the_coin`.`steamid` = '%s')", sAuthID);

  SQL_ThreadQuery(sql_typle,"registration_client",szTemp,Data,1);
}

public registration_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    if(FailState == TQUERY_CONNECT_FAILED)
    {
        log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error);
    }
    else if(FailState == TQUERY_QUERY_FAILED)
    {
        log_amx("Load Query failed. [%d] %s", Errcode, Error);
    }

    new id;
    id = Data[0];

    if(SQL_NumResults(Query) < 1)
    {
  new sAuthID[32];
  new szTemp[512];

  get_user_authid(id, sAuthID, charsmax(sAuthID));

  format(szTemp,charsmax(szTemp), "INSERT INTO `Raise_the_coin` ( `steamid` , `coin`)VALUES ('%s','0')", sAuthID);
  SQL_ThreadQuery(sql_typle, "ignore_handle",szTemp);
    }
    else
    {
        g_iCoin[id] = SQL_ReadResult(Query, 1);
    }
    return PLUGIN_HANDLED;
}

public Save_MySql(id)
{
    new sAuthID[32];
    new szTemp[512];
    get_user_authid(id, sAuthID, charsmax(sAuthID));

    format(szTemp,charsmax(szTemp),"UPDATE `Raise_the_coin` SET `coin` = '%i' WHERE `Raise_the_coin`.`steamid` = '%s';", g_iCoin[id], sAuthID);

    SQL_ThreadQuery(sql_typle,"ignore_handle",szTemp);
}

public ignore_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    SQL_FreeHandle(Query);
    return PLUGIN_HANDLED;
}
#else
save_coins(id)
{
  new szKey[40];
  new szCoin[15];

  get_user_authid(id, szKey, charsmax(szKey));

  formatex(szCoin, charsmax(szCoin), "%i", g_iCoin[id]);
  nvault_set(g_Vault, szKey, szCoin);
}

load_coins(id)
{
  new szKey[40];
  new szCoin[15];

  get_user_authid(id, szKey, charsmax(szKey));

  nvault_get(g_Vault, szKey, szCoin, charsmax(szCoin));
  g_iCoin[id] = str_to_num(szCoin);
}
#endif*/
 

hajimura

Е777КХ05
Сообщения
290
Реакции
228
Помог
6 раз(а)
fl0wer, Ну ты то чего начинаешь. Все работает с var_modelindex.
Не поленился проверить.. код из соседней темы. Дальнейший оффтоп поддерживать не буду. Уперлись ногами- ваше право.
C++:
#include <amxmodx>
//#include <fakemeta>
#include <reapi>
#include <aes_v>

//#define MYSQL_SUPPORT   // Раскомментируйте данный define ,если хотите сохранять в БД MYSQL(по умолчанию, сохранение через nvault)

#if defined MYSQL_SUPPORT
#include <sqlx>
#else
#include <nvault>
#endif

#pragma semicolon 1

enum _:eCvars
{
    Float: ENT_LIFETIME,
    GLOW,
    AES_DEAD,
    AES_ALL,
    AES_EXP,
    TIME_DELETE,
    AES_BONUS
}
new g_eCvar[eCvars];

new g_iMaxPlayers;
new g_iCoin[33];

new const ENT_CLASSNAME[] = "raise_the_coin";
new const ENT_MODEL[] = "models/gamecms/present/exp2_blue.mdl";
//new const SND_PICKUP[] = "exp.wav";


// НАСТРОЙКА ДАННЫХ  MYSQL (Вводить, если раскомментировон #define MYSQL_SUPPORT)
#if defined MYSQL_SUPPORT
new Host[]     = ""; // ip адрес хоста
new User[]    = ""; // Имя хоста
new Pass[]     = ""; // Пароль хоста
new Db[]     = "";  // Название бд
// КОНЕЦ НАСТРОЙКИ ДАННЫХ  MYSQL
new Handle:sql_typle;
new g_Error[512];
#else
new g_Vault;
#endif

public plugin_init( )
{
  register_plugin( "(AES)Raise_the_coin", "1.0.0", "Baton4ik48" );
  RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true);
  g_iMaxPlayers = get_maxplayers();
// set_task(2.0, "Task_HudMsg", .flags = "b");
}
// Настройка кваров
/*
public plugin_cfg()
{
    bind_pcvar_float(create_cvar("raise_ent_life", "7.0", FCVAR_NONE), g_eCvar[ENT_LIFETIME]); // Время через которое исчезнет монета
    bind_pcvar_num(create_cvar("raise_ent_glow", "1", FCVAR_NONE), g_eCvar[GLOW]); // Свечение монеты
    bind_pcvar_num(create_cvar("raise_dead_exp", "1", FCVAR_NONE), g_eCvar[AES_DEAD]); // Кол-во опыта теряемое при смерти (ставить без минуса)
    bind_pcvar_num(create_cvar("raise_aes_all", "30", FCVAR_NONE), g_eCvar[AES_ALL]); // Необходимое кол-во монет до вознаграждения
    bind_pcvar_num(create_cvar("raise_aes_exp", "100", FCVAR_NONE), g_eCvar[AES_EXP]); // Кол-во опыта за вознаграждении
    bind_pcvar_num(create_cvar("raise_aes_bonus", "10", FCVAR_NONE), g_eCvar[AES_BONUS]); // Кол-во бонусов за вознаграждении
    bind_pcvar_num(create_cvar("raise_deletetime", "5", FCVAR_NONE), g_eCvar[TIME_DELETE]); // Записи игроков, не заходивших указанное кол-во дней, удаляются из хранилища. Меньше 1, - отключить (не рекомендуется) Квар для nvault!!!

// Конец настройки кваров

    #if defined MYSQL_SUPPORT
      set_task(1.0, "mysql_start");
      #else
      g_Vault = nvault_open("raise_the_coin");
      if(g_Vault == INVALID_HANDLE)
            {
                set_fail_state("Error nvault");
             }
    if (g_eCvar[TIME_DELETE] > 0)
        nvault_prune(g_Vault, 0, get_systime() - (86400 * g_eCvar[TIME_DELETE]));
      #endif
}

*/
new model;
public plugin_precache()
{
    model =  precache_model(ENT_MODEL);
    //precache_sound(SND_PICKUP);
}


public CBasePlayer_Killed_Post(pVictim, pAttacker, pGib)
{
    new Float: vecOrigin[3];
    new Float: vecVelocity[3];

    get_entvar(pVictim, var_origin, vecOrigin);

    new iEntity = rg_create_entity("info_target", false);

    if(is_nullent(iEntity))
        return;

   // aes_add_player_exp_f(pVictim,-g_eCvar[AES_DEAD]);

    vecVelocity[0] = random_float(-200.0, 200.0);
    vecVelocity[1] = random_float(-200.0, 200.0);
    vecVelocity[2] = random_float(1.0, 200.0);

    //engfunc(EngFunc_SetModel, iEntity, ENT_MODEL);
    set_entvar(iEntity, var_model, ENT_MODEL);
    set_entvar(iEntity, var_modelindex, model);
    //engfunc(EngFunc_SetSize, iEntity, {-9.0, -7.0, -0.0}, {9.0, 7.0, 6.0});
    set_entvar(iEntity, var_framerate, 1.0);
    set_entvar(iEntity, var_sequence, 2);
    //engfunc(EngFunc_AnimationAutomove, iEntity, 100.0);

    set_entvar(iEntity, var_origin, vecOrigin);
    set_entvar(iEntity, var_classname, ENT_CLASSNAME);
    set_entvar(iEntity, var_movetype, MOVETYPE_TOSS);
    set_entvar(iEntity, var_solid, SOLID_TRIGGER);
    set_entvar(iEntity, var_velocity, vecVelocity);
    set_entvar(iEntity, var_nextthink, get_gametime() + g_eCvar[ENT_LIFETIME]);

    if(g_eCvar[GLOW])
    {
        set_entvar(iEntity, var_rendermode, kRenderGlow);
        set_entvar(iEntity, var_renderamt, 1.0);
        set_entvar(iEntity, var_rendercolor, Float: { 0.0, 255.0, 0.0 });
        set_entvar(iEntity, var_renderfx, kRenderFxGlowShell);
    }

   // SetThink(iEntity, "Cashbrick_Think");
    SetTouch(iEntity, "Cashbrick_Touch");
}
/*
public Cashbrick_Think(pEntity)
{
    if(!is_entity(pEntity))
        return;

    if(get_entvar(pEntity, var_iuser2))
    {
        new Float: fRenderAmt;
        get_entvar(pEntity, var_renderamt, fRenderAmt);

        if(fRenderAmt > 20.0)
        {
            set_entvar(pEntity, var_renderamt, fRenderAmt - 20.0);
            set_entvar(pEntity, var_nextthink, get_gametime() + 0.1);
        }
        else
            set_entvar(pEntity, var_flags, FL_KILLME);
    }
    else
    {
        set_entvar(pEntity, var_iuser2, 1);
        set_entvar(pEntity, var_rendermode, kRenderTransTexture);
        set_entvar(pEntity, var_renderamt, 255.0);
        set_entvar(pEntity, var_nextthink, get_gametime() + 1.5);
    }
}
*/
public Cashbrick_Touch(pEntity, pToucher)
{
    if(!is_entity(pEntity) || !is_user_connected(pToucher))
        return;

    g_iCoin[pToucher]++;
    set_hudmessage(0, 255, 0, -1.0, 0.26, 0, 0.1, 2.0, 0.1, 0.1, 3);
    show_hudmessage(pToucher, "+1 монета", g_iCoin);
   // rh_emit_sound2(pToucher, 0, CHAN_ITEM, SND_PICKUP, VOL_NORM, ATTN_NORM);
    set_entvar(pEntity, var_flags, FL_KILLME);
/*
    if(g_iCoin[pToucher] == g_eCvar[AES_ALL])
        {
            client_print_color(pToucher, print_team_default, "^1Вы получили ^4%i ^1опыта и ^4%i ^1бонус.", g_eCvar[AES_EXP] ,g_eCvar[AES_BONUS]);
            aes_add_player_exp_f(pToucher,g_eCvar[AES_EXP]);
            aes_add_player_bonus_f(pToucher,g_eCvar[AES_BONUS]);
            g_iCoin[pToucher]  = 0;
        }*/
}
/*
public Task_HudMsg()
{
    set_hudmessage(200, 200, 200, 0.01, 0.90, 0, 0.1, 1.0, 0.1, 0.1, 4);

    for(new id = 1; id < g_iMaxPlayers; id++)
    {
        if(!is_user_alive(id))
            continue;

        show_hudmessage(id, "Монет до вознаграждения: %i/%i", g_iCoin[id], g_eCvar[AES_ALL]);
    }
}

public client_connect(id)
{
    #if defined MYSQL_SUPPORT
    Load_MySql(id);
    #else
    load_coins(id);
    #endif
}

public client_disconnected(id)
{
    #if defined MYSQL_SUPPORT
        Save_MySql(id);
    #else
        save_coins(id);
    #endif
}

public plugin_end()
{
    #if defined MYSQL_SUPPORT
    if (sql_typle)
        SQL_FreeHandle(sql_typle);
    log_amx("sql_close");
    #else
    nvault_close(g_Vault);
    log_amx("nvault_close");
    #endif
}

#if defined MYSQL_SUPPORT
public mysql_start()
{
    sql_typle = SQL_MakeDbTuple(Host, User, Pass, Db);

    new ErrorCode,Handle:SqlConnection = SQL_Connect(sql_typle,ErrorCode,g_Error,charsmax(g_Error));
    if(SqlConnection == Empty_Handle)
        set_fail_state(g_Error);

    new Handle:Queries;
    Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS Raise_the_coin (steamid varchar(32), coin INT(11))");

    if(!SQL_Execute(Queries))
    {
        SQL_QueryError(Queries,g_Error,charsmax(g_Error));
        set_fail_state(g_Error);
    }
    SQL_FreeHandle(Queries);
    SQL_FreeHandle(SqlConnection);
}

public Load_MySql(id)
{
  new sAuthID[32];
  new szTemp[512];
  get_user_authid(id, sAuthID, charsmax(sAuthID));

  new Data[1];
  Data[0] = id;

  format(szTemp,charsmax(szTemp),"SELECT * FROM `Raise_the_coin` WHERE (`Raise_the_coin`.`steamid` = '%s')", sAuthID);

  SQL_ThreadQuery(sql_typle,"registration_client",szTemp,Data,1);
}

public registration_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    if(FailState == TQUERY_CONNECT_FAILED)
    {
        log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error);
    }
    else if(FailState == TQUERY_QUERY_FAILED)
    {
        log_amx("Load Query failed. [%d] %s", Errcode, Error);
    }

    new id;
    id = Data[0];

    if(SQL_NumResults(Query) < 1)
    {
  new sAuthID[32];
  new szTemp[512];

  get_user_authid(id, sAuthID, charsmax(sAuthID));

  format(szTemp,charsmax(szTemp), "INSERT INTO `Raise_the_coin` ( `steamid` , `coin`)VALUES ('%s','0')", sAuthID);
  SQL_ThreadQuery(sql_typle, "ignore_handle",szTemp);
    }
    else
    {
        g_iCoin[id] = SQL_ReadResult(Query, 1);
    }
    return PLUGIN_HANDLED;
}

public Save_MySql(id)
{
    new sAuthID[32];
    new szTemp[512];
    get_user_authid(id, sAuthID, charsmax(sAuthID));

    format(szTemp,charsmax(szTemp),"UPDATE `Raise_the_coin` SET `coin` = '%i' WHERE `Raise_the_coin`.`steamid` = '%s';", g_iCoin[id], sAuthID);

    SQL_ThreadQuery(sql_typle,"ignore_handle",szTemp);
}

public ignore_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    SQL_FreeHandle(Query);
    return PLUGIN_HANDLED;
}
#else
save_coins(id)
{
  new szKey[40];
  new szCoin[15];

  get_user_authid(id, szKey, charsmax(szKey));

  formatex(szCoin, charsmax(szCoin), "%i", g_iCoin[id]);
  nvault_set(g_Vault, szKey, szCoin);
}

load_coins(id)
{
  new szKey[40];
  new szCoin[15];

  get_user_authid(id, szKey, charsmax(szKey));

  nvault_get(g_Vault, szKey, szCoin, charsmax(szCoin));
  g_iCoin[id] = str_to_num(szCoin);
}
#endif*/
Подтверждаю. В своем плагине моделька установилась нормально
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
zhorzh78, что там по моему вопросу?
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
fl0wer, в теории можно указать модель и моделиндекс оффсетами, а после візвать SetMinMax который залинкует чтобы пропустить цыкл. Но это микрооптимизации
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
fantom, как SetMinMaxSize вызовешь? Опять клятую fakemeta подключать для SetSize, который бы вызвал SetMinMaxSize?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу