Oddaj perk
adif11 15.08.2013
Witam używam właśnie takiego pluginu aby oddać innej osobie perk lecz jest mały problem
http://amxx.pl/topic...obie-daj-oddaj/
niestety jeżeli mam perk pancerz neonexowy 1/7 a oddam go innej osobie ona dostaje go 1/0 :< używam wersji z wytrzymałością , testowałem również wersje bez wytrzymałości lecz nadal ten sam błąd ;<
adif11 15.08.2013
Jest to chyba zły pomysł ponieważ jeden perk ma 1/4 a jeszcze inny 1/7 >:
a mógł bym prosić które wywalić?
(Kalifta) 15.08.2013
źle mnie zrozumiałeś. CoD mod rozdaje losowe wartości perków, załóżmy masz ten perk neopancerz, czasami masz 1/7 a czasami 1/4 (np.) CoD to losowo rozdaje, i chodzi mi o to żebyś się zdecydował na stałą liczbę czyli np, 1/7 na stałe.
Tu mamy przykładowy perk:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <hamsandwich> #include <codmod> #define ZADANIE_WSKRZES 6240 new const perk_name[] = "Morfina"; new const perk_desc[] = "Masz 1/LW szans na odrodzenie sie po smierci"; new wartosc_perku[33]; new bool:ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "QTM_Peyote"); cod_register_perk(perk_name, perk_desc, 2, 4); RegisterHam(Ham_Killed, "player", "Killed", 1); } public cod_perk_enabled(id, wartosc) { wartosc_perku[id] = wartosc; ma_perk[id] = true; } public cod_perk_disabled(id) ma_perk[id] = false; public Killed(id) { if(ma_perk[id] && random_num(1, wartosc_perku[id]) == 1) set_task(0.1, "Wskrzes", id+ZADANIE_WSKRZES); } public Wskrzes(id) ExecuteHamB(Ham_CS_RoundRespawn, id-ZADANIE_WSKRZES);
new const perk_desc[] = "Masz 1/LW szans na odrodzenie sie po smierci";
LW oznacza losową wartość którą masz ujętą tutaj:
cod_register_perk(perk_name, perk_desc, 2, 4);
2 i 4 to ww. losowe wartości, raz dostaniesz 1/2 a następnym razem 1/4, stąd wzięło się "ulepszanie" perków. (gracze wymieniają się perkiem nawzajem i losują lepsze wartości)
adif11 15.08.2013
cod_register_perk(perk_name, perk_desc, 2, 4);
Czyli ustawić mam tak?
cod_register_perk(perk_name, perk_desc, 1, 4);
i zawsze będzie 1/4 czy w inny sposób?
(Kalifta) 16.08.2013
nie, możesz zmienić na 2 sposoby:
Tego sposobu nie testowałem:
cod_register_perk(perk_name, perk_desc, 2, 4);
Jeżeli chcesz mieć 1/4 na stałe zmieniasz 2 na 4 czyli:
cod_register_perk(perk_name, perk_desc, 4, 4);
Drugi sposób:
if(get_user_weapon(idattacker) == CSW_SCOUT && get_user_team(this) != get_user_team(idattacker) && random_num(1, wartosc_perku[idattacker]) == 1 && damagebits & DMG_BULLET) cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
Tu mamy przykładowo szanse na zabicie ze Scauta.
Teraz patrz na to:
(1, wartosc_perku[idattacker])
Zamiast wartosc_perku[idattacker] wstaw liczbę np.
(1,1)
I teraz mamy magiczne 1/1 ze Scauta na słałe.
Polecam drugi sposób.