VIP
|
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 |
aim_map2 Играчи: 4/16 |
|
VIP
|
93.123.16.4:27022 | Cs-PlovdiV.com - Aim Attack | aim_map2 | 4/16 |
AWP Models [XP System Support]
-
Lethality
Извън линия - VHE Mapper
- Мнения: 211
- Регистриран на: 06 Яну 2020, 15:41
- Местоположение: Германия
- Се отблагодари: 34 пъти
- Получена благодарност: 50 пъти
- Обратна връзка:
AWP Models [XP System Support]
Като напишеш amx_cvar am_save_choice в конзолата изкарва ли ти, че е на "1" ? Възможно е да не се е променил. Ако си е на 1, автора може да помогне на какво се дължи..
-
cgozzie
Извън линия - Потребител
- Мнения: 1320
- Регистриран на: 13 Окт 2016, 22:10
- Местоположение: Варна
- Се отблагодари: 250 пъти
- Получена благодарност: 43 пъти
-
zolfeca
Извън линия - Администратор
- Мнения: 419
- Регистриран на: 10 Окт 2016, 23:48
- Се отблагодари: 24 пъти
- Получена благодарност: 92 пъти
AWP Models [XP System Support]
Пробвай с това.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>
native crxranks_get_max_levels()
native crxranks_get_rank_by_level(level, buffer[], len)
native crxranks_get_user_level(id)
native crxranks_get_user_xp(id)
new const g_szNatives[][] =
{
"crxranks_get_max_levels",
"crxranks_get_rank_by_level",
"crxranks_get_user_level",
"crxranks_get_user_xp"
}
#if !defined m_pPlayer
#define m_pPlayer 41
#endif
#if defined client_disconnected
#define client_disconnect client_disconnected
#endif
#define PLUGIN_VERSION "2.1.4"
#define DEFAULT_V "models/v_awp.mdl"
#define DEFAULT_P "models/p_awp.mdl"
#define MAX_SOUND_LENGTH 128
const Float:DELAY_ON_CONNECT = 10.0
#if !defined MAX_NAME_LENGTH
#define MAX_NAME_LENGTH 32
#endif
#if !defined MAX_AUTHID_LENGTH
#define MAX_AUTHID_LENGTH 64
#endif
#if !defined MAX_PLAYERS
#define MAX_PLAYERS 32
#endif
enum _:AWP
{
NAME[MAX_NAME_LENGTH],
V_MODEL[MAX_SOUND_LENGTH],
P_MODEL[MAX_SOUND_LENGTH],
SELECT_SOUND[MAX_SOUND_LENGTH],
FLAG,
LEVEL,
bool:SHOW_RANK,
XP
}
new Array:g_aAWP,
bool:g_bFirstTime[MAX_PLAYERS + 1],
bool:g_bRankSystem,
bool:g_bGetLevel,
bool:g_bGetXP,
g_eAWP[MAX_PLAYERS + 1][AWP],
g_szAuth[MAX_PLAYERS + 1][MAX_AUTHID_LENGTH],
g_iAWP[MAX_PLAYERS + 1],
g_iCallback,
g_pAtSpawn,
g_pSaveChoice,
g_iSaveChoice,
g_iAWPNum,
g_iVault
public plugin_init()
{
register_plugin("AWP Models", PLUGIN_VERSION, "OciXCrom")
register_cvar("CRXAWPModels", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
if(!g_iAWPNum)
set_fail_state("No AWPs found in the configuration file.")
register_dictionary("AWPModels.txt")
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
RegisterHam(Ham_Item_Deploy, "weapon_awp", "OnSelectAWP", 1)
register_clcmd("say /awp", "ShowMenu")
register_clcmd("say_team /awp", "ShowMenu")
g_iCallback = menu_makecallback("CheckAWPAccess")
g_pAtSpawn = register_cvar("am_open_at_spawn", "0")
g_pSaveChoice = register_cvar("am_save_choice", "0")
}
public plugin_precache()
{
if(LibraryExists("crxranks", LibType_Library))
g_bRankSystem = true
g_aAWP = ArrayCreate(AWP)
ReadFile()
}
public plugin_cfg()
{
g_iSaveChoice = get_pcvar_num(g_pSaveChoice)
if(g_iSaveChoice)
g_iVault = nvault_open("AWPModels")
}
public plugin_natives()
set_native_filter("native_filter")
public native_filter(const szNative[], id, iTrap)
{
if(!iTrap)
{
static i
for(i = 0; i < sizeof(g_szNatives); i++)
{
if(equal(szNative, g_szNatives[i]))
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public plugin_end()
{
ArrayDestroy(g_aAWP)
if(g_iSaveChoice)
nvault_close(g_iVault)
}
ReadFile()
{
new szConfigsName[256], szFilename[256]
get_configsdir(szConfigsName, charsmax(szConfigsName))
formatex(szFilename, charsmax(szFilename), "%s/AWPModels.ini", szConfigsName)
new iFilePointer = fopen(szFilename, "rt")
if(iFilePointer)
{
new eAWP[AWP], szData[160], szKey[32], szValue[128], iMaxLevels
if(g_bRankSystem)
iMaxLevels = crxranks_get_max_levels()
while(!feof(iFilePointer))
{
fgets(iFilePointer, szData, charsmax(szData))
trim(szData)
switch(szData[0])
{
case EOS, '#', ';': continue
case '[':
{
if(szData[strlen(szData) - 1] == ']')
{
if(g_iAWPNum)
PushAWP(eAWP)
g_iAWPNum++
replace(szData, charsmax(szData), "[", "")
replace(szData, charsmax(szData), "]", "")
copy(eAWP[NAME], charsmax(eAWP[NAME]), szData)
eAWP[V_MODEL][0] = EOS
eAWP[P_MODEL][0] = EOS
eAWP[SELECT_SOUND][0] = EOS
eAWP[FLAG] = ADMIN_ALL
if(g_bRankSystem)
{
eAWP[LEVEL] = 0
eAWP[SHOW_RANK] = false
eAWP[XP] = 0
}
}
else continue
}
default:
{
strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
trim(szKey); trim(szValue)
if(equal(szKey, "FLAG"))
eAWP[FLAG] = read_flags(szValue)
else if(equal(szKey, "LEVEL") && g_bRankSystem)
{
eAWP[LEVEL] = clamp(str_to_num(szValue), 0, iMaxLevels)
if(!g_bGetLevel)
g_bGetLevel = true
}
else if(equal(szKey, "SHOW_RANK") && g_bRankSystem)
eAWP[SHOW_RANK] = _:clamp(str_to_num(szValue), false, true)
else if(equal(szKey, "XP") && g_bRankSystem)
{
eAWP[XP] = _:clamp(str_to_num(szValue), 0)
if(!g_bGetXP)
g_bGetXP = true
}
else if(equal(szKey, "V_MODEL"))
{
if(!file_exists(szValue))
log_amx("ERROR: model ^"%s^" not found!", szValue)
else
{
precache_model(szValue)
copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), szValue)
}
}
else if(equal(szKey, "P_MODEL"))
{
if(!file_exists(szValue))
log_amx("ERROR: model ^"%s^" not found!", szValue)
else
{
precache_model(szValue)
copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), szValue)
}
}
else if(equal(szKey, "SELECT_SOUND"))
{
precache_sound(szValue)
copy(eAWP[SELECT_SOUND], charsmax(eAWP[SELECT_SOUND]), szValue)
}
}
}
}
if(g_iAWPNum)
PushAWP(eAWP)
fclose(iFilePointer)
}
}
public client_authorized(id, const szAuth[])
{
g_bFirstTime[id] = true
ArrayGetArray(g_aAWP, 0, g_eAWP[id])
g_iAWP[id] = 0
if(g_iSaveChoice)
{
get_user_authid(id, g_szAuth[id], charsmax(g_szAuth[]))
set_task(DELAY_ON_CONNECT, "load_data", id)
}
}
public load_data(id)
{
if(is_user_connected(id))
{
use_vault(id, false)
}
}
public client_disconnect(id)
{
if(g_iSaveChoice)
UseVault(id, true)
}
public ShowMenu(id)
{
static eAWP[AWP]
new szTitle[128], szItem[128], iLevel, iXP
formatex(szTitle, charsmax(szTitle), "%L", id, "AM_MENU_TITLE")
if(g_bGetLevel)
iLevel = crxranks_get_user_level(id)
if(g_bGetXP)
iXP = crxranks_get_user_xp(id)
new iMenu = menu_create(szTitle, "MenuHandler")
for(new iFlags = get_user_flags(id), i; i < g_iAWPNum; i++)
{
ArrayGetArray(g_aAWP, i, eAWP)
copy(szItem, charsmax(szItem), eAWP[NAME])
if(g_bRankSystem)
{
if(eAWP[LEVEL] && iLevel < eAWP[LEVEL])
{
if(eAWP[SHOW_RANK])
{
static szRank[32]
crxranks_get_rank_by_level(eAWP[LEVEL], szRank, charsmax(szRank))
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_RANK", szRank)
}
else
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_LEVEL", eAWP[LEVEL])
}
if(eAWP[XP] && iXP < eAWP[XP])
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_XP", eAWP[XP])
}
if(eAWP[FLAG] != ADMIN_ALL && !(iFlags & eAWP[FLAG]))
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_VIP_ONLY")
if(g_iAWP[id] == i)
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_SELECTED")
menu_additem(iMenu, szItem, eAWP[NAME], eAWP[FLAG], g_iCallback)
}
if(menu_pages(iMenu) > 1)
{
formatex(szItem, charsmax(szItem), "%s%L", szTitle, id, "AM_MENU_TITLE_PAGE")
menu_setprop(iMenu, MPROP_TITLE, szItem)
}
menu_display(id, iMenu)
return PLUGIN_HANDLED
}
public MenuHandler(id, iMenu, iItem)
{
if(iItem != MENU_EXIT)
{
g_iAWP[id] = iItem
ArrayGetArray(g_aAWP, iItem, g_eAWP[id])
if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP)
RefreshAWPModel(id)
new szName[MAX_NAME_LENGTH], iUnused
menu_item_getinfo(iMenu, iItem, iUnused, szName, charsmax(szName), .callback = iUnused)
CC_SendMessage(id, "%L %L", id, "AM_CHAT_PREFIX", id, "AM_CHAT_SELECTED", szName)
if(g_eAWP[id][SELECT_SOUND][0])
engfunc(EngFunc_EmitSound, id, CHAN_AUTO, g_eAWP[id][SELECT_SOUND], 1.0, ATTN_NORM, 0, PITCH_NORM)
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
public CheckAWPAccess(id, iMenu, iItem)
return ((g_iAWP[id] == iItem) || !HasAWPAccess(id, iItem)) ? ITEM_DISABLED : ITEM_ENABLED
public OnPlayerSpawn(id)
{
if(is_user_alive(id) && get_pcvar_num(g_pAtSpawn) && !g_iAWP[id] && g_bFirstTime[id])
{
g_bFirstTime[id] = false
ShowMenu(id)
}
}
public OnSelectAWP(iEnt)
{
new id = get_pdata_cbase(iEnt, m_pPlayer, 4)
if(is_user_connected(id))
RefreshAWPModel(id)
}
RefreshAWPModel(const id)
{
set_pev(id, pev_viewmodel2, g_eAWP[id][V_MODEL])
set_pev(id, pev_weaponmodel2, g_eAWP[id][P_MODEL])
}
PushAWP(eAWP[AWP])
{
if(!eAWP[V_MODEL][0])
copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), DEFAULT_V)
if(!eAWP[P_MODEL][0])
copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), DEFAULT_P)
ArrayPushArray(g_aAWP, eAWP)
}
bool:HasAWPAccess(const id, const iAWP)
{
static eAWP[AWP]
ArrayGetArray(g_aAWP, iAWP, eAWP)
if(g_bRankSystem)
{
if(eAWP[LEVEL] && crxranks_get_user_level(id) < eAWP[LEVEL])
return false
if(eAWP[XP] && crxranks_get_user_xp(id) < eAWP[XP])
return false
}
if(eAWP[FLAG] != ADMIN_ALL && !(get_user_flags(id) & eAWP[FLAG]))
return false
return true
}
UseVault(const id, const bool:bSave)
{
if(bSave)
{
static szData[4]
num_to_str(g_iAWP[id], szData, charsmax(szData))
nvault_set(g_iVault, g_szAuth[id], szData)
}
else
{
static iAWP
iAWP = nvault_get(g_iVault, g_szAuth[id])
if(iAWP > g_iAWPNum)
iAWP = 0
if(iAWP && HasAWPAccess(id, iAWP))
{
g_iAWP[id] = iAWP
ArrayGetArray(g_aAWP, iAWP, g_eAWP[id])
if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP)
RefreshAWPModel(id)
}
}
}
-
cgozzie
Извън линия - Потребител
- Мнения: 1320
- Регистриран на: 13 Окт 2016, 22:10
- Местоположение: Варна
- Се отблагодари: 250 пъти
- Получена благодарност: 43 пъти
AWP Models [XP System Support]
Дава грешкиzolfeca написа: ↑05 Сеп 2021, 01:48 Пробвай с това.Код за потвърждение: Избери целия код
#include <amxmodx> #include <amxmisc> #include <cromchat> #include <fakemeta> #include <hamsandwich> #include <nvault> native crxranks_get_max_levels() native crxranks_get_rank_by_level(level, buffer[], len) native crxranks_get_user_level(id) native crxranks_get_user_xp(id) new const g_szNatives[][] = { "crxranks_get_max_levels", "crxranks_get_rank_by_level", "crxranks_get_user_level", "crxranks_get_user_xp" } #if !defined m_pPlayer #define m_pPlayer 41 #endif #if defined client_disconnected #define client_disconnect client_disconnected #endif #define PLUGIN_VERSION "2.1.4" #define DEFAULT_V "models/v_awp.mdl" #define DEFAULT_P "models/p_awp.mdl" #define MAX_SOUND_LENGTH 128 const Float:DELAY_ON_CONNECT = 10.0 #if !defined MAX_NAME_LENGTH #define MAX_NAME_LENGTH 32 #endif #if !defined MAX_AUTHID_LENGTH #define MAX_AUTHID_LENGTH 64 #endif #if !defined MAX_PLAYERS #define MAX_PLAYERS 32 #endif enum _:AWP { NAME[MAX_NAME_LENGTH], V_MODEL[MAX_SOUND_LENGTH], P_MODEL[MAX_SOUND_LENGTH], SELECT_SOUND[MAX_SOUND_LENGTH], FLAG, LEVEL, bool:SHOW_RANK, XP } new Array:g_aAWP, bool:g_bFirstTime[MAX_PLAYERS + 1], bool:g_bRankSystem, bool:g_bGetLevel, bool:g_bGetXP, g_eAWP[MAX_PLAYERS + 1][AWP], g_szAuth[MAX_PLAYERS + 1][MAX_AUTHID_LENGTH], g_iAWP[MAX_PLAYERS + 1], g_iCallback, g_pAtSpawn, g_pSaveChoice, g_iSaveChoice, g_iAWPNum, g_iVault public plugin_init() { register_plugin("AWP Models", PLUGIN_VERSION, "OciXCrom") register_cvar("CRXAWPModels", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED) if(!g_iAWPNum) set_fail_state("No AWPs found in the configuration file.") register_dictionary("AWPModels.txt") RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1) RegisterHam(Ham_Item_Deploy, "weapon_awp", "OnSelectAWP", 1) register_clcmd("say /awp", "ShowMenu") register_clcmd("say_team /awp", "ShowMenu") g_iCallback = menu_makecallback("CheckAWPAccess") g_pAtSpawn = register_cvar("am_open_at_spawn", "0") g_pSaveChoice = register_cvar("am_save_choice", "0") } public plugin_precache() { if(LibraryExists("crxranks", LibType_Library)) g_bRankSystem = true g_aAWP = ArrayCreate(AWP) ReadFile() } public plugin_cfg() { g_iSaveChoice = get_pcvar_num(g_pSaveChoice) if(g_iSaveChoice) g_iVault = nvault_open("AWPModels") } public plugin_natives() set_native_filter("native_filter") public native_filter(const szNative[], id, iTrap) { if(!iTrap) { static i for(i = 0; i < sizeof(g_szNatives); i++) { if(equal(szNative, g_szNatives[i])) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public plugin_end() { ArrayDestroy(g_aAWP) if(g_iSaveChoice) nvault_close(g_iVault) } ReadFile() { new szConfigsName[256], szFilename[256] get_configsdir(szConfigsName, charsmax(szConfigsName)) formatex(szFilename, charsmax(szFilename), "%s/AWPModels.ini", szConfigsName) new iFilePointer = fopen(szFilename, "rt") if(iFilePointer) { new eAWP[AWP], szData[160], szKey[32], szValue[128], iMaxLevels if(g_bRankSystem) iMaxLevels = crxranks_get_max_levels() while(!feof(iFilePointer)) { fgets(iFilePointer, szData, charsmax(szData)) trim(szData) switch(szData[0]) { case EOS, '#', ';': continue case '[': { if(szData[strlen(szData) - 1] == ']') { if(g_iAWPNum) PushAWP(eAWP) g_iAWPNum++ replace(szData, charsmax(szData), "[", "") replace(szData, charsmax(szData), "]", "") copy(eAWP[NAME], charsmax(eAWP[NAME]), szData) eAWP[V_MODEL][0] = EOS eAWP[P_MODEL][0] = EOS eAWP[SELECT_SOUND][0] = EOS eAWP[FLAG] = ADMIN_ALL if(g_bRankSystem) { eAWP[LEVEL] = 0 eAWP[SHOW_RANK] = false eAWP[XP] = 0 } } else continue } default: { strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=') trim(szKey); trim(szValue) if(equal(szKey, "FLAG")) eAWP[FLAG] = read_flags(szValue) else if(equal(szKey, "LEVEL") && g_bRankSystem) { eAWP[LEVEL] = clamp(str_to_num(szValue), 0, iMaxLevels) if(!g_bGetLevel) g_bGetLevel = true } else if(equal(szKey, "SHOW_RANK") && g_bRankSystem) eAWP[SHOW_RANK] = _:clamp(str_to_num(szValue), false, true) else if(equal(szKey, "XP") && g_bRankSystem) { eAWP[XP] = _:clamp(str_to_num(szValue), 0) if(!g_bGetXP) g_bGetXP = true } else if(equal(szKey, "V_MODEL")) { if(!file_exists(szValue)) log_amx("ERROR: model ^"%s^" not found!", szValue) else { precache_model(szValue) copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), szValue) } } else if(equal(szKey, "P_MODEL")) { if(!file_exists(szValue)) log_amx("ERROR: model ^"%s^" not found!", szValue) else { precache_model(szValue) copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), szValue) } } else if(equal(szKey, "SELECT_SOUND")) { precache_sound(szValue) copy(eAWP[SELECT_SOUND], charsmax(eAWP[SELECT_SOUND]), szValue) } } } } if(g_iAWPNum) PushAWP(eAWP) fclose(iFilePointer) } } public client_authorized(id, const szAuth[]) { g_bFirstTime[id] = true ArrayGetArray(g_aAWP, 0, g_eAWP[id]) g_iAWP[id] = 0 if(g_iSaveChoice) { get_user_authid(id, g_szAuth[id], charsmax(g_szAuth[])) set_task(DELAY_ON_CONNECT, "load_data", id) } } public load_data(id) { if(is_user_connected(id)) { use_vault(id, false) } } public client_disconnect(id) { if(g_iSaveChoice) UseVault(id, true) } public ShowMenu(id) { static eAWP[AWP] new szTitle[128], szItem[128], iLevel, iXP formatex(szTitle, charsmax(szTitle), "%L", id, "AM_MENU_TITLE") if(g_bGetLevel) iLevel = crxranks_get_user_level(id) if(g_bGetXP) iXP = crxranks_get_user_xp(id) new iMenu = menu_create(szTitle, "MenuHandler") for(new iFlags = get_user_flags(id), i; i < g_iAWPNum; i++) { ArrayGetArray(g_aAWP, i, eAWP) copy(szItem, charsmax(szItem), eAWP[NAME]) if(g_bRankSystem) { if(eAWP[LEVEL] && iLevel < eAWP[LEVEL]) { if(eAWP[SHOW_RANK]) { static szRank[32] crxranks_get_rank_by_level(eAWP[LEVEL], szRank, charsmax(szRank)) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_RANK", szRank) } else format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_LEVEL", eAWP[LEVEL]) } if(eAWP[XP] && iXP < eAWP[XP]) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_XP", eAWP[XP]) } if(eAWP[FLAG] != ADMIN_ALL && !(iFlags & eAWP[FLAG])) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_VIP_ONLY") if(g_iAWP[id] == i) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_SELECTED") menu_additem(iMenu, szItem, eAWP[NAME], eAWP[FLAG], g_iCallback) } if(menu_pages(iMenu) > 1) { formatex(szItem, charsmax(szItem), "%s%L", szTitle, id, "AM_MENU_TITLE_PAGE") menu_setprop(iMenu, MPROP_TITLE, szItem) } menu_display(id, iMenu) return PLUGIN_HANDLED } public MenuHandler(id, iMenu, iItem) { if(iItem != MENU_EXIT) { g_iAWP[id] = iItem ArrayGetArray(g_aAWP, iItem, g_eAWP[id]) if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP) RefreshAWPModel(id) new szName[MAX_NAME_LENGTH], iUnused menu_item_getinfo(iMenu, iItem, iUnused, szName, charsmax(szName), .callback = iUnused) CC_SendMessage(id, "%L %L", id, "AM_CHAT_PREFIX", id, "AM_CHAT_SELECTED", szName) if(g_eAWP[id][SELECT_SOUND][0]) engfunc(EngFunc_EmitSound, id, CHAN_AUTO, g_eAWP[id][SELECT_SOUND], 1.0, ATTN_NORM, 0, PITCH_NORM) } menu_destroy(iMenu) return PLUGIN_HANDLED } public CheckAWPAccess(id, iMenu, iItem) return ((g_iAWP[id] == iItem) || !HasAWPAccess(id, iItem)) ? ITEM_DISABLED : ITEM_ENABLED public OnPlayerSpawn(id) { if(is_user_alive(id) && get_pcvar_num(g_pAtSpawn) && !g_iAWP[id] && g_bFirstTime[id]) { g_bFirstTime[id] = false ShowMenu(id) } } public OnSelectAWP(iEnt) { new id = get_pdata_cbase(iEnt, m_pPlayer, 4) if(is_user_connected(id)) RefreshAWPModel(id) } RefreshAWPModel(const id) { set_pev(id, pev_viewmodel2, g_eAWP[id][V_MODEL]) set_pev(id, pev_weaponmodel2, g_eAWP[id][P_MODEL]) } PushAWP(eAWP[AWP]) { if(!eAWP[V_MODEL][0]) copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), DEFAULT_V) if(!eAWP[P_MODEL][0]) copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), DEFAULT_P) ArrayPushArray(g_aAWP, eAWP) } bool:HasAWPAccess(const id, const iAWP) { static eAWP[AWP] ArrayGetArray(g_aAWP, iAWP, eAWP) if(g_bRankSystem) { if(eAWP[LEVEL] && crxranks_get_user_level(id) < eAWP[LEVEL]) return false if(eAWP[XP] && crxranks_get_user_xp(id) < eAWP[XP]) return false } if(eAWP[FLAG] != ADMIN_ALL && !(get_user_flags(id) & eAWP[FLAG])) return false return true } UseVault(const id, const bool:bSave) { if(bSave) { static szData[4] num_to_str(g_iAWP[id], szData, charsmax(szData)) nvault_set(g_iVault, g_szAuth[id], szData) } else { static iAWP iAWP = nvault_get(g_iVault, g_szAuth[id]) if(iAWP > g_iAWPNum) iAWP = 0 if(iAWP && HasAWPAccess(id, iAWP)) { g_iAWP[id] = iAWP ArrayGetArray(g_aAWP, iAWP, g_eAWP[id]) if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP) RefreshAWPModel(id) } } }
Код за потвърждение: Избери целия код
//AMXXPC compile.exe
// by the AMX Mod X Dev Team
//// crx_awp_models.sma
//
// E:\addons\AMXCOMPILER\AMXMOD X\crx_awp_models.sma(261) : error 017: undefined symbol "use_vault"
//
// 1 Error.
// Could not locate output file E:\addons\AMXCOMPILER\AMXMOD X\compiled\crx_awp_models.amx (compile failed).
//
// Compilation Time: 0.37 sec
// ----------------------------------------
Press enter to exit ...
-
zolfeca
Извън линия - Администратор
- Мнения: 419
- Регистриран на: 10 Окт 2016, 23:48
- Се отблагодари: 24 пъти
- Получена благодарност: 92 пъти
AWP Models [XP System Support]
уф
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>
native crxranks_get_max_levels()
native crxranks_get_rank_by_level(level, buffer[], len)
native crxranks_get_user_level(id)
native crxranks_get_user_xp(id)
new const g_szNatives[][] =
{
"crxranks_get_max_levels",
"crxranks_get_rank_by_level",
"crxranks_get_user_level",
"crxranks_get_user_xp"
}
#if !defined m_pPlayer
#define m_pPlayer 41
#endif
#if defined client_disconnected
#define client_disconnect client_disconnected
#endif
#define PLUGIN_VERSION "2.1.4"
#define DEFAULT_V "models/v_awp.mdl"
#define DEFAULT_P "models/p_awp.mdl"
#define MAX_SOUND_LENGTH 128
const Float:DELAY_ON_CONNECT = 10.0
#if !defined MAX_NAME_LENGTH
#define MAX_NAME_LENGTH 32
#endif
#if !defined MAX_AUTHID_LENGTH
#define MAX_AUTHID_LENGTH 64
#endif
#if !defined MAX_PLAYERS
#define MAX_PLAYERS 32
#endif
enum _:AWP
{
NAME[MAX_NAME_LENGTH],
V_MODEL[MAX_SOUND_LENGTH],
P_MODEL[MAX_SOUND_LENGTH],
SELECT_SOUND[MAX_SOUND_LENGTH],
FLAG,
LEVEL,
bool:SHOW_RANK,
XP
}
new Array:g_aAWP,
bool:g_bFirstTime[MAX_PLAYERS + 1],
bool:g_bRankSystem,
bool:g_bGetLevel,
bool:g_bGetXP,
g_eAWP[MAX_PLAYERS + 1][AWP],
g_szAuth[MAX_PLAYERS + 1][MAX_AUTHID_LENGTH],
g_iAWP[MAX_PLAYERS + 1],
g_iCallback,
g_pAtSpawn,
g_pSaveChoice,
g_iSaveChoice,
g_iAWPNum,
g_iVault
public plugin_init()
{
register_plugin("AWP Models", PLUGIN_VERSION, "OciXCrom")
register_cvar("CRXAWPModels", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
if(!g_iAWPNum)
set_fail_state("No AWPs found in the configuration file.")
register_dictionary("AWPModels.txt")
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
RegisterHam(Ham_Item_Deploy, "weapon_awp", "OnSelectAWP", 1)
register_clcmd("say /awp", "ShowMenu")
register_clcmd("say_team /awp", "ShowMenu")
g_iCallback = menu_makecallback("CheckAWPAccess")
g_pAtSpawn = register_cvar("am_open_at_spawn", "0")
g_pSaveChoice = register_cvar("am_save_choice", "0")
}
public plugin_precache()
{
if(LibraryExists("crxranks", LibType_Library))
g_bRankSystem = true
g_aAWP = ArrayCreate(AWP)
ReadFile()
}
public plugin_cfg()
{
g_iSaveChoice = get_pcvar_num(g_pSaveChoice)
if(g_iSaveChoice)
g_iVault = nvault_open("AWPModels")
}
public plugin_natives()
set_native_filter("native_filter")
public native_filter(const szNative[], id, iTrap)
{
if(!iTrap)
{
static i
for(i = 0; i < sizeof(g_szNatives); i++)
{
if(equal(szNative, g_szNatives[i]))
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public plugin_end()
{
ArrayDestroy(g_aAWP)
if(g_iSaveChoice)
nvault_close(g_iVault)
}
ReadFile()
{
new szConfigsName[256], szFilename[256]
get_configsdir(szConfigsName, charsmax(szConfigsName))
formatex(szFilename, charsmax(szFilename), "%s/AWPModels.ini", szConfigsName)
new iFilePointer = fopen(szFilename, "rt")
if(iFilePointer)
{
new eAWP[AWP], szData[160], szKey[32], szValue[128], iMaxLevels
if(g_bRankSystem)
iMaxLevels = crxranks_get_max_levels()
while(!feof(iFilePointer))
{
fgets(iFilePointer, szData, charsmax(szData))
trim(szData)
switch(szData[0])
{
case EOS, '#', ';': continue
case '[':
{
if(szData[strlen(szData) - 1] == ']')
{
if(g_iAWPNum)
PushAWP(eAWP)
g_iAWPNum++
replace(szData, charsmax(szData), "[", "")
replace(szData, charsmax(szData), "]", "")
copy(eAWP[NAME], charsmax(eAWP[NAME]), szData)
eAWP[V_MODEL][0] = EOS
eAWP[P_MODEL][0] = EOS
eAWP[SELECT_SOUND][0] = EOS
eAWP[FLAG] = ADMIN_ALL
if(g_bRankSystem)
{
eAWP[LEVEL] = 0
eAWP[SHOW_RANK] = false
eAWP[XP] = 0
}
}
else continue
}
default:
{
strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
trim(szKey); trim(szValue)
if(equal(szKey, "FLAG"))
eAWP[FLAG] = read_flags(szValue)
else if(equal(szKey, "LEVEL") && g_bRankSystem)
{
eAWP[LEVEL] = clamp(str_to_num(szValue), 0, iMaxLevels)
if(!g_bGetLevel)
g_bGetLevel = true
}
else if(equal(szKey, "SHOW_RANK") && g_bRankSystem)
eAWP[SHOW_RANK] = _:clamp(str_to_num(szValue), false, true)
else if(equal(szKey, "XP") && g_bRankSystem)
{
eAWP[XP] = _:clamp(str_to_num(szValue), 0)
if(!g_bGetXP)
g_bGetXP = true
}
else if(equal(szKey, "V_MODEL"))
{
if(!file_exists(szValue))
log_amx("ERROR: model ^"%s^" not found!", szValue)
else
{
precache_model(szValue)
copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), szValue)
}
}
else if(equal(szKey, "P_MODEL"))
{
if(!file_exists(szValue))
log_amx("ERROR: model ^"%s^" not found!", szValue)
else
{
precache_model(szValue)
copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), szValue)
}
}
else if(equal(szKey, "SELECT_SOUND"))
{
precache_sound(szValue)
copy(eAWP[SELECT_SOUND], charsmax(eAWP[SELECT_SOUND]), szValue)
}
}
}
}
if(g_iAWPNum)
PushAWP(eAWP)
fclose(iFilePointer)
}
}
public client_authorized(id, const szAuth[])
{
g_bFirstTime[id] = true
ArrayGetArray(g_aAWP, 0, g_eAWP[id])
g_iAWP[id] = 0
if(g_iSaveChoice)
{
get_user_authid(id, g_szAuth[id], charsmax(g_szAuth[]))
set_task(DELAY_ON_CONNECT, "load_data", id)
}
}
public load_data(id)
{
if(is_user_connected(id))
{
UseVault(id, false)
}
}
public client_disconnect(id)
{
if(g_iSaveChoice)
UseVault(id, true)
}
public ShowMenu(id)
{
static eAWP[AWP]
new szTitle[128], szItem[128], iLevel, iXP
formatex(szTitle, charsmax(szTitle), "%L", id, "AM_MENU_TITLE")
if(g_bGetLevel)
iLevel = crxranks_get_user_level(id)
if(g_bGetXP)
iXP = crxranks_get_user_xp(id)
new iMenu = menu_create(szTitle, "MenuHandler")
for(new iFlags = get_user_flags(id), i; i < g_iAWPNum; i++)
{
ArrayGetArray(g_aAWP, i, eAWP)
copy(szItem, charsmax(szItem), eAWP[NAME])
if(g_bRankSystem)
{
if(eAWP[LEVEL] && iLevel < eAWP[LEVEL])
{
if(eAWP[SHOW_RANK])
{
static szRank[32]
crxranks_get_rank_by_level(eAWP[LEVEL], szRank, charsmax(szRank))
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_RANK", szRank)
}
else
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_LEVEL", eAWP[LEVEL])
}
if(eAWP[XP] && iXP < eAWP[XP])
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_XP", eAWP[XP])
}
if(eAWP[FLAG] != ADMIN_ALL && !(iFlags & eAWP[FLAG]))
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_VIP_ONLY")
if(g_iAWP[id] == i)
format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_SELECTED")
menu_additem(iMenu, szItem, eAWP[NAME], eAWP[FLAG], g_iCallback)
}
if(menu_pages(iMenu) > 1)
{
formatex(szItem, charsmax(szItem), "%s%L", szTitle, id, "AM_MENU_TITLE_PAGE")
menu_setprop(iMenu, MPROP_TITLE, szItem)
}
menu_display(id, iMenu)
return PLUGIN_HANDLED
}
public MenuHandler(id, iMenu, iItem)
{
if(iItem != MENU_EXIT)
{
g_iAWP[id] = iItem
ArrayGetArray(g_aAWP, iItem, g_eAWP[id])
if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP)
RefreshAWPModel(id)
new szName[MAX_NAME_LENGTH], iUnused
menu_item_getinfo(iMenu, iItem, iUnused, szName, charsmax(szName), .callback = iUnused)
CC_SendMessage(id, "%L %L", id, "AM_CHAT_PREFIX", id, "AM_CHAT_SELECTED", szName)
if(g_eAWP[id][SELECT_SOUND][0])
engfunc(EngFunc_EmitSound, id, CHAN_AUTO, g_eAWP[id][SELECT_SOUND], 1.0, ATTN_NORM, 0, PITCH_NORM)
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
public CheckAWPAccess(id, iMenu, iItem)
return ((g_iAWP[id] == iItem) || !HasAWPAccess(id, iItem)) ? ITEM_DISABLED : ITEM_ENABLED
public OnPlayerSpawn(id)
{
if(is_user_alive(id) && get_pcvar_num(g_pAtSpawn) && !g_iAWP[id] && g_bFirstTime[id])
{
g_bFirstTime[id] = false
ShowMenu(id)
}
}
public OnSelectAWP(iEnt)
{
new id = get_pdata_cbase(iEnt, m_pPlayer, 4)
if(is_user_connected(id))
RefreshAWPModel(id)
}
RefreshAWPModel(const id)
{
set_pev(id, pev_viewmodel2, g_eAWP[id][V_MODEL])
set_pev(id, pev_weaponmodel2, g_eAWP[id][P_MODEL])
}
PushAWP(eAWP[AWP])
{
if(!eAWP[V_MODEL][0])
copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), DEFAULT_V)
if(!eAWP[P_MODEL][0])
copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), DEFAULT_P)
ArrayPushArray(g_aAWP, eAWP)
}
bool:HasAWPAccess(const id, const iAWP)
{
static eAWP[AWP]
ArrayGetArray(g_aAWP, iAWP, eAWP)
if(g_bRankSystem)
{
if(eAWP[LEVEL] && crxranks_get_user_level(id) < eAWP[LEVEL])
return false
if(eAWP[XP] && crxranks_get_user_xp(id) < eAWP[XP])
return false
}
if(eAWP[FLAG] != ADMIN_ALL && !(get_user_flags(id) & eAWP[FLAG]))
return false
return true
}
UseVault(const id, const bool:bSave)
{
if(bSave)
{
static szData[4]
num_to_str(g_iAWP[id], szData, charsmax(szData))
nvault_set(g_iVault, g_szAuth[id], szData)
}
else
{
static iAWP
iAWP = nvault_get(g_iVault, g_szAuth[id])
if(iAWP > g_iAWPNum)
iAWP = 0
if(iAWP && HasAWPAccess(id, iAWP))
{
g_iAWP[id] = iAWP
ArrayGetArray(g_aAWP, iAWP, g_eAWP[id])
if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP)
RefreshAWPModel(id)
}
}
}
-
cgozzie
Извън линия - Потребител
- Мнения: 1320
- Регистриран на: 13 Окт 2016, 22:10
- Местоположение: Варна
- Се отблагодари: 250 пъти
- Получена благодарност: 43 пъти
AWP Models [XP System Support]
Не пак дефаута вади..zolfeca написа: ↑05 Сеп 2021, 02:05 уфКод за потвърждение: Избери целия код
#include <amxmodx> #include <amxmisc> #include <cromchat> #include <fakemeta> #include <hamsandwich> #include <nvault> native crxranks_get_max_levels() native crxranks_get_rank_by_level(level, buffer[], len) native crxranks_get_user_level(id) native crxranks_get_user_xp(id) new const g_szNatives[][] = { "crxranks_get_max_levels", "crxranks_get_rank_by_level", "crxranks_get_user_level", "crxranks_get_user_xp" } #if !defined m_pPlayer #define m_pPlayer 41 #endif #if defined client_disconnected #define client_disconnect client_disconnected #endif #define PLUGIN_VERSION "2.1.4" #define DEFAULT_V "models/v_awp.mdl" #define DEFAULT_P "models/p_awp.mdl" #define MAX_SOUND_LENGTH 128 const Float:DELAY_ON_CONNECT = 10.0 #if !defined MAX_NAME_LENGTH #define MAX_NAME_LENGTH 32 #endif #if !defined MAX_AUTHID_LENGTH #define MAX_AUTHID_LENGTH 64 #endif #if !defined MAX_PLAYERS #define MAX_PLAYERS 32 #endif enum _:AWP { NAME[MAX_NAME_LENGTH], V_MODEL[MAX_SOUND_LENGTH], P_MODEL[MAX_SOUND_LENGTH], SELECT_SOUND[MAX_SOUND_LENGTH], FLAG, LEVEL, bool:SHOW_RANK, XP } new Array:g_aAWP, bool:g_bFirstTime[MAX_PLAYERS + 1], bool:g_bRankSystem, bool:g_bGetLevel, bool:g_bGetXP, g_eAWP[MAX_PLAYERS + 1][AWP], g_szAuth[MAX_PLAYERS + 1][MAX_AUTHID_LENGTH], g_iAWP[MAX_PLAYERS + 1], g_iCallback, g_pAtSpawn, g_pSaveChoice, g_iSaveChoice, g_iAWPNum, g_iVault public plugin_init() { register_plugin("AWP Models", PLUGIN_VERSION, "OciXCrom") register_cvar("CRXAWPModels", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED) if(!g_iAWPNum) set_fail_state("No AWPs found in the configuration file.") register_dictionary("AWPModels.txt") RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1) RegisterHam(Ham_Item_Deploy, "weapon_awp", "OnSelectAWP", 1) register_clcmd("say /awp", "ShowMenu") register_clcmd("say_team /awp", "ShowMenu") g_iCallback = menu_makecallback("CheckAWPAccess") g_pAtSpawn = register_cvar("am_open_at_spawn", "0") g_pSaveChoice = register_cvar("am_save_choice", "0") } public plugin_precache() { if(LibraryExists("crxranks", LibType_Library)) g_bRankSystem = true g_aAWP = ArrayCreate(AWP) ReadFile() } public plugin_cfg() { g_iSaveChoice = get_pcvar_num(g_pSaveChoice) if(g_iSaveChoice) g_iVault = nvault_open("AWPModels") } public plugin_natives() set_native_filter("native_filter") public native_filter(const szNative[], id, iTrap) { if(!iTrap) { static i for(i = 0; i < sizeof(g_szNatives); i++) { if(equal(szNative, g_szNatives[i])) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public plugin_end() { ArrayDestroy(g_aAWP) if(g_iSaveChoice) nvault_close(g_iVault) } ReadFile() { new szConfigsName[256], szFilename[256] get_configsdir(szConfigsName, charsmax(szConfigsName)) formatex(szFilename, charsmax(szFilename), "%s/AWPModels.ini", szConfigsName) new iFilePointer = fopen(szFilename, "rt") if(iFilePointer) { new eAWP[AWP], szData[160], szKey[32], szValue[128], iMaxLevels if(g_bRankSystem) iMaxLevels = crxranks_get_max_levels() while(!feof(iFilePointer)) { fgets(iFilePointer, szData, charsmax(szData)) trim(szData) switch(szData[0]) { case EOS, '#', ';': continue case '[': { if(szData[strlen(szData) - 1] == ']') { if(g_iAWPNum) PushAWP(eAWP) g_iAWPNum++ replace(szData, charsmax(szData), "[", "") replace(szData, charsmax(szData), "]", "") copy(eAWP[NAME], charsmax(eAWP[NAME]), szData) eAWP[V_MODEL][0] = EOS eAWP[P_MODEL][0] = EOS eAWP[SELECT_SOUND][0] = EOS eAWP[FLAG] = ADMIN_ALL if(g_bRankSystem) { eAWP[LEVEL] = 0 eAWP[SHOW_RANK] = false eAWP[XP] = 0 } } else continue } default: { strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=') trim(szKey); trim(szValue) if(equal(szKey, "FLAG")) eAWP[FLAG] = read_flags(szValue) else if(equal(szKey, "LEVEL") && g_bRankSystem) { eAWP[LEVEL] = clamp(str_to_num(szValue), 0, iMaxLevels) if(!g_bGetLevel) g_bGetLevel = true } else if(equal(szKey, "SHOW_RANK") && g_bRankSystem) eAWP[SHOW_RANK] = _:clamp(str_to_num(szValue), false, true) else if(equal(szKey, "XP") && g_bRankSystem) { eAWP[XP] = _:clamp(str_to_num(szValue), 0) if(!g_bGetXP) g_bGetXP = true } else if(equal(szKey, "V_MODEL")) { if(!file_exists(szValue)) log_amx("ERROR: model ^"%s^" not found!", szValue) else { precache_model(szValue) copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), szValue) } } else if(equal(szKey, "P_MODEL")) { if(!file_exists(szValue)) log_amx("ERROR: model ^"%s^" not found!", szValue) else { precache_model(szValue) copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), szValue) } } else if(equal(szKey, "SELECT_SOUND")) { precache_sound(szValue) copy(eAWP[SELECT_SOUND], charsmax(eAWP[SELECT_SOUND]), szValue) } } } } if(g_iAWPNum) PushAWP(eAWP) fclose(iFilePointer) } } public client_authorized(id, const szAuth[]) { g_bFirstTime[id] = true ArrayGetArray(g_aAWP, 0, g_eAWP[id]) g_iAWP[id] = 0 if(g_iSaveChoice) { get_user_authid(id, g_szAuth[id], charsmax(g_szAuth[])) set_task(DELAY_ON_CONNECT, "load_data", id) } } public load_data(id) { if(is_user_connected(id)) { UseVault(id, false) } } public client_disconnect(id) { if(g_iSaveChoice) UseVault(id, true) } public ShowMenu(id) { static eAWP[AWP] new szTitle[128], szItem[128], iLevel, iXP formatex(szTitle, charsmax(szTitle), "%L", id, "AM_MENU_TITLE") if(g_bGetLevel) iLevel = crxranks_get_user_level(id) if(g_bGetXP) iXP = crxranks_get_user_xp(id) new iMenu = menu_create(szTitle, "MenuHandler") for(new iFlags = get_user_flags(id), i; i < g_iAWPNum; i++) { ArrayGetArray(g_aAWP, i, eAWP) copy(szItem, charsmax(szItem), eAWP[NAME]) if(g_bRankSystem) { if(eAWP[LEVEL] && iLevel < eAWP[LEVEL]) { if(eAWP[SHOW_RANK]) { static szRank[32] crxranks_get_rank_by_level(eAWP[LEVEL], szRank, charsmax(szRank)) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_RANK", szRank) } else format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_LEVEL", eAWP[LEVEL]) } if(eAWP[XP] && iXP < eAWP[XP]) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_XP", eAWP[XP]) } if(eAWP[FLAG] != ADMIN_ALL && !(iFlags & eAWP[FLAG])) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_VIP_ONLY") if(g_iAWP[id] == i) format(szItem, charsmax(szItem), "%s %L", szItem, id, "AM_MENU_SELECTED") menu_additem(iMenu, szItem, eAWP[NAME], eAWP[FLAG], g_iCallback) } if(menu_pages(iMenu) > 1) { formatex(szItem, charsmax(szItem), "%s%L", szTitle, id, "AM_MENU_TITLE_PAGE") menu_setprop(iMenu, MPROP_TITLE, szItem) } menu_display(id, iMenu) return PLUGIN_HANDLED } public MenuHandler(id, iMenu, iItem) { if(iItem != MENU_EXIT) { g_iAWP[id] = iItem ArrayGetArray(g_aAWP, iItem, g_eAWP[id]) if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP) RefreshAWPModel(id) new szName[MAX_NAME_LENGTH], iUnused menu_item_getinfo(iMenu, iItem, iUnused, szName, charsmax(szName), .callback = iUnused) CC_SendMessage(id, "%L %L", id, "AM_CHAT_PREFIX", id, "AM_CHAT_SELECTED", szName) if(g_eAWP[id][SELECT_SOUND][0]) engfunc(EngFunc_EmitSound, id, CHAN_AUTO, g_eAWP[id][SELECT_SOUND], 1.0, ATTN_NORM, 0, PITCH_NORM) } menu_destroy(iMenu) return PLUGIN_HANDLED } public CheckAWPAccess(id, iMenu, iItem) return ((g_iAWP[id] == iItem) || !HasAWPAccess(id, iItem)) ? ITEM_DISABLED : ITEM_ENABLED public OnPlayerSpawn(id) { if(is_user_alive(id) && get_pcvar_num(g_pAtSpawn) && !g_iAWP[id] && g_bFirstTime[id]) { g_bFirstTime[id] = false ShowMenu(id) } } public OnSelectAWP(iEnt) { new id = get_pdata_cbase(iEnt, m_pPlayer, 4) if(is_user_connected(id)) RefreshAWPModel(id) } RefreshAWPModel(const id) { set_pev(id, pev_viewmodel2, g_eAWP[id][V_MODEL]) set_pev(id, pev_weaponmodel2, g_eAWP[id][P_MODEL]) } PushAWP(eAWP[AWP]) { if(!eAWP[V_MODEL][0]) copy(eAWP[V_MODEL], charsmax(eAWP[V_MODEL]), DEFAULT_V) if(!eAWP[P_MODEL][0]) copy(eAWP[P_MODEL], charsmax(eAWP[P_MODEL]), DEFAULT_P) ArrayPushArray(g_aAWP, eAWP) } bool:HasAWPAccess(const id, const iAWP) { static eAWP[AWP] ArrayGetArray(g_aAWP, iAWP, eAWP) if(g_bRankSystem) { if(eAWP[LEVEL] && crxranks_get_user_level(id) < eAWP[LEVEL]) return false if(eAWP[XP] && crxranks_get_user_xp(id) < eAWP[XP]) return false } if(eAWP[FLAG] != ADMIN_ALL && !(get_user_flags(id) & eAWP[FLAG])) return false return true } UseVault(const id, const bool:bSave) { if(bSave) { static szData[4] num_to_str(g_iAWP[id], szData, charsmax(szData)) nvault_set(g_iVault, g_szAuth[id], szData) } else { static iAWP iAWP = nvault_get(g_iVault, g_szAuth[id]) if(iAWP > g_iAWPNum) iAWP = 0 if(iAWP && HasAWPAccess(id, iAWP)) { g_iAWP[id] = iAWP ArrayGetArray(g_aAWP, iAWP, g_eAWP[id]) if(is_user_alive(id) && get_user_weapon(id) == CSW_AWP) RefreshAWPModel(id) } } }
-
cgozzie
Извън линия - Потребител
- Мнения: 1320
- Регистриран на: 13 Окт 2016, 22:10
- Местоположение: Варна
- Се отблагодари: 250 пъти
- Получена благодарност: 43 пъти
AWP Models [XP System Support]
Осi когато имаш време ще погледнеш ли защо не ми запазва авп-то, след като изляза и вляза пак въпреки че съм направил всичко което си дал...
-
Siska
Извън линия - Потребител
- Мнения: 773
- Регистриран на: 03 Дек 2019, 22:29
- Местоположение: Bedrock
- Се отблагодари: 158 пъти
- Получена благодарност: 48 пъти
- Обратна връзка:
Re: AWP Models [XP System Support]
Имам проблем при компилиране на всички плъгини на хрома, освен за ножовете.
Имам тази грешка :
scripting\crx_ak47_models.sma(33) : warning 201: redefinition of constant/macro (symbol "MAX_AUTHID_LENGTH")
Как да го променя, за да не излиза тази грешка ?
Коментирах въпросния ред и явно след това няма проблеми...
Имам тази грешка :
scripting\crx_ak47_models.sma(33) : warning 201: redefinition of constant/macro (symbol "MAX_AUTHID_LENGTH")
Как да го променя, за да не излиза тази грешка ?
Коментирах въпросния ред и явно след това няма проблеми...
Търсих врага и го открих : това съм аз , трябва да се победя...
WWW.CSMEGAGAMING.COM Skype : Sisi-1_1
WWW.CSMEGAGAMING.COM Skype : Sisi-1_1
-
runthenwalk
Извън линия - Рекламатор
- Мнения: 46
- Регистриран на: 06 Авг 2021, 19:41
- Се отблагодари: 10 пъти
- Получена благодарност: 5 пъти
Re: AWP Models [XP System Support]
Аз имах такава грешка преди, в една от библиотеките ми добавиха това същото #define MAX_AUTHID_LENGHT 32 ,плъгина беше за ранк системата.
-
Siska
Извън линия - Потребител
- Мнения: 773
- Регистриран на: 03 Дек 2019, 22:29
- Местоположение: Bedrock
- Се отблагодари: 158 пъти
- Получена благодарност: 48 пъти
- Обратна връзка:
Re: AWP Models [XP System Support]
Пиши ми , ако се сетиш точно...runthenwalk написа: ↑22 Окт 2023, 19:53 Аз имах такава грешка преди, в една от библиотеките ми добавиха това същото #define MAX_AUTHID_LENGHT 32 ,плъгина беше за ранк системата.
А иначе аз даже не знам за какво служи това нещо. Мислех си, че може да е за дължината имената на моделите...
Търсих врага и го открих : това съм аз , трябва да се победя...
WWW.CSMEGAGAMING.COM Skype : Sisi-1_1
WWW.CSMEGAGAMING.COM Skype : Sisi-1_1
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 1 Отговори
- 1043 Преглеждания
-
Последно мнение от Siska
-
- 29 Отговори
- 11312 Преглеждания
-
Последно мнение от Tornado_SW
-
- 0 Отговори
- 355 Преглеждания
-
Последно мнение от cgozzie
-
- 100 Отговори
- 19664 Преглеждания
-
Последно мнение от pok4
-
- 2 Отговори
- 3981 Преглеждания
-
Последно мнение от OciXCrom
-
- 11 Отговори
- 5548 Преглеждания
-
Последно мнение от Scorpions95
-
- 5 Отговори
- 2550 Преглеждания
-
Последно мнение от OciXCrom
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 3 госта