Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Electronic - zdjęcie

Electronic

Rejestracja: 15.12.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 13.04.2013 09:40
-----

#258143 [Poradnik] Szansa na zrespienie się u wroga

Napisane przez Hleb w 12.06.2011 13:47

Zapewne graliście na serwerach z War3ft Mod lub Diablo Mod, gdzie istnieje szansa na zrespienie sie u przeciwnika, zapewne checie mieć to w CODzie, czy to jako item, czy jako klasa. Dziś napiszę wam jak to zrobić!

1. Jako klasa

Szukamy linijki

public Odrodzenie(id)

w niej umieszczamy taki kod

if (klasa_gracza[id] == nazwa_klasy && is_user_alive(id) && random_num(1,X) == 1)
    {
		new CsTeams:team=cs_get_user_team(id)        

		if(team==CS_TEAM_CT)
			cs_set_user_team(id,CS_TEAM_T,CS_DONTCHANGE)
		if(team==CS_TEAM_T)
			cs_set_user_team(id,CS_TEAM_CT,CS_DONTCHANGE)
		ExecuteHam(Ham_Spawn,id)
		cs_set_user_team(id,team,CS_DONTCHANGE)
    }	

proponuję wyzej wymieniony kod umieścić pod linijką

if(punkty_gracza[id]>0)
        PrzydzielPunkty(id);

Oczywiście taka klasa musi miec ubranie wroga, by nas na respie nie wykryli i zabili xD.
W tym celu proponuje dodać w public Odrodzenie(id)to:


if(klasa_gracza[id] == nazwa_klasa)
        ZmienUbranie(id, 0);
    else
        ZmienUbranie(id, 1);


W moim przypadku nazwa klasy to "Szpieg". W miejsce "X" możecie wpisac konkretną liczbę.

2. Jako Item

Wystarczy zamienić linijkę

if (klasa_gracza[id] == nazwa_klasy && is_user_alive(id) && random_num(1,X) == 1)

na to

if (informacje_przedmiotu_gracza[id][0] == numer_itemu && random_num(1, informacje_przedmiotu_gracza[id][1]) == 1)

W moim przypadku to 52 item, a nazwałem go "Sekret szpiega"

W kodzie


if(klasa_gracza[id] == nazwa_klasa)
        ZmienUbranie(id, 0);
    else
        ZmienUbranie(id, 1);


zamiast
if(klasa_gracza[id] == nazwa_klasa)
wstawiamy to
if(informacje_przedmiotu_gracza[id][0] == numer_itemu)

W
public DajPrzedmiotX(id, przedmiot)
oraz
public DajPrzedmiot(id, przedmiot)
dodajemy to:

case numer_itemu:
{
         informacje_przedmiotu_gracza[id][1] = random_num(X, Y)
}
oczywiście w miejsce X i Y wpisujecie liczby

3. Jako Item i Klasa

Prezentacja

if ((klasa_gracza[id] == nazwa_klasy && is_user_alive(id) && random_num(1,X) == 1) || (informacje_przedmiotu_gracza[id][0] == numer_itemu && is_user_alive(id) && random_num(1, informacje_przedmiotu_gracza[id][1]) == 1))
    {
		new CsTeams:team=cs_get_user_team(id)        

		if(team==CS_TEAM_CT)
			cs_set_user_team(id,CS_TEAM_T,CS_DONTCHANGE)
		if(team==CS_TEAM_T)
			cs_set_user_team(id,CS_TEAM_CT,CS_DONTCHANGE)
		ExecuteHam(Ham_Spawn,id)
		cs_set_user_team(id,team,CS_DONTCHANGE)
    }	
    if(klasa_gracza[id] == nazwa_klasy || informacje_przedmiotu_gracza[id][0] == numer_itemu)
        ZmienUbranie(id, 0);
    else
        ZmienUbranie(id, 1);


oczywiscie zeby klasa i item się nie kolidowały musiny w
public DajPrzedmiotX(id, przedmiot)
oraz
public DajPrzedmiot(id, przedmiot)
dodać to:

case numer_itemu:
{
        if(klasa_gracza[id] == nazwa_klasy)
        {DajPrzedmiot(id, random_num(1, sizeof nazwy_przedmiotow-1))}
        informacje_przedmiotu_gracza[id][1] = random_num(X, Y);
}

  • +
  • -
  • 2


#222989 Nieograniczone ammo dla itemu/klasy

Napisane przez dasiek w 08.03.2011 16:02

Dla zielonych ;]
Wiele osób się pytało jak zrobić że klasa ma zawsze FULL magazynek . Niedawno to ogarnąłem i postanowiłem sę podzielić.

Tworzymy sobie item lub klase jak kto woli ;)

Moja klasa to Rewol w tabeli więc w CmdStart dodajemy linijke
if(klasa_gracza[id] == Rewol)
			{
				set_user_clip(id, maxClip[get_user_weapon(id)]);
			}

Wtedy nasza klasa nieważne jaką broń by trzymała (M$,AWP lub usp) zawsze ma Full magazynek ;)

Jeśli miałby to być item zamiast klasy dodamy

if(informacje_przedmiotu_gracza[id][0] == 999) //numer itemu
			{
				set_user_clip(id, maxClip[get_user_weapon(id)]);
			}
a jeśli dodamy i klase i item dodajemy

if(informacje_przedmiotu_gracza[id][0] == 999 || klasa_gracza[id] == Rewol) //numer itemu
			{
				set_user_clip(id, maxClip[get_user_weapon(id)]);
			}

ot i cała filozofia ;)

U mnie to działa jak będzie u innych nie wiem .
  • +
  • -
  • 13


#296517 Dodanie klasie niewidzialności przy kucaniu

Napisane przez DarkGL w 15.09.2011 18:17

Jest to nowa lepsza wersja mojego starego poradnika :)

Poradnik pokazuje jak dodać klasie niewidzialność przy kucaniu

Pierwsze co musimy zrobić to dodajemy w plugin_init()
register_forward(FM_CmdStart,"fwCmdStart")

następnie dodajemy gdziekolwiek

public fwCmdStart(id, uc_handle, seed){
	if(!is_user_alive(id) || !niewidzialnosc_kucanie[id]){
		return FMRES_IGNORED;
	}
	
	new button = get_uc(uc_handle,UC_Buttons)
	new oldbutton = get_user_oldbutton(id);
	
	if(button&IN_DUCK && !(oldbutton&IN_DUCK)){
		set_user_rendering(id,kRenderFxNone,255,255,255,kRenderTransAlpha,20)
	}
	else if(!(button&IN_DUCK) && oldbutton&IN_DUCK){
		set_user_rendering(id,kRenderFxNone,255,255,255,kRenderTransAlpha,255)
	}
	
	return FMRES_IGNORED;
}

potem w zmiennych globalnych np. po
new g_vault;
dodajemy

new bool:niewidzialnosc_kucanie[33];

potem w funkcji Odrodzenie(id)
po
if(!klasa_gracza[id])
{
       WybierzKlase(id);
       return PLUGIN_CONTINUE;
}
dodajemy
niewidzialnosc_kucanie[id] = false;

a w case naszej klasy w której chcemy żeby ona miała tego skilla dodajemy

niewidzialnosc_kucanie[id] = true;
np.
case Komandos:
{
	niewidzialnosc_kucanie[id] = true
	give_item(id, "weapon_deagle");
}

  • +
  • -
  • 7