Няколко неща:
- при използването на RegisterHam долу в метода използвай returns за ham, тоест PLUGIN_CONTINUE > HAM_IGNORED, PLUGIN_HANDLED > HAM_SUPERCEDE. Ако използваш грешни return няма да ти се получава желания резултат. Ако се разровиш из библиотеките ще видиш, че
Code: Select all
PLUGIN_CONTINUE = 0
PLUGIN_HANDLED = 1
HAM_IGNORED = 1
HAM_SUPERCEDE = 4
Няма как да връщаш различни стойности и да очакваш еднакав резултат.
- когато използваш post ham, тоест метода се извиква след извършването на ham-a както е в случая
Code: Select all
RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", 1)
метода се извиква след spawn. При такива ситуации return стойностите нямат значение и биват игнорирани.
Code: Select all
if(!is_user_connected(id))
return PLUGIN_CONTINUE
може да стане >
Code: Select all
if(!is_user_connected(id))
{
return
}
като по този начин
не е нужно в края на метода. Това не е грешка, казвам го за информация само.
- в менюто можеш да го опростиш като просто switch-ваш item-a. Ето какво имам предвид
Code: Select all
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
set_user_health(id, get_user_health(id) + get_pcvar_num(cvar_health))
set_user_armor(id, get_user_armor(id) + get_pcvar_num(cvar_armor))
set_dhudmessage(200, 200, 200, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour HP and AP is increased!", szPrefix)
}
case 2:
{
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
set_dhudmessage(0, 191, 255, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYou received Full Grenade pack!", szPrefix)
}
case 3:
{
set_user_maxspeed(id, get_pcvar_float(cvar_speed))
set_dhudmessage(0, 0, 255, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour speed is increased!", szPrefix)
}
case 4:
{
set_user_gravity(id, get_pcvar_float(cvar_gravity))
set_dhudmessage(165, 42, 42, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour gravity is lower!", szPrefix)
}
case 5:
{
user_foot[id] = true
set_user_footsteps(id, 1)
set_dhudmessage(160, 32, 240, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour footsteps are silent!", szPrefix)
}
case 6:
{
user_invi[id] = true
set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransAlpha, get_pcvar_num(cvar_invisible))
set_dhudmessage(0, 0, 205, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYou are invisible now!", szPrefix)
}
case 7:
{
if(get_user_flags(id) & read_flags(string))
{
cs_set_user_model(id, cs_get_user_team(id) == CS_TEAM_T ? "Jigsaw" : "Smith")
set_dhudmessage(0, 255, 0, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour skin is different!", szPrefix)
}
else
{
cmd_menu(id)
ColorChat(id, GREEN, "[%s]^1 %s", szPrefix, szNoVipMSG)
}
}
}
->
Code: Select all
switch(item)
{
case 0:
{
set_user_health(id, get_user_health(id) + get_pcvar_num(cvar_health))
set_user_armor(id, get_user_armor(id) + get_pcvar_num(cvar_armor))
set_dhudmessage(200, 200, 200, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour HP and AP is increased!", szPrefix)
}
case 1:
{
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
set_dhudmessage(0, 191, 255, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYou received Full Grenade pack!", szPrefix)
}
case 2:
{
set_user_maxspeed(id, get_pcvar_float(cvar_speed))
set_dhudmessage(0, 0, 255, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour speed is increased!", szPrefix)
}
case 3:
{
set_user_gravity(id, get_pcvar_float(cvar_gravity))
set_dhudmessage(165, 42, 42, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour gravity is lower!", szPrefix)
}
case 4:
{
user_foot[id] = true
set_user_footsteps(id, 1)
set_dhudmessage(160, 32, 240, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour footsteps are silent!", szPrefix)
}
case 5:
{
user_invi[id] = true
set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransAlpha, get_pcvar_num(cvar_invisible))
set_dhudmessage(0, 0, 205, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYou are invisible now!", szPrefix)
}
case 6:
{
if(get_user_flags(id) & read_flags(string))
{
cs_set_user_model(id, cs_get_user_team(id) == CS_TEAM_T ? "Jigsaw" : "Smith")
set_dhudmessage(0, 255, 0, -1.0, 0.25, 0, 5.0, 5.0, 0.1, 0.2)
show_dhudmessage(id, "[%s] Extra Items Menu^nYour skin is different!", szPrefix)
}
else
{
cmd_menu(id)
ColorChat(id, GREEN, "[%s]^1 %s", szPrefix, szNoVipMSG)
}
}
}
по този начин избягваш създаването на нови променливи и понякога ще ти се налага да използваш слота за info. Отново не е грешка давам го само за информация.
-
ненужно е в края на
Като цяло доста добре за пръв плъгин
Радвам се, че има хора, на които им е интересно и искат да се учат. Продължавай в същия дух