Skip to content

Commit

Permalink
Added stock functions CWAPI_CheckVersion & CWAPI_GetVersion
Browse files Browse the repository at this point in the history
Examples:
CWAPI_CheckVersionV1(0.6.0) will return true if CWAPI version is 0.6.0 or above.
CWAPI_CheckVersionV2(0.6.0, 0.7.0) will return true if CWAPI version between 0.6.0 and 0.7.0.
  • Loading branch information
ArKaNeMaN committed Feb 27, 2021
1 parent 28e4fe9 commit 36f230c
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 4 deletions.
10 changes: 6 additions & 4 deletions CustomWeaponsAPI.sma
Expand Up @@ -19,6 +19,8 @@
#define IsWeaponSilenced(%0) bool:((WPNSTATE_M4A1_SILENCED|WPNSTATE_USP_SILENCED)&get_member(%0,m_Weapon_iWeaponState))
#define IsPistol(%0) (WEAPON_PISTOLS_BITSUMM&BIT(rg_get_iteminfo(%0,ItemInfo_iId)))
#define IsGrenade(%0) (equal(%0, "hegrenade") || equal(%0, "smokegrenade") || equal(%0, "flashbang"))
new const _STR_NUM[] = "%d";
#define IntToStr(%0) fmt(_STR_NUM,%0)

enum {
CWAPI_ERR_UNDEFINED_EVENT = 0,
Expand All @@ -44,7 +46,7 @@ new Fwds[E_Fwds];
new UserMsgs[E_UserMsgs];

new const PLUG_NAME[] = "Custom Weapons API";
new const PLUG_VER[] = "0.6.0-beta";
#define PLUG_VER CWAPI_VERSION

public plugin_init(){
register_dictionary("cwapi.txt");
Expand All @@ -71,13 +73,13 @@ public plugin_init(){

UserMsgs[UM_WeaponList] = get_user_msgid("WeaponList");

create_cvar("CWAPI_VERSION", PLUG_VER, FCVAR_SERVER);

server_print("[%s v%s] loaded.", PLUG_NAME, PLUG_VER);
}

public plugin_precache(){
register_plugin(PLUG_NAME, PLUG_VER, "ArKaNeMaN");
create_cvar(CWAPI_VERSION_CVAR, PLUG_VER, FCVAR_SERVER);
create_cvar(CWAPI_VERSION_NUM_CVAR, IntToStr(CWAPI_VERSION_NUM), FCVAR_SERVER);

InitForwards();
LoadWeapons();
Expand All @@ -88,7 +90,7 @@ public plugin_precache(){
}

public plugin_natives(){
register_library("CustomWeaponsAPI");
register_library(CWAPI_LIBRARY);

register_native("CWAPI_RegisterHook", "Native_RegisterHook");
register_native("CWAPI_AddCustomWeapon", "Native_AddCustomWeapon");
Expand Down
51 changes: 51 additions & 0 deletions include/cwapi.inc
Expand Up @@ -3,6 +3,20 @@
#endif
#define _cwapi_included

#define CWAPI_VER_MAJOR 0
#define CWAPI_VER_MINOR 7
#define CWAPI_VER_PATCH 0

#define CWAPI_VER_TO_STR(%1.%2.%3) fmt("%d.%d.%d",%1,%2,%1)
#define CWAPI_VER_TO_NUM(%1.%2.%3) ((%1*10000)+(%2*100)+%3)

#define CWAPI_VERSION CWAPI_VER_TO_STR(CWAPI_VER_MAJOR.CWAPI_VER_MINOR.CWAPI_VER_PATCH)
#define CWAPI_VERSION_NUM CWAPI_VER_TO_NUM(CWAPI_VER_MAJOR.CWAPI_VER_MINOR.CWAPI_VER_PATCH)

stock const CWAPI_LIBRARY[] = "CustomWeaponsAPI";
stock const CWAPI_VERSION_CVAR[] = "CWAPI_VERSION";
stock const CWAPI_VERSION_NUM_CVAR[] = "CWAPI_VERSION_NUM";

#define CWAPI_IMPULSE_OFFSET 4354
#define var_CWAPI_ItemOwner var_iuser4

Expand Down Expand Up @@ -331,4 +345,41 @@ stock CWAPI_GetAbilParamString(Trie:Params, const Name[], Out[], Len, const Defa
if(Params == Invalid_Trie || !TrieGetString(Params, Name, Out, Len))
copy(Out, Len, Default);
return strlen(Out);
}

/**
* Проверяет наличие запущенного CustomWeaponsAPI и его версию.
*
* @note Если оба параметра не указаны, то будет проверено только наличие плагина.
*
* @param Min Минимальная версия.
* @param Max Максимальная версия.
*
* @return true, если CWAPI запущен и текущая версия входит в указанный диапазон.
*/
stock bool:CWAPI_CheckVersion(const Min = -1, const Max = -1){
if(!LibraryExists(CWAPI_LIBRARY, LibType_Library))
return false;

new CurVer = CWAPI_GetVersion();
if(
(Min != -1 && CurVer < Min)
|| (Max != -1 && CurVer > Max)
) return false;

return true;
}
#define CWAPI_CheckVersionV1(%1) CWAPI_CheckVersion(CWAPI_VER_TO_NUM(%1))
#define CWAPI_CheckVersionV2(%1,%2) CWAPI_CheckVersion(CWAPI_VER_TO_NUM(%1),CWAPI_VER_TO_NUM(%2))

/**
* Возвращает текущую версию Custom Weapons API
*
* @return Значение CWAPI_VERSION_NUM с которым был скомпилирован CWAPI
*/
stock CWAPI_GetVersion(){
static pCvar;
if(!pCvar)
pCvar = get_cvar_pointer(CWAPI_VERSION_NUM_CVAR);
return get_pcvar_num(pCvar);
}

0 comments on commit 36f230c

Please sign in to comment.