Postanowiłem się coś pouczyć i napisać jakiś własny fajny sklepik.
Lecz mam problem z kompilacją i nie wiem jak to zrobić.
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fakemeta>
#include <xs>
#include <hamsandwich>
#define PLUGIN "SklepBB"
#define VERSION "1.0"
#define AUTHOR "rst"
#define MAX 32
new sklepmenu;
new sprite_fire,
sprite_smoke;
new palenie_gracza[MAX+1];
new kupil[MAX+1];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /menu", "SklepMenu");
register_event("Damage", "Damage", "b", "2!=0");
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
}
public plugin_precache()
{
sprite_fire = precache_model("sprites/fire.spr")
sprite_smoke = precache_model("sprites/steam1.spr")
}
public player_spawn_post(id)
{
kupil[id] = false;
return PLUGIN_CONTINUE;
}
public SklepMenu(id)
{
sklepmenu = menu_create("Widzisz menu?", "SklepMenuHNDL");
menu_additem(sklepmenu, "");
menu_additem(sklepmenu, "");
menu_additem(sklepmenu, "");
menu_additem(sklepmenu, "");
menu_additem(sklepmenu, "");
menu_additem(sklepmenu, "");
menu_additem(sklepmenu, "");
menu_setprop(sklepmenu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, sklepmenu);
return PLUGIN_HANDLED;
}
public SklepMenuHNDL(id, menu, item)
{
if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}
switch(item)
{
case 0: {
Damage(id);
kupil[id] = true;
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
case 1: {
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
case 2: {
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
case 3: {
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
case 4: {
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
case 5: {
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
case 6: {
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
case 7: {
ColorChat(id, GREEN, "[Sklep]^x01 Mhm");
}
}
return PLUGIN_HANDLED;
}
public Damage(id)
{
new attacker = get_user_attacker(id);
if(!is_user_alive(attacker))
return PLUGIN_CONTINUE;
if( get_user_team == 2 && kupil[id] = true )
{
if(task_exists(id+2936))
remove_task(id+2936);
palenie_gracza[id] = 25;
new data[2]
data[0] = id
data[1] = attacker
set_task(0.2, "burning_flame", id+2936, data, 2, "b");
}
return PLUGIN_CONTINUE;
}
public burning_flame(data[2])
{
new id = data[0]
if(!is_user_alive(id))
{
palenie_gracza[id] = 0
remove_task(id+2936);
return PLUGIN_CONTINUE;
}
new origin[3], flags = pev(id, pev_flags)
get_user_origin(id, origin)
if(flags & FL_INWATER || palenie_gracza[id] < 1 || !get_user_health(id))
{
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SMOKE)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-50)
write_short(sprite_smoke)
write_byte(random_num(15,20))
write_byte(random_num(10,20))
message_end()
remove_task(id+2936);
return PLUGIN_CONTINUE;
}
if(flags & FL_ONGROUND)
{
static Float:velocity[3]
pev(id, pev_velocity, velocity)
xs_vec_mul_scalar(velocity, 0.5, velocity)
set_pev(id, pev_velocity, velocity)
}
user_slap(data[1], 20, 0);
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE)
write_coord(origin[0]+random_num(-5,5))
write_coord(origin[1]+random_num(-5,5))
write_coord(origin[2]+random_num(-10,10))
write_short(sprite_fire)
write_byte(random_num(5,10))
write_byte(200)
message_end()
palenie_gracza[id]--
return PLUGIN_CONTINUE;
}
W Damage(id) nie wiem jak stworzyć warunek aby się funkcja wykonała gdy gracz to kupił.
if( get_user_team == 2 && kupil[id] = true )
Próbowałem robić też tak
public kupil(id)
{
kupil[id] = true
}
i dawałem warunek taki lecz nie działało.
if( get_user_team == 2 && kupil(id) )
Proszę o skompilowanie i małe wytłumaczenie.


Dodatki SourceMod













