• Гость, перед открытием темы прочитай описание раздела, чтобы не ошибиться. Любые вопросы по настройке сервера создаются в разделе Технической Поддержки.

Помощь Автосохранение выбора

HardTed

Участник
Сообщения
12
Симпатии
0
Баллы
57
#1
Хочу добавить в меню ножей автосохранение выбора. Меню надоедливое, появляется каждый раунд, да и открыть его можно через главное меню
Подскажите, пожалуйста.
Пытался взять автосохранение с оружейной
len += formatex(menu[len], charsmax(menu) - len, "^n^n\r8.\w %L \y[%L]", id, "MENU_AUTOSELECT", id, (WPN_AUTO_ON) ? "MOTD_ENABLED" : "MOTD_DISABLED")
Но дальше этой строки додумать не получилось
 

Вложения

ko1dun

Модератор
Сообщения
142
Симпатии
34
Баллы
104
#2
Этот плагин открывает меню лишь по команде и автоматически выдает выбранное оружие и не более.
Возможно это другой исходник?
 

HardTed

Участник
Сообщения
12
Симпатии
0
Баллы
57
#3
До неё идёт меню личного кабинета, а до личного кабинета идёт меню из самого мода
Вот ЛК
 

Вложения

ko1dun

Модератор
Сообщения
142
Симпатии
34
Баллы
104
#4
Просто функция fw_playerspawn_post только проверка и выдача выбранного в последний раз оружия
функция zp_user_humanized_post сбрасывает оружие, если survivor если нет, то просто выдает предыдущее оружие

Больше ничего нет
 

HardTed

Участник
Сообщения
12
Симпатии
0
Баллы
57
#5
Больше исходов нет, возможно где - то в моде спрятано, но я чот пока ничего найти не могу
 

Вложения

98richard98

Участник
Сообщения
50
Симпатии
2
Баллы
64
Возраст
26
#6
Выдрал с плагина ножей. С get_vaultdata не работал, поэтому не могу сказать точно


public client_authorized(id)
{
LoadData(id)
}

SaveData(id)
{

new authid[32]
get_user_authid(id, authid, 31)

new vaultkey[64]
new vaultdata[64]

format(vaultkey, 63, "KMOD_%s", authid)
format(vaultdata, 63, "%d", knife_model[id])
set_vaultdata(vaultkey, vaultdata)
}

LoadData(id)
{
new authid[32]
get_user_authid(id,authid,31)

new vaultkey[64], vaultdata[64]

format(vaultkey, 63, "KMOD_%s", authid)
get_vaultdata(vaultkey, vaultdata, 63)
knife_model[id] = str_to_num(vaultdata)

}
SaveData добавьте в место, где должно произойти сохранение.
 

AkeYlake

Участник
Сообщения
82
Симпатии
15
Баллы
64
#7
Выдрал с плагина ножей. С get_vaultdata не работал, поэтому не могу сказать точно
В теории должно работать, хотя я не проверял, я сохранения через nvault делаю.
Мой метод не много отличается от твоего и в своем я уверен и проверял.
Сам код записи и загрузки:
C:
public adr_save_player_money(pPlayer)
{
    new szAuth[32]; get_user_authid(pPlayer, szAuth, charsmax(szAuth));
    if(is_user_bot(pPlayer) || equal(szAuth, "ID_PENDING") ||  equal(szAuth, "STEAM_ID_LAN") ||  equal(szAuth, "VALVE_ID_LAN")) return PLUGIN_HANDLED;
    new VaultKey[64], VaultData[256]; new AuthID[35]; get_user_authid(pPlayer, AuthID, 34);
    format(VaultKey, 63, "%s-money", AuthID); format(VaultData, 255, "%i#", g_iUserMoney[pPlayer]);
    nvault_set(g_iNvault_Money, VaultKey, VaultData);
    return PLUGIN_CONTINUE;
}

public adr_load_player_money(pPlayer)
{
    new szAuth[32]; get_user_authid(pPlayer, szAuth, charsmax(szAuth));
    if(is_user_bot(pPlayer) || equal(szAuth, "ID_PENDING") ||  equal(szAuth, "STEAM_ID_LAN") ||  equal(szAuth, "VALVE_ID_LAN")) return PLUGIN_HANDLED;
    new VaultKey[64], VaultData[256]; new AuthID[35]; get_user_authid(pPlayer, AuthID, 34);
    format(VaultKey, 63, "%s-money", AuthID); format(VaultData, 255, "%i#", g_iUserMoney[pPlayer]);
    nvault_get(g_iNvault_Money, VaultKey, VaultData, 255); replace_all(VaultData, 255, "#", " ");
    new szMon[32]; parse(VaultData, szMon, 31); g_iUserMoney[pPlayer] = str_to_num(szMon);
    return PLUGIN_CONTINUE;
}
Объявление , включение и закрытие нвала:

C:
new g_iNvault_Money;

public plugin_cfg()
{
    g_iNvault_Money = nvault_open("adr_money_save_v1");
    if(g_iNvault_Money == INVALID_HANDLE)
       set_fail_state("Error opening nVault file!");
}

public plugin_end()
{
    nvault_close(g_iNvault_Money);
}
Функции сохранения и загрузки:

C:
public client_putinserver(id)
{
    adr_load_player_money(id);
}

public client_disconnect(id)
{
    adr_save_player_money(id);
}
Это все нужно грамотно вписать в исходник изменив g_iUserMoney на ту переменную, что тебе нужно сохранять. (Так же для удобство переименовать money в knife)
Авто открытие меню ножей надо убирать где-то в других плагинах по поиску консольных команд: "say /knife", "knife_zb", "knife", "/knife"
Хотя можно решить проблему просто костылем - сделать открытие меню через натив.
 
Сверху