←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Oddaj perk

adif11 - zdjęcie 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 ;<

Odpowiedz

(Kalifta) - zdjęcie (Kalifta) 15.08.2013

wywal z nich wartość perku, i ustaw na stałą liczbę

Odpowiedz

adif11 - zdjęcie 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ć?

 

http://wklej.org/id/1108956/

Odpowiedz

(Kalifta) - zdjęcie (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)

Odpowiedz

adif11 - zdjęcie 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?

Odpowiedz

(Kalifta) - zdjęcie (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.

Odpowiedz