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ę?


Dodatki SourceMod



Temat jest zamknięty









