Иконка ресурса

[LK MODULE] Покупка опыта Levels Ranks 2020-02-05

Narkus

Участник
Сообщения
139
Реакции
92
  • Автор ресурса
  • #21
плюсую, 3.1.5 последняя версия. Плагин очки после покупки не выдаёт. Ошибок в консоли нет
Фиксаните под новый кор лр 3.1.2 ибо не выдаёт после обновы лр
Проверял на последнем ядре - все работает.
 

LEII4A

Участник
Сообщения
741
Реакции
135

LEII4A

Участник
Сообщения
741
Реакции
135
Там ничего не поменялось, кроме выреза shop из инклюдов.
C++:
#pragma semicolon 1
#include <sourcemod>
#include <cstrike>
#include <lk>
#include <shop>
#include <lvl_ranks>

#define MAX_ITEMS 32

enum enum_Exp
{
    String:Name[64],
    _:Exp,
    _:Price,
}

int g_iExpItem, g_Exp[MAX_ITEMS][enum_Exp];
char g_sItemName[] = "levels_ranks";

public Plugin myinfo =
{
    name = "[LK MODULE] Покупка опыта Levels Ranks",
    author = "Narkus",
    version = "1.0"
};

public void LK_OnLoaded()
{
    if(LK_GetVersion() < 400) LogError("[LK MODULE][Покупка опыта Levels Ranks] Обновите ядро до последней версии");
    else
    {
        LoadTranslations("lk_module_levels_ranks.phrases");
        LK_RegisterItem(g_sItemName, LevelsRanks_Callback);
    }
}

public void OnPluginEnd()
{
    LK_UnRegisterItem(g_sItemName);
}

public void OnMapStart()
{
    KFG_load();
}

public void LevelsRanks_Callback(int iClient, int ItemID, const char[] ItemName)
{
    ShowMenuModule(iClient);
}

void ShowMenuModule(int iClient)
{
    char sTitle[256];
    int ClientCash = LK_GetClientCash(iClient);
    LK_GetMainMenuTitle(iClient, sTitle, sizeof(sTitle));
    Menu hMenu = new Menu(MenuHandler_MainMenu);
    hMenu.ExitBackButton = true;
    hMenu.SetTitle(sTitle);
    for(int i = 0; i < g_iExpItem; i++)
    {
        char szBuffer[16];
        IntToString(i, szBuffer, sizeof(szBuffer));
        hMenu.AddItem(szBuffer, g_Exp[i][Name], ClientCash >= g_Exp[i][Price] ? ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);
    }
    hMenu.Display(iClient, 0);
}

public int MenuHandler_MainMenu(Menu hMenu, MenuAction action, int iClient, int iItem)
{
    switch(action)
    {
        case MenuAction_End: delete hMenu;
        case MenuAction_Cancel:
        {
            if(iItem == MenuCancel_ExitBack) LK_ShowMainMenu(iClient);
        }
        case MenuAction_Select:
        {
            char szInfo[16], sAuth[32];
            GetClientAuthId(iClient, AuthId_Steam2, sAuth, sizeof(sAuth));
            hMenu.GetItem(iItem, szInfo, sizeof(szInfo));
            int i = StringToInt(szInfo);
            LK_TakeClientCash(iClient, g_Exp[i][Price]);
            LR_ChangeClientValue(iClient, g_Exp[i][Exp]);
            LK_PrintToChat(iClient, "%T", "Buy_Experience", iClient, g_Exp[i][Exp]);
            LK_LogMessage("[Личный кабинет] Игрок %N (%s) купил %i опыта Levels Ranks", iClient, sAuth, g_Exp[i][Exp]);
            ShowMenuModule(iClient);
        }
    }
}

void KFG_load()
{
    char sPath[128];
    KeyValues KV = new KeyValues("LK_MODULE");
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/lk/lk_module_levels_ranks.ini");
    if(!KV.ImportFromFile(sPath)) SetFailState("[LK MODULE][Покупка опыта Levels Ranks] - Файл конфигураций не найден");
    KV.Rewind();
    if(KV.GotoFirstSubKey(true))
    {
        g_iExpItem = 0;
        do
        {
            if(KV.GetSectionName(g_Exp[g_iExpItem][Name], 64))
            {
                g_Exp[g_iExpItem][Exp] = KV.GetNum("exp");
                g_Exp[g_iExpItem][Price] = KV.GetNum("price");
                if(g_Exp[g_iExpItem][Exp] < 0) g_Exp[g_iExpItem][Exp] = 0;
                if(g_Exp[g_iExpItem][Price] < 0) g_Exp[g_iExpItem][Price] = 0;
                g_iExpItem += 1;
            }
        } while(KV.GotoNextKey(true));
    }
}
Да вы что? Я об этом фиксе. О версии из шапки и работе её у меня я писал выше.
 

Narkus

Участник
Сообщения
139
Реакции
92
  • Автор ресурса
  • #25
C++:
#pragma semicolon 1
#include <sourcemod>
#include <cstrike>
#include <lk>
#include <shop>
#include <lvl_ranks>

#define MAX_ITEMS 32

enum enum_Exp
{
    String:Name[64],
    _:Exp,
    _:Price,
}

int g_iExpItem, g_Exp[MAX_ITEMS][enum_Exp];
char g_sItemName[] = "levels_ranks";

public Plugin myinfo =
{
    name = "[LK MODULE] Покупка опыта Levels Ranks",
    author = "Narkus",
    version = "1.0"
};

public void LK_OnLoaded()
{
    if(LK_GetVersion() < 400) LogError("[LK MODULE][Покупка опыта Levels Ranks] Обновите ядро до последней версии");
    else
    {
        LoadTranslations("lk_module_levels_ranks.phrases");
        LK_RegisterItem(g_sItemName, LevelsRanks_Callback);
    }
}

public void OnPluginEnd()
{
    LK_UnRegisterItem(g_sItemName);
}

public void OnMapStart()
{
    KFG_load();
}

public void LevelsRanks_Callback(int iClient, int ItemID, const char[] ItemName)
{
    ShowMenuModule(iClient);
}

void ShowMenuModule(int iClient)
{
    char sTitle[256];
    int ClientCash = LK_GetClientCash(iClient);
    LK_GetMainMenuTitle(iClient, sTitle, sizeof(sTitle));
    Menu hMenu = new Menu(MenuHandler_MainMenu);
    hMenu.ExitBackButton = true;
    hMenu.SetTitle(sTitle);
    for(int i = 0; i < g_iExpItem; i++)
    {
        char szBuffer[16];
        IntToString(i, szBuffer, sizeof(szBuffer));
        hMenu.AddItem(szBuffer, g_Exp[i][Name], ClientCash >= g_Exp[i][Price] ? ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);
    }
    hMenu.Display(iClient, 0);
}

public int MenuHandler_MainMenu(Menu hMenu, MenuAction action, int iClient, int iItem)
{
    switch(action)
    {
        case MenuAction_End: delete hMenu;
        case MenuAction_Cancel:
        {
            if(iItem == MenuCancel_ExitBack) LK_ShowMainMenu(iClient);
        }
        case MenuAction_Select:
        {
            char szInfo[16], sAuth[32];
            GetClientAuthId(iClient, AuthId_Steam2, sAuth, sizeof(sAuth));
            hMenu.GetItem(iItem, szInfo, sizeof(szInfo));
            int i = StringToInt(szInfo);
            LK_TakeClientCash(iClient, g_Exp[i][Price]);
            LR_ChangeClientValue(iClient, g_Exp[i][Exp]);
            LK_PrintToChat(iClient, "%T", "Buy_Experience", iClient, g_Exp[i][Exp]);
            LK_LogMessage("[Личный кабинет] Игрок %N (%s) купил %i опыта Levels Ranks", iClient, sAuth, g_Exp[i][Exp]);
            ShowMenuModule(iClient);
        }
    }
}

void KFG_load()
{
    char sPath[128];
    KeyValues KV = new KeyValues("LK_MODULE");
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/lk/lk_module_levels_ranks.ini");
    if(!KV.ImportFromFile(sPath)) SetFailState("[LK MODULE][Покупка опыта Levels Ranks] - Файл конфигураций не найден");
    KV.Rewind();
    if(KV.GotoFirstSubKey(true))
    {
        g_iExpItem = 0;
        do
        {
            if(KV.GetSectionName(g_Exp[g_iExpItem][Name], 64))
            {
                g_Exp[g_iExpItem][Exp] = KV.GetNum("exp");
                g_Exp[g_iExpItem][Price] = KV.GetNum("price");
                if(g_Exp[g_iExpItem][Exp] < 0) g_Exp[g_iExpItem][Exp] = 0;
                if(g_Exp[g_iExpItem][Price] < 0) g_Exp[g_iExpItem][Price] = 0;
                g_iExpItem += 1;
            }
        } while(KV.GotoNextKey(true));
    }
}
Да вы что? Я об этом фиксе. О версии из шапки и работе её у меня я писал выше.
В этой версии ничего не поменялось абсолютно, не знаю что у тебя не работает 😄
 

LEII4A

Участник
Сообщения
741
Реакции
135
В этой версии ничего не поменялось абсолютно, не знаю что у тебя не работает 😄
Я как бы в курсе этого был еще в момент, когда этот подправленный плагин был у меня в личке. Я лишь хотел, чтобы ты мне показал удаленный инклюд шопа в исходнике, о котором ты говорил. А то не вижу просто. Спасибо, что рассмешил.
 

Narkus

Участник
Сообщения
139
Реакции
92
  • Автор ресурса
  • #27
Я как бы в курсе этого был еще в момент, когда этот подправленный плагин был у меня в личке. Я лишь хотел, чтобы ты мне показал удаленный инклюд шопа в исходнике, о котором ты говорил. А то не вижу просто. Спасибо, что рассмешил.
Как жаль, что ты не увидел
Очень смешно мне становиться, когда я спустя год на ядре 3.1.5 загружаю абсолютно тот же плагин(не с обсуждений) и ты мне говоришь про какой-то фикс. Хватит оффтопить и пытаться что-то доказать)
 

LEII4A

Участник
Сообщения
741
Реакции
135
Как жаль, что ты не увидел
Очень смешно мне становиться, когда я спустя год на ядре 3.1.5 загружаю абсолютно тот же плагин(не с обсуждений) и ты мне говоришь про какой-то фикс. Хватит оффтопить и пытаться что-то доказать)
Оффтоп
 
Последнее редактирование:

Troyanskaya

Участник
Сообщения
442
Реакции
30
Здравствуйте.Нужна помощь.Не выдает очки.Плагин загружается,в чате пишет что покупка успешна , но очки не выдает.
css ob sm10
04 "[LK MODULE] Покупка опыта Levels Ranks" (1.0) by Narkus
03 "[Личный Кабинет] Core" (4.0.2) by 1mpulse
35 "[Levels Ranks] Core" (v3.1.5) by RoadSide Romeo & Wend4r
Компилировал исходник из #19сообщения. на sm 1.9.


вроде работает.очки выдает после того как сделаешь какого либо действие за которое даются очки от лр?
 
Последнее редактирование:

LEII4A

Участник
Сообщения
741
Реакции
135
Здравствуйте.Нужна помощь.Не выдает очки.Плагин загружается,в чате пишет что покупка успешна , но очки не выдает.
css ob sm10
04 "[LK MODULE] Покупка опыта Levels Ranks" (1.0) by Narkus
03 "[Личный Кабинет] Core" (4.0.2) by 1mpulse
35 "[Levels Ranks] Core" (v3.1.5) by RoadSide Romeo & Wend4r
Компилировал исходник из #19сообщения. на sm 1.9.


вроде работает.очки выдает после того как сделаешь какого либо действие за которое даются очки от лр?
тут дело в другом, как я понимаю очки выдаются только когда на сервере достаточное кол-во игроков для запуска ЛР статистики.(по умолчанию 4) Когда статистика начинает учитываться. И это баг плагина. Потому, что покупка прошла, а очки не идут. Деньги списываются в никуда.
 

Narkus

Участник
Сообщения
139
Реакции
92
  • Автор ресурса
  • #31
Оффтоп
Оффтоп
 

Troyanskaya

Участник
Сообщения
442
Реакции
30
тут дело в другом, как я понимаю очки выдаются только когда на сервере достаточное кол-во игроков для запуска ЛР статистики.(по умолчанию 4) Когда статистика начинает учитываться. И это баг плагина. Потому, что покупка прошла, а очки не идут. Деньги списываются в никуда.
не хороший баг.у меня стата от 10чел работает:D
 

Narkus

Участник
Сообщения
139
Реакции
92
  • Автор ресурса
  • #37
не хороший баг.у меня стата от 10чел работает:D
Извиняюсь, что поднимаю старую тему, но в чем следовательно проблема? Если ограничение стоит у Вас, то чем модуль плох?
Если бы я в 2018 году знал, то что можно обойти это, я бы обязательно сделал так. Но к сожалению фичу с лимитом я не проверял, ибо у меня лимит 4 игрока и не было проблем с покупкой)
Если кто знает, то просьба поделится)
 

Troyanskaya

Участник
Сообщения
442
Реакции
30
измени и будут начисляться, в чём собственно проблема то?
Если у меня стоит от 10 чел. А не по дэф 4, значит так нужно было сделать.не правда ли?
А объяснять каждому игроку почему у него не пополнился опыт такая себе затея.
Я спросил фикс будет ? Нет, значит так работает модуль.
 

LEII4A

Участник
Сообщения
741
Реакции
135
Извиняюсь, что поднимаю старую тему, но в чем следовательно проблема? Если ограничение стоит у Вас, то чем модуль плох?
Если бы я в 2018 году знал, то что можно обойти это, я бы обязательно сделал так. Но к сожалению фичу с лимитом я не проверял, ибо у меня лимит 4 игрока и не было проблем с покупкой)
Если кто знает, то просьба поделится)
Проблема в том, что если сервер пуст и условие в 4 человека не выполнено, то купленный опыт не прибавится, а деньги с ЛК спишутся... ну как вариант начинать считать статистику с 1 человека на сервере, тогда, как я понял и модуль купленный опыт будет добавлять
 

Narkus

Участник
Сообщения
139
Реакции
92
  • Автор ресурса
  • #40
Проблема в том, что если сервер пуст и условие в 4 человека не выполнено, то купленный опыт не прибавится, а деньги с ЛК спишутся... ну как вариант начинать считать статистику с 1 человека на сервере, тогда, как я понял и модуль купленный опыт будет добавлять
Честно, я даже не проверял это, потому что слабо верится, что функция LR_ChangeClientValue не работает, если нету нужного кол-ва игроков для работы LR (если ж нету нужного кол-ва игроков для опыта, то !lvl же должен работать и админское меню и выдача опыта через него так-же должно работать по идее, даже если нету нужного кол-ва людей).
 
Сверху Снизу