←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z kupywaniem armoru

Zablokowany

  • +
  • -
ErF - zdjęcie ErF 15.06.2009

Cześć! Próbuję napisać mój "drugi" plugin, ale coś nie wychodzi.

Kod:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "Armor buy"
#define VERSION "1.0"
#define AUTHOR "ErF"

new moze[33];
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /armor","BuyArmor");
	register_cvar("amx_armor_cost","500");
	
}

public BuyArmor(id) {
	if(!moze[id])
	{
		client_print(id,print_chat,"[Armor] Juz kupiles armor! Odczekaj 10 sekund.");
		return PLUGIN_HANDLED;
	}
	else if(cs_get_user_money(id) < get_cvar_num("amx_armor_cost"))
	{
		client_print(id,print_chat,"[Armor] Nie masz wystarczajaco duzo pieniedzy!");
		return PLUGIN_HANDLED;
	}
	else if(!is_user_alive(id))
	{
		client_print(id,print_chat,"[Armor] Musisz byc zywy, aby kupic armor!");
		return PLUGIN_HANDLED;
	}
	else
	{
		cs_set_user_money(id, cs_get_user_money(id) - get_cvar_num("amx_armor_cost"));
		cs_set_user_armor(id,100,CS_ARMOR_KEVLAR);
		set_task(10.0,"MozeKupic",id);
		client_print(id,print_chat,"[Armor] Kupiles armor. Nastepny mozesz kupic za 10 sekund :)");
		moze[id] = 0;
		
	}
	return PLUGIN_CONTINUE;
}
public MozeKupic(id)
{
	moze[id] = 1;
}

Problem, polega na tym, że ciągle się wyświetla napis: [Armor] Juz kupiles armor! Odczekaj 10 sekund.

Proszę o pomoc.

//Edit

Lol, temat do zamknięcia (sorry), po napisaniu posta dopiero skapnąłem się, że nie przypisuje clientowi wartości 1, pierdyknąłem w client_connect moze[id] = 1; i działa.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "Armor buy"
#define VERSION "1.0"
#define AUTHOR "ErF"

new moze[33];
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /armor","BuyArmor");
	register_cvar("amx_armor_cost","500");
	
}

public client_connect(id) {
	moze[id] = 1;
}

public BuyArmor(id) {
	if(!moze[id])
	{
		client_print(id,print_chat,"[Armor] Juz kupiles armor! Odczekaj 10 sekund.");
		return PLUGIN_HANDLED;
	}
	else if(cs_get_user_money(id) < get_cvar_num("amx_armor_cost"))
	{
		client_print(id,print_chat,"[Armor] Nie masz wystarczajaco duzo pieniedzy!");
		return PLUGIN_HANDLED;
	}
	else if(!is_user_alive(id))
	{
		client_print(id,print_chat,"[Armor] Musisz byc zywy, aby kupic armor!");
		return PLUGIN_HANDLED;
	}
	else
	{
		cs_set_user_money(id, cs_get_user_money(id) - get_cvar_num("amx_armor_cost"));
		cs_set_user_armor(id,100,CS_ARMOR_KEVLAR);
		set_task(10.0,"MozeKupic",id);
		client_print(id,print_chat,"[Armor] Kupiles armor. Nastepny mozesz kupic za 10 sekund :)");
		moze[id] = 0;
		
	}
	return PLUGIN_CONTINUE;
}
public MozeKupic(id)
{
	moze[id] = 1;
}

Może komuś się przyda :D
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 15.06.2009

Ale tak w ogóle to mogłeś zmienić kolejność if'ów na taką:
if(!is_user_alive(id)) => if(!moze[id]) => if(cs_get_user_money(id) < get_cvar_num("amx_armor_cost"))
Odpowiedz
Zablokowany