[MYSQL] [VIP] Very Important Person

Vlad_Effect

Участник
Сообщения
5
Реакции
0
Доброго времени суток

Кто подскажет почему так происходит

Оффтоп

Мои предположения что мой скрипт не может получить параметре из файла user_settings.ini

Но по мне все сделал правильно.

Вот пример:
Оффтоп

Еще проверил есть ли действительно такой SteamID с настройками как оказалось что его нету, но по идеии он должен пропускать и идти к следующему, но что-то не выходит...

Прошу вашей помощи!
 

Вложения

  • Снимок.JPG
    Снимок.JPG
    121.7 КБ · Просмотры: 75
  • Снимок2.JPG
    Снимок2.JPG
    25.1 КБ · Просмотры: 68

Kailo

Участник
Сообщения
194
Реакции
896
По тому что я вижу, где-то в коде у тебя закрывается hndl, но работа плагина продолжается.
Тут все ок, но нужно увидеть полный код цикла, чтобы сказать что не так. А лучше полный код функции.
 

Vlad_Effect

Участник
Сообщения
5
Реакции
0
@Vlad_Effect, @Vlad_Effect,
По тому что я вижу, где-то в коде у тебя закрывается hndl, но работа плагина продолжается.
Тут все ок, но нужно увидеть полный код цикла, чтобы сказать что не так. А лучше полный код функции.

А тут и так весь цыкл, я же обяснил что если в файле нету настроек с N стимом то выдает ошибку которую я в посте и написал.
 

Kailo

Участник
Сообщения
194
Реакции
896
И вот как тебе помогать? Говоришь что весь код дал, а это не так.
Ну если там действительно вот так, то не хватает выхода с секции после прохода по ней.
PHP:
kv = CreateKeyValues("UsersSettings", "", "");
if (!FileToKeyValues(kv, VipDataUsers_Settings)) PrintToServer("Не удалось загрузить %s", VipDataUsers_Settings);

while (SQL_FetchRow(hndl))
{
    SQL_FetchString(hndl, 1, Auth_receive, 32);
    if (KvJumpToKey(kv, Auth_receive, false))
    {
        //command
        kvGoBack(kv);
    }
}
CloseHandle(kv);
Хотя может там и есть goback, но код ты не показываешь полный, а я не Ванга!
Да и ошибка говорит не о проблеме с kv, а проблеме с результатом запроса. Может есть еще ошибки?

Возможно это не исправит ошибку, но тут не безопасный заход в подсекции:
PHP:
KvJumpToKey(kv, "chat", false);
KvGetString("enable", enable_chat, sizeof(enable_chat));
KvGetString("tag", tag, sizeof(tag));
kvGoBack(kv);
Если подсекции chat не будет, то он выйдет с секции игрока и начнется полная хрень, хотя может у тебя эта секция всегда есть, но все же будет лучше что бы это никогда не вызывало не правильной работы.
 

Vlad_Effect

Участник
Сообщения
5
Реакции
0
Вот такое вот у меня получилось.

Если в файле нету N steam но есть в базе то выдает ошибку то что нету параметра в файле

Вот такой код
PHP:
public q_gVIPSuncSettingsUpdate(Handle:owner, Handle:hndl, const String:error[], any:data)
{
    if (hndl == INVALID_HANDLE) LogError(error);
   
    decl String:Auth_receive[32], String:queryTOP[1024], String:sTags[12][32], String:sTag[32];
   
    kv = CreateKeyValues("UsersSettings", "", "");
    if (!FileToKeyValues(kv, VipDataUsers_Settings)) PrintToServer("Не удалось загрузить %s", VipDataUsers_Settings);
   
    while (SQL_FetchRow(hndl))
    {
        SQL_FetchString(hndl, 1, Auth_receive, 32);
        if (KvJumpToKey(kv, Auth_receive, false))
        {
            decl String:enable_chat[64], String:tag[64], String:setup[64], String:weaponprimaryt[64], String:weaponnameprimaryt[64], String:weaponnamesecondaryt[64],
                String:weaponprimaryct[64], String:weaponnameprimaryct[64], String:weaponsecondaryct[64], String:weaponnamesecondaryct[64], String:knife[64],
                String:assaultsuit[64], String:defuser[64], String:nvgs[64], String:grenades[64], String:hegrenade[64], String:flashbang[64], String:smokegrenade[64],
                String:enable_wp[64], String:weapons_t[64], String:color_t[64], String:weapons_ct[64], String:color_ct[64], String:immunity[64], String:weaponrestrict[64],
                String:spawncash[64], String:showhurt[64], String:autosilencer[64], String:noteamflash[64], String:nofalldamage[64], String:changeteam[64], String:increasesdamage[64],
                String:Regeneration[64], String:nodamagemygrenades[64], String:spawnhealth[64], String:spawnspeed[64], String:tailgrenades[64], String:GiveWeapons[64], String:infiniteammo[64],
                String:dropweapons[64], String:dissolve[64], String:killeffect[64], String:firegrenade[64], String:lossminispeed[64], String:lowammosound[64];

            // Чат
            KvJumpToKey(kv, "chat", false);
            KvGetString(kv, "enable", enable_chat, sizeof(enable_chat));
            KvGetString(kv, "tag", tag, sizeof(tag));
            KvGoBack(kv); // Выйти из под меню
           
            // Автоматическая установка оружия
            KvJumpToKey(kv, "spawnweapon", false);
            KvGetString(kv, "setup", setup, sizeof(setup));
            KvGetString(kv, "weaponprimaryt", weaponprimaryt, sizeof(weaponprimaryt));
            KvGetString(kv, "weaponnameprimaryt", weaponnameprimaryt, sizeof(weaponnameprimaryt));
            KvGetString(kv, "weaponnamesecondaryt", weaponnamesecondaryt, sizeof(weaponnamesecondaryt));
            KvGetString(kv, "weaponprimaryct", weaponprimaryct, sizeof(weaponprimaryct));
            KvGetString(kv, "weaponnameprimaryct", weaponnameprimaryct, sizeof(weaponnameprimaryct));
            KvGetString(kv, "weaponsecondaryct", weaponsecondaryct, sizeof(weaponsecondaryct));
            KvGetString(kv, "weaponnamesecondaryct", weaponnamesecondaryct, sizeof(weaponnamesecondaryct));
            KvGetString(kv, "knife", knife, sizeof(knife));
            KvGetString(kv, "assaultsuit", assaultsuit, sizeof(assaultsuit));
            KvGetString(kv, "defuser", defuser, sizeof(defuser));
            KvGetString(kv, "nvgs", nvgs, sizeof(nvgs));
            KvGetString(kv, "grenades", grenades, sizeof(grenades));
            KvGetString(kv, "hegrenade", hegrenade, sizeof(hegrenade));
            KvGetString(kv, "flashbang", flashbang, sizeof(flashbang));
            KvGetString(kv, "smokegrenade", smokegrenade, sizeof(smokegrenade));
            KvGoBack(kv); // Выйти из под меню
           
            // Настройка цвета оружия
            KvJumpToKey(kv, "colorweapons", false);
            KvGetString(kv, "enable", enable_wp, sizeof(enable_wp));
            KvGetString(kv, "weapons_t", weapons_t, sizeof(weapons_t));
            KvGetString(kv, "color_t", color_t, sizeof(color_t));
            KvGetString(kv, "weapons_ct", weapons_ct, sizeof(weapons_ct));
            KvGetString(kv, "color_ct", color_ct, sizeof(color_ct));
            KvGoBack(kv); // Выйти из под меню
           
            KvGetString(kv, "immunity", immunity, sizeof(immunity));
            KvGetString(kv, "weaponrestrict", weaponrestrict, sizeof(weaponrestrict));
            KvGetString(kv, "spawncash", spawncash, sizeof(spawncash));
            KvGetString(kv, "showhurt", showhurt, sizeof(showhurt));
            KvGetString(kv, "autosilencer", autosilencer, sizeof(autosilencer));
            KvGetString(kv, "noteamflash", noteamflash, sizeof(noteamflash));
            KvGetString(kv, "nofalldamage", nofalldamage, sizeof(nofalldamage));
            KvGetString(kv, "changeteam", changeteam, sizeof(changeteam));
            KvGetString(kv, "increasesdamage", increasesdamage, sizeof(increasesdamage));
            KvGetString(kv, "Regeneration", Regeneration, sizeof(Regeneration));
            KvGetString(kv, "nodamagemygrenades", nodamagemygrenades, sizeof(nodamagemygrenades));
            KvGetString(kv, "spawnhealth", spawnhealth, sizeof(spawnhealth));
            KvGetString(kv, "spawnspeed", spawnspeed, sizeof(spawnspeed));
            KvGetString(kv, "tailgrenades", tailgrenades, sizeof(tailgrenades));
            KvGetString(kv, "GiveWeapons", GiveWeapons, sizeof(GiveWeapons));
            KvGetString(kv, "infiniteammo", infiniteammo, sizeof(infiniteammo));
            KvGetString(kv, "dropweapons", dropweapons, sizeof(dropweapons));
            KvGetString(kv, "dissolve", dissolve, sizeof(dissolve));
            KvGetString(kv, "killeffect", killeffect, sizeof(killeffect));
            KvGetString(kv, "firegrenade", firegrenade, sizeof(firegrenade));
            KvGetString(kv, "lossminispeed", lossminispeed, sizeof(lossminispeed));
            KvGetString(kv, "lowammosound", lowammosound, sizeof(lowammosound));
           
            if(strcmp("\0", tag, true) == 0) { 
                tag = "[VIP]"; 
            } else { 
                ExplodeString(tag, "'", sTags, sizeof(sTags), sizeof(sTags[])); 
            }
           
            if(strcmp("\0", sTags[1], true) == 0) {
                tag = tag; 
            } else { 
                Format(sTag, sizeof(sTag), VIP_SYNC_Tags, sTags[0], sTags[1]); 
                tag = sTag;
            }
            PrintToServer("Загрузил %s, %s", Auth_receive, tag);
       
            Format(queryTOP, 2048, VIP_SYNC_SettingsUpdate, enable_chat, tag, setup, weaponprimaryt, weaponnameprimaryt, weaponnamesecondaryt, weaponprimaryct, weaponnameprimaryct, weaponsecondaryct, weaponnamesecondaryct, knife, assaultsuit, defuser, nvgs, grenades, hegrenade, flashbang, smokegrenade, enable_wp, weapons_t, color_t, weapons_ct, color_ct, immunity, weaponrestrict, spawncash, showhurt, autosilencer, noteamflash, nofalldamage, changeteam, increasesdamage, Regeneration, nodamagemygrenades, spawnhealth, spawnspeed, tailgrenades, GiveWeapons, infiniteammo, dropweapons, dissolve, killeffect, firegrenade, lossminispeed, lowammosound, Auth_receive);
            SQL_TQuery(vip_SQL, SQL_DefCallback, queryTOP, 0); 
            sTags[1] = "\0";
           
            KvRewind(kv);
        }
    }
    CloseHandle(kv);
}
 
Сверху Снизу