Преправяне на becomevip

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от Radeon » 20 Май 2022, 11:28

devilchy написа: 20 Май 2022, 02:50
Radeon написа: 19 Май 2022, 14:34 Пробвай този плъгин, само си настрой нещата от тук. Ако работи, тогава може да му сменим съобщенията че сега са само hud.

("amx_kills", "500"); // Необходими убийства
("amx_kills_flags", "bi"); // Флагове които ще се получат при достигане на убийствата
("amx_kills_savetype", "3"); //Запазване на убийствата по [1 - by name / 2 - by IP / 3 - by SteamID]
("amx_kills_expiredays", "10"); // След колко дни да се маха вип флага


Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <nvault>

// #define VIP_MODELS
// #define DHUDMESSAGE

#if defined DHUDMESSAGE
#include <dhudmessage>
#endif

new g_vault;

new g_iMaxPlayers;

new bool:g_bConnected[33];
new bool:g_bFlags[33];

new g_szFlags[22];

new g_kills[33];
new g_szSave[33][32];

new p_kills_for_vip, p_vip_flags;
new p_savetype, p_expire;

public plugin_init()
{
register_plugin("Pro Become VIP", "2.0", "didoWEE");

g_vault = nvault_open("pb_vip");
g_iMaxPlayers = get_maxplayers();

register_event("DeathMsg", "eDeath", "a")
RegisterHam(Ham_Spawn, "player", "fwdSpawn", 1);

p_kills_for_vip = register_cvar("amx_kills", "500"); // Needed kill to become VIP
p_vip_flags = register_cvar("amx_kills_flags", "bi"); // The flags which you get when you become VIP
p_savetype = register_cvar("amx_kills_savetype", "3"); // Save type [1 - by name / 2 - by IP / 3 - by SteamID]
p_expire = register_cvar("amx_kills_expiredays", "10"); // Expire days
}

public plugin_cfg()
{
nvault_prune(g_vault, 0, get_systime() - (86400 * get_pcvar_num(p_expire)));
get_pcvar_string(p_vip_flags, g_szFlags, charsmax(g_szFlags));
}

#if defined VIP_MODELS
public plugin_precache()
{
precache_model("models/player/VIP/Tvip/Tvip.mdl");
precache_model("models/player/VIP/CTvip/CTvip.mdl");
}
#endif

LoadData(id)
{
new data[16];
if(nvault_get(g_vault, g_szSave[id], data, charsmax(data))) g_kills[id] = str_to_num(data);
else g_kills[id] = 0;
}

SaveData(id)
{
new data[16];
num_to_str(g_kills[id], data, charsmax(data));
nvault_set(g_vault, g_szSave[id], data);
}

ShowHud(id)
{
#if defined DHUDMESSAGE
set_dhudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0);
show_dhudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#else
set_hudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0, -1);
show_hudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#endif
}

FlaggingFunc(id)
{
set_user_flags(id, read_flags(g_szFlags));
g_bFlags[id] = true;
}

public eDeath()
{
new killer = read_data(1);

if(killer && killer <= g_iMaxPlayers)
{
if(g_bConnected[killer])
{
if(killer != read_data(2))
{
if(!g_bFlags[killer])
{
g_kills[killer]++;

if(g_kills[killer] < get_pcvar_num(p_kills_for_vip)) ShowHud(killer);
else
if(g_kills[killer] == get_pcvar_num(p_kills_for_vip))
{
FlaggingFunc(killer);

#if defined DHUDMESSAGE
set_dhudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0);
show_dhudmessage(killer, "Congratilations^nYou are VIP");
#else
set_hudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0, -1);
show_hudmessage(killer, "Congratilations^nYou are VIP");
#endif
}
}
}
}
}
}

public fwdSpawn(id)
{
if(g_bConnected[id])
{
if (g_kills[id] < get_pcvar_num(p_kills_for_vip)) ShowHud(id);

#if defined VIP_MODELS
{
if(g_bFlags[id])
{
new CsTeams:team = cs_get_user_team(id);
switch(team)
{
case CS_TEAM_T: cs_set_user_model(id, "Tvip");
case CS_TEAM_CT: cs_set_user_model(id, "CTvip");
}
}
}
#endif
}
}

public client_connect(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = true;

new savetype = get_pcvar_num(p_savetype);
switch(savetype)
{
case 1: get_user_name(id, g_szSave[id], charsmax(g_szSave[]));
case 2: get_user_ip(id, g_szSave[id], charsmax(g_szSave[]));
case 3: get_user_authid(id, g_szSave[id], charsmax(g_szSave[]));
}

LoadData(id);

if(get_user_flags(id) & read_flags(g_szFlags)) g_bFlags[id] = true;
else
{
if(g_kills[id] >= get_pcvar_num(p_kills_for_vip)) FlaggingFunc(id);
else g_bFlags[id] = false;
}
}
}

public client_disconnected(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = false;
if(g_kills[id] > 0) SaveData(id);
}
}

public plugin_end()
{
for(new id=1; id <= g_iMaxPlayers; id++)
{
if(g_bConnected[id])
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
if(g_kills[id] > 0) SaveData(id);
}
}
}
nvault_close(g_vault);
}
Тествах го обаче след като сменя мапа флага се маха иначе си го аддва като достигнеш лимита но след мапа се маха ...
Това означава че някой друг плъгин ти рестартира правата. Трябва да сложиш become vip плъгина или по нагоре в plugins.ini или по-надолу, не си спомням точно. По логично ми е да го сложиш по надолу, за да може първия плъгин да си сложи правата и след него become vip да сложи вип флаговете и да не се изтрият.

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от devilchy » 20 Май 2022, 14:20

Radeon написа: 20 Май 2022, 11:28
devilchy написа: 20 Май 2022, 02:50
Radeon написа: 19 Май 2022, 14:34 Пробвай този плъгин, само си настрой нещата от тук. Ако работи, тогава може да му сменим съобщенията че сега са само hud.

("amx_kills", "500"); // Необходими убийства
("amx_kills_flags", "bi"); // Флагове които ще се получат при достигане на убийствата
("amx_kills_savetype", "3"); //Запазване на убийствата по [1 - by name / 2 - by IP / 3 - by SteamID]
("amx_kills_expiredays", "10"); // След колко дни да се маха вип флага


Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <nvault>

// #define VIP_MODELS
// #define DHUDMESSAGE

#if defined DHUDMESSAGE
#include <dhudmessage>
#endif

new g_vault;

new g_iMaxPlayers;

new bool:g_bConnected[33];
new bool:g_bFlags[33];

new g_szFlags[22];

new g_kills[33];
new g_szSave[33][32];

new p_kills_for_vip, p_vip_flags;
new p_savetype, p_expire;

public plugin_init()
{
register_plugin("Pro Become VIP", "2.0", "didoWEE");

g_vault = nvault_open("pb_vip");
g_iMaxPlayers = get_maxplayers();

register_event("DeathMsg", "eDeath", "a")
RegisterHam(Ham_Spawn, "player", "fwdSpawn", 1);

p_kills_for_vip = register_cvar("amx_kills", "500"); // Needed kill to become VIP
p_vip_flags = register_cvar("amx_kills_flags", "bi"); // The flags which you get when you become VIP
p_savetype = register_cvar("amx_kills_savetype", "3"); // Save type [1 - by name / 2 - by IP / 3 - by SteamID]
p_expire = register_cvar("amx_kills_expiredays", "10"); // Expire days
}

public plugin_cfg()
{
nvault_prune(g_vault, 0, get_systime() - (86400 * get_pcvar_num(p_expire)));
get_pcvar_string(p_vip_flags, g_szFlags, charsmax(g_szFlags));
}

#if defined VIP_MODELS
public plugin_precache()
{
precache_model("models/player/VIP/Tvip/Tvip.mdl");
precache_model("models/player/VIP/CTvip/CTvip.mdl");
}
#endif

LoadData(id)
{
new data[16];
if(nvault_get(g_vault, g_szSave[id], data, charsmax(data))) g_kills[id] = str_to_num(data);
else g_kills[id] = 0;
}

SaveData(id)
{
new data[16];
num_to_str(g_kills[id], data, charsmax(data));
nvault_set(g_vault, g_szSave[id], data);
}

ShowHud(id)
{
#if defined DHUDMESSAGE
set_dhudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0);
show_dhudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#else
set_hudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0, -1);
show_hudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#endif
}

FlaggingFunc(id)
{
set_user_flags(id, read_flags(g_szFlags));
g_bFlags[id] = true;
}

public eDeath()
{
new killer = read_data(1);

if(killer && killer <= g_iMaxPlayers)
{
if(g_bConnected[killer])
{
if(killer != read_data(2))
{
if(!g_bFlags[killer])
{
g_kills[killer]++;

if(g_kills[killer] < get_pcvar_num(p_kills_for_vip)) ShowHud(killer);
else
if(g_kills[killer] == get_pcvar_num(p_kills_for_vip))
{
FlaggingFunc(killer);

#if defined DHUDMESSAGE
set_dhudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0);
show_dhudmessage(killer, "Congratilations^nYou are VIP");
#else
set_hudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0, -1);
show_hudmessage(killer, "Congratilations^nYou are VIP");
#endif
}
}
}
}
}
}

public fwdSpawn(id)
{
if(g_bConnected[id])
{
if (g_kills[id] < get_pcvar_num(p_kills_for_vip)) ShowHud(id);

#if defined VIP_MODELS
{
if(g_bFlags[id])
{
new CsTeams:team = cs_get_user_team(id);
switch(team)
{
case CS_TEAM_T: cs_set_user_model(id, "Tvip");
case CS_TEAM_CT: cs_set_user_model(id, "CTvip");
}
}
}
#endif
}
}

public client_connect(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = true;

new savetype = get_pcvar_num(p_savetype);
switch(savetype)
{
case 1: get_user_name(id, g_szSave[id], charsmax(g_szSave[]));
case 2: get_user_ip(id, g_szSave[id], charsmax(g_szSave[]));
case 3: get_user_authid(id, g_szSave[id], charsmax(g_szSave[]));
}

LoadData(id);

if(get_user_flags(id) & read_flags(g_szFlags)) g_bFlags[id] = true;
else
{
if(g_kills[id] >= get_pcvar_num(p_kills_for_vip)) FlaggingFunc(id);
else g_bFlags[id] = false;
}
}
}

public client_disconnected(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = false;
if(g_kills[id] > 0) SaveData(id);
}
}

public plugin_end()
{
for(new id=1; id <= g_iMaxPlayers; id++)
{
if(g_bConnected[id])
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
if(g_kills[id] > 0) SaveData(id);
}
}
}
nvault_close(g_vault);
}
Тествах го обаче след като сменя мапа флага се маха иначе си го аддва като достигнеш лимита но след мапа се маха ...
Това означава че някой друг плъгин ти рестартира правата. Трябва да сложиш become vip плъгина или по нагоре в plugins.ini или по-надолу, не си спомням точно. По логично ми е да го сложиш по надолу, за да може първия плъгин да си сложи правата и след него become vip да сложи вип флаговете и да не се изтрият.
Разбрах проблем-а значи този плъгин не се харесва със амх банс като го махна флага не се маха при смяна на мапа а като амхбанс е пуснат няма значение къде е плъгина горе долу вип флага изчезва ...


Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 13 госта