[TUT] Правилно именуване на променливите
Публикувано на: 19 Яну 2017, 22:03
Реших да направя тази тема, тъй като забелязах, че почти всички начинаещи (и не само) скриптъри ползват неправилни имена за променливите. Имената нямат никакво влияние върху работата на плъгина или самата компилация, обаче когато някой друг гледа вашия код, доста по-лесно ще е да разбере от какъв вид е променливата ако името ѝ е правилно написано, пък и самите вие ще забележите, че кодът ще изглежда доста по-приятен за очите и по-разбираем.
Ето и какво имам предвид под именуване на променливите според вида им: ако променливата е стринг, доста от вас ще напишат следното:
... или пък това:
... когато става дума за стринг, правилно е в името да се сложи префикс "sz", и той да изглежда така:
... за всеки вид променлива се ползва различен префикс, като за числа се ползва "i" (integer), за плаващи числа "f" или "fl" (float) и прочие. За да бъде по-прегледно, ще сложа всички префикси и съответните им видове в табела:
Ето и какво имам предвид под именуване на променливите според вида им: ако променливата е стринг, доста от вас ще напишат следното:
Код за потвърждение: Избери целия код
new name[32]
get_user_name(id, name, charsmax(name))
Код за потвърждение: Избери целия код
new iName[32]
get_user_name(id, iName, charsmax(iName))
Код за потвърждение: Избери целия код
new szName[32]
get_user_name(id, szName, charsmax(szName))
i ➠ число/интежер [integer]
f, fl ➠ плаващо число [float]
sz ➠ стринг [string zero]
b, bl ➠ булева [boolean]
p ➠ показалка [pointer]
t ➠ trie [trie]
a ➠ array [array]
e ➠ enum array [enum array]
g, g_ ➠ глобална променлива [global]
Имайте предвид, че префиксът "g" или "g_" винаги се ползва при глобални променливи заедно с вида на променливата, примерно "g_iFrags", "g_fOrigin", "g_szName" и прочие. Ето един кратък код, в който са дадени примери за всички видове променливи:f, fl ➠ плаващо число [float]
sz ➠ стринг [string zero]
b, bl ➠ булева [boolean]
p ➠ показалка [pointer]
t ➠ trie [trie]
a ➠ array [array]
e ➠ enum array [enum array]
g, g_ ➠ глобална променлива [global]
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
enum _:Data
{
Name[32],
Kills,
Deaths
}
new g_ePlayerData[33][Data]
new g_iMaxItems
new Float:g_fRedColor = 255.0
new bool:g_bActive
new g_pCvar
new Trie:g_tInfo
new Array:g_aStuff
public plugin_init()
{
register_plugin("Variable Names", "example", "OciXCrom @ amxx-bg.info/forum")
g_pCvar = register_cvar("topic_link", "http://amxx-bg.info/forum/viewtopic.php?f=26&t=1046")
new szMap[32]
get_mapname(szMap, charsmax(szMap))
if(equali(szMap, "de_dust2"))
g_bActive = true
g_tInfo = TrieCreate()
g_aStuff = ArrayCreate()
}
public plugin_end()
{
TrieDestroy(g_tInfo)
ArrayDestroy(g_aStuff)
}
public client_putinserver(id)
{
new szName[32]
get_user_name(id, szName, charsmax(szName))
client_print(0, print_chat, "%s has joined the game!", szName)
}
public client_disconnect(id)
{
new iKills = get_user_frags(id)
new iDeaths = cs_get_user_deaths(id)
}