←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Tworzenie funkcji z różnymi wartościami.

Zablokowany

  • +
  • -
oeN. - zdjęcie oeN. 03.05.2015

Witam,

 

Chciałbym zoptymalizować sobie plugin ruletka. Zamiast robić zmienną do każdego bonusu by np. wykorzystać go w dodatkowych obrażeniach itp. to chciałbym zrobić jedną zmienną a raczej funkcję BonusGracza(index, wartosc). Przykładowe użycie tej funkcji:

public Ruletka(id) {
	
	if(!is_user_alive(id) || !is_user_connected(id) || g_Used[id])
		return PLUGIN_CONTINUE;
	
	new koszt = 1100;
	new kasa = cs_get_user_money(id);
	
	if(!cs_get_user_buyzone(id)) {
		ColorChat(id, RED, "Musisz byc w strefie kupowania");
		return PLUGIN_CONTINUE;
	}
	
	if(kasa < koszt) {
		ColorChat(id, RED, "Koszt ruletki to 1100$");
		return PLUGIN_CONTINUE;
	}
	
	new name[64];
	get_user_name(id, name, 63);
	
	cs_set_user_money(id, kasa-koszt);
	g_Used[id] = true;
	
	switch(random_num(1, 2)) {
		
		case 1:
		{
			ColorChat(id, GREEN, "^x03[%s]^x04 Wygrales wieksze obrazenia", prefix);
			BonusGracza(id, 1);
		}
		
		case 2:
		{
			ColorChat(id, GREEN, "^x03[%s]^x04 Wygrales AutoBH", prefix);
			BonusGracza(id, 2);
		}
	}
	
	return PLUGIN_CONTINUE;
}

I teraz odpowiednio w funkcjach odpowiednich do uzyskania bonusy było by sprawdzenie np.

public fw_TakeDamagePre(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_alive(idattacker) || !is_user_alive(this))
		return HAM_IGNORED;
	
	if(idinflictor == idattacker)
		return HAM_IGNORED;
			
	if(BonusGracza(id, 1)) SetHamParamFloat(4, damage+7.0);
	
	return HAM_HANDLED;
}

I teraz sama funkcja BonusGracza.

public BonusGracza(id, bonus) {
	if(bonus > 0)
		return true;
	else	return false;
}

Dobrze myślę?

Odpowiedz

  • +
  • -
radim - zdjęcie radim 07.05.2015

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany