Pozwolę sobie najpierw nieco posprzątać kod:
#include <amxmodx>
#include <HamSandwich>
#include <Fakemeta>
new fm_give_item
public plugin_init()
{
register_plugin("szansa_na_bron", "1.0", "czy-bit")
RegisterHam(Ham_Spawn, "player", "Fw_PlayerSpawnPost", 1)
}
public Fw_PlayerSpawnPost(id)
{
if(random_num(1 , 10) == 1)
is_user_alive(id)
fm_give_item(id, "weapon_hegrenade"); //Gracz ma 10% szans aby otrzymac granat wybuchowy
client_print(id, print_chat, "Dostales granata!")
return HAM_HANDLED
}
Warunek:
if(random_num(1 , 10) == 1)
można zapisać prościej i wydajniej przy użyciu funkcji random, która idealnie się nadaje do szans procentowych:
if(!random(10))
Przyjrzyjmy się następującym linijkom:
if(!random(10))
is_user_alive(id)
fm_give_item(id, "weapon_hegrenade"); //Gracz ma 10% szans aby otrzymac granat wybuchowy
client_print(id, print_chat, "Dostales granata!")
Po sprawdzeniu ifem szansy procentowej, wykonujesz drugi warunek, ale już poza ifem i jako funkcję.
Drugi warunek, mianowicie is_user_alive winien być wewnątrz ifa, w tym przypadku połączony z poprzednim koniunkcją:
if(!random(10) && is_user_alive(id)){
fm_give_item(id, "weapon_hegrenade"); //Gracz ma 10% szans aby otrzymac granat wybuchowy
client_print(id, print_chat, "Dostales granata!");
}
Korzystając z funkcji biblioteki fakemeta_util, fm_give_item, nie możesz stworzyć zmiennej o nazwie identycznej do nazwy funkcji, z której korzystasz, która to zmienna jest zresztą zbędna.
Dodatkowo, musisz zmienić nagłówek, by nie załączać fakemeta, lecz wspomnianą fakemeta_util, z której to korzystasz.
Ostatecznie, kod winien przyjąć postać typu:
#include <amxmodx>
#include <fakemeta_util>
#include <HamSandwich>
public plugin_init()
{
register_plugin("szansa_na_bron", "1.0", "czy-bit")
RegisterHam(Ham_Spawn, "player", "Fw_PlayerSpawnPost", 1)
}
public Fw_PlayerSpawnPost(id)
{
if(!random(10) && is_user_alive(id)){
fm_give_item(id, "weapon_hegrenade"); //Gracz ma 10% szans aby otrzymac granat wybuchowy
client_print(id, print_chat, "Dostales granata!");
}
return HAM_HANDLED
}
Użytkownik Benio101 edytował ten post 27.01.2014 17:54
dodany jeden przykładowy kod