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
 

Zdjęcie
CoD Stary

[Poradnik] Szansa na zrespienie się u wroga

CoD Stary

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 Hleb

    FC Barcelona <3

  • Użytkownik

Reputacja: 991
Master

  • Postów:405
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:Sochaczew
Offline

Napisano 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

Sprzedam:

System odznak premium do BF2 Rank Mod (dodatkowy sposób na zarobek)

 

Więcej Informacji na STEAM/GG/PW

 

 


#2 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

Napisano 13.06.2011 21:37

Prościej:

w public Odrodzenie

	if(informacje_przedmiotu_gracza[id][0] == Numer_itemu && random_num(1, 3) == 1) //tu szansa, aktualnie 1/3
{
spawn_u_wroga(id)
ZmienUbranie(id, 0);
}


Na sam koniec *.sma

public spawn_u_wroga(id)
{
new CsTeams:team=cs_get_user_team(id)
cs_set_user_team(id,((team==CS_TEAM_CT)? CS_TEAM_T: CS_TEAM_CT),CS_DONTCHANGE)
ExecuteHam(Ham_Spawn,id)
cs_set_user_team(id,team,CS_DONTCHANGE)
return 0
}


I tyle ;P w przypadku klasy tak samo w public Odrodzenie

	
if ((klasa_gracza[id] == Nazwa_Klasy && is_user_alive(id) && random_num(1,3) == 1)
{

new CsTeams:team=cs_get_user_team(id)
cs_set_user_team(id,((team==CS_TEAM_CT)? CS_TEAM_T: CS_TEAM_CT),CS_DONTCHANGE)
ExecuteHam(Ham_Spawn,id)
cs_set_user_team(id,team,CS_DONTCHANGE)
return 0
}



Ale tak tylko se piszę :P

Użytkownik RPK. Shark edytował ten post 13.06.2011 21:38

  • +
  • -
  • 0

#3 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 13.06.2011 21:43

@up
Najpierw
spawn_u_wroga(id)
a potem
public spawnij_u_wroga(id)
?
Popraw bo ktoś potem będzie pisał że mu nie działa.
I dlaczego przy klasie
Dajesz tak
if ((klasa_gracza[id] == Nazwa_Klasy && is_user_alive(id) && random_num(1,3) == 1)
{

new CsTeams:team=cs_get_user_team(id)
cs_set_user_team(id,((team==CS_TEAM_CT)? CS_TEAM_T: CS_TEAM_CT),CS_DONTCHANGE)
ExecuteHam(Ham_Spawn,id)
cs_set_user_team(id,team,CS_DONTCHANGE)
return 0
}

Skoro można było tak jak w przypadku itemu
  • +
  • -
  • 0

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 13.06.2011 21:53

@up
Najpierw
spawn_u_wroga(id)
a potem
public spawnij_u_wroga(id)
?
Popraw bo ktoś potem będzie pisał że mu nie działa.

Hmmm... Ale co tu poprawiać? Chodzi Ci o to, że public do funkcji musi być w sma wcześniej wpisany niż jej wywołanie? Jeśli tak, to mylisz się ;]
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 13.06.2011 22:16

co do klasy tochodzi mi ze tam mozna bylo dac wywolanie
spawn_u_wroga(id)
a co do tego co cytowales to wczesniej bylo inaczej i by nie dzialalo.

sorry za chaos ale z tel pisze
  • +
  • -
  • 0

#6 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

Napisano 14.06.2011 11:32

Chodzi Ci o to, że w case klasy dać spawn_u_wroga(id) ? tak to nie zadziała ^^

#edit

Te literówkę od razu poprawiłem, szybko piszę.

Użytkownik RPK. Shark edytował ten post 14.06.2011 18:15

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: CoD Stary

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych