Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » KeyValues
KeyValues
Scarface_slv Дата: Вторник, 28.08.2012, 01:13:22 | Сообщение # 1
Сообщений: 738
Репутация: 61 [ +/- ]
в KeyValues есть ключ по которому находиться остальная информация например стим ид
но можно ли если у игрока не подходит стим ид проверить еще и ип то есть так:
Code

  "STEAM_0:0:12345678"
  {
   "name"  "Noobik"
   "ip"  "93.157.254.133"
  }

вот так например записано в текстовике и если стим ид не подходит проверяет на ип в этом же стим иде, и так далее пока все не пройдет, возможно?
 
_wS_ Дата: Вторник, 28.08.2012, 01:22:54 | Сообщение # 2
Не делай так, просто создавай IP в качестве ключа, как ты делаешь со steamid:

Code
"mygroup"
{
     "STEAM_0:0:12345678"
     {
         "name"  "Noobik"
     }
     "93.157.254.133"
     {
         "name"  "Noobik"
     }
}

Code
if (!KvJumpToKey(kv, "steamid"))
{
     if (!KvJumpToKey(kv, "ip"))
     {
         // этого "steamid" и "ip" нет в группе
         return;
     }
}
// запись найдена, что-то делаем и потом:
KvRewind(kv);
 
Scarface_slv Дата: Четверг, 30.08.2012, 15:36:07 | Сообщение # 3
Сообщений: 738
Репутация: 61 [ +/- ]
ок спасибо=)

Добавлено (30.08.2012, 14:00:24)
---------------------------------------------
У меня вопрос, если сервер зависнет выключиться вылетит, можно как то успеть сохранить в текстовик инфу командой KeyValuesToFile?


Сообщение отредактировал Scarface_slv - Четверг, 30.08.2012, 16:16:29
 
_wS_ Дата: Четверг, 30.08.2012, 16:49:11 | Сообщение # 4
Ну события OnServerCrash нету, используй другие, список ты знаешь где найти.
Наверно не получится.
 
Scarface_slv Дата: Среда, 05.09.2012, 13:17:49 | Сообщение # 5
Сообщений: 738
Репутация: 61 [ +/- ]
плохо попробовал с OnPluginEnd() не получилось)

Добавлено (05.09.2012, 13:17:49)
---------------------------------------------
не могу отредактировать c keyvalues clients.txt от mani admin все потому что там так:
Code

"clients.txt"
{
        "version"    "1"
        "players"
        {
             "Scarface"
             {
                 "name"    "Scarface"
                 "ip"    "00.000.000.000"
             }
        }
}

Неужели никак не получить хотя бы "Scarface"?
или может есть другой способ удаления от туда зная ник игрока


Сообщение отредактировал Scarface_slv - Среда, 05.09.2012, 13:19:46
 
_wS_ Дата: Среда, 05.09.2012, 13:50:38 | Сообщение # 6
cstrike/clients.txt :

Code
public OnPluginStart()
{
     new Handle:kv = CreateKeyValues("clients");
     if (!FileToKeyValues(kv, "clients.txt"))
     {
         PrintToServer("1");
         return;
     }
     if (KvJumpToKey(kv, "players"))
     {
         if (KvJumpToKey(kv, "Scarface"))
         {
             decl String:ip[35]; KvGetString(kv, "ip", ip, 35);
             decl String:section[35]; section[0] = '\0'; KvGetSectionName(kv, section, 35);
             PrintToServer("section: \"%s\" | ip: \"%s\"", section, ip);
             return;
         }
     }
     PrintToServer("2");
}
 
Scarface_slv Дата: Среда, 05.09.2012, 14:18:42 | Сообщение # 7
Сообщений: 738
Репутация: 61 [ +/- ]
Аааа я так же делал, у меня ошибка вышла и я решил что так нельзя=)
Спасибо снова)
 
Naykon Дата: Пятница, 05.10.2012, 16:27:00 | Сообщение # 8
Сообщений: 439
Репутация: -4 [ +/- ]
Code
public Action:Command_Menu(admin, args)
{
  if (admin > 0)
     {
   new String:SteamID[25];
   GetClientAuthString(admin, SteamID, 25)
    Adminkv = CreateKeyValues("Rank_1");
    if (Adminkv != INVALID_HANDLE)
    {
     if (!FileToKeyValues(Adminkv, "Admins/Rank_1.txt"))
    {
    }  
     else if (KvJumpToKey(Adminkv, SteamID))
     {
     Admin(admin);
     Rank[admin] = 1;
     }
     else  
     {
     CloseHandle(Adminkv);
     }
    }
    Adminkv1 = CreateKeyValues("Rank_2");
    if (Adminkv1 != INVALID_HANDLE)
    {
     if (!FileToKeyValues(Adminkv1, "Admins/Rank_2.txt"))
    {
    }  
     else if (KvJumpToKey(Adminkv1, SteamID))
     {
     Admin(admin);
     Rank[admin] = 2;
     }
     else  
     {
     CloseHandle(Adminkv1);
     }
    }
    Adminkv2 = CreateKeyValues("Rank_3");
   if (Adminkv2 != INVALID_HANDLE)
   {
     if (!FileToKeyValues(Adminkv2, "Admins/Rank_3.txt"))
    {
    }  
     else if (KvJumpToKey(Adminkv2, SteamID))
     {
     Admin(admin);
     Rank[admin] = 3;
     }
     else  
     {
     CloseHandle(Adminkv2);
     NoAdmin(admin);
     }
   }
  }
}


Цель сделать так чтобы игрок проходил проверку по порядку с Rank_1.txt до Rank_3.txt... но заметил такую закономерность когда СТИМ ИГРОКА НАХОДИТЬСЯ во всех трех txt. Выбирается последний Rank_3, а Rank_1 и 2 не видит(((
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » KeyValues
  • Страница 1 из 1
  • 1
Поиск: