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

Operacje na graczu


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

#1 Merciless

    Życzliwy

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:31
  • Lokalizacja:Baugladełsz
Offline

Napisano 29.07.2013 12:31

Witam . Chciałbym się dowiedzieć jak po nacelowaniu na gracza mogę na nim operować np.pobrać jego pozycje/zmienić pozycje ale tylko wtedy gdy na niego celuje, nie na najbliższych graczy tak jak działa to find_sphere_class

 

@edit

 

Doszedłem już do tego, lecz mam następny problem, nie umiem dla gracza nadać swojej pozycji

    new target,body
    get_user_aiming(id, target, body); // tutaj chodzi o nacelowanego gracza
    
    new Poz[2][3]; // pozycje 
    new Float: wektorPoz[2][3]; // pozycje wektorów
                
    get_user_origin(id, Poz[0]); // tutaj pobiera moją pozycje x,y,z
    
    entity_get_vector(target, EV_VEC_origin, wektorPoz[1]); // tutaj pobiera wektor nacelowanego
    entity_get_vector(id, EV_VEC_origin, wektorPoz[0]); // tutaj pobiera mój wektor

    get_user_origin(target, Poz[1]); // tutaj pobiera pozycje nacelowanego x,y,z

    entity_set_vector(target, EV_VEC_velocity, wektorPoz[0]); // tutaj dla nacelowanego nadaje mój wektor

Nie wiem czy dobrze podpisałem ale piszę tak jak to rozumiem. Po nacelowaniu na gracza i wpisaniu odpowiedniej komendy gracz leci w kąt xD, próbowałem też bez pobierania wektorów, na samych pozycjach, lecz to w ogóle nie działa.

 

Znalazłem jeszcze funkcje entity_set_origin, lecz do tego trzeba mieć zmienną float a takiej zmiennej nie wsadzę do get_user_origin, nie wiem też czy da się float przekonwertować na zwykłą zmienną


Użytkownik Merciless edytował ten post 29.07.2013 13:00

  • +
  • -
  • 0

#2 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 29.07.2013 13:02

A więc to zależy jak chcesz zrobić można na dwa sposoby(pewnie jest ich więcej ale nie mam zamiaru rozmyślać nad innymi):

 

 

1)W think'u gracza sprawdzać funkcją "get_user_aiming" czy gracz na kogoś patrzy (samo sprawdzanie jest bardzo nie wydajne już lepiej sprawdzić czy po naciśnięciu przycisku ktoś na kogoś patrzy), ta funkcja zwraca poprzez referencję id gracza na którego patrzymy (2 argument) a jak masz id gracza to możesz już robić z gracze co chcesz (no prawie)

 

2) Zarejestrowanie eventu "StatusValue" i sprawdzanie czy argument nr.1 równa się 2. Coś takiego:





register_event("StatusValue","Aiming","be","1=2")

A teraz funkcja:





public Aiming(id)
{
	new id2 = read_data(2)
	//id == gracz patrzący
	//id2 == gracz na którego się patrzy
}

Jeśli nie wiesz jak posługiwać się otrzymanym id to pisz a pomogę

 

// Mogłeś szybciej edytować :D napisz co chcesz zrobić po nacelowaniu w gracza to pokażę ci przykład

 


Użytkownik BlackPerfum edytował ten post 29.07.2013 13:05

  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#3 Merciless

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:31
  • Lokalizacja:Baugladełsz
Offline

Napisano 29.07.2013 13:17

Chciałbym zrobić przyciągnęcie gracza do mnie, czyli to do czego zmierzałem, nadanie graczowi moich koordów xD

 

W tej funkcji aiming mogę wrzucić swój kod i przez komende odpalać?

 

Dziwna sprawa wynikła po dodaniu tego eventu, jeżeli bot na mnie naceluje to lecę do niego xD, a jeżeli ja na niego naceluje to leci w kąt jak dotychczas

 


Użytkownik Merciless edytował ten post 29.07.2013 13:22

  • +
  • -
  • 0

#4 Yakashi

    Wszechpomocny

  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:332
  • Imię:Krzysiek
  • Lokalizacja:Public Respawn(id)
Offline

Napisano 29.07.2013 14:07

moze to cos ci pomoze

 

http://amxx.pl/topic...gnes-militarny/



#5 Merciless

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:31
  • Lokalizacja:Baugladełsz
Offline

Napisano 29.07.2013 14:17

Niestety nie bardzo to ogarniam


  • +
  • -
  • 0

#6 Merciless

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:31
  • Lokalizacja:Baugladełsz
Offline

Napisano 29.07.2013 19:07

Przepraszam za doubla ale chciałbym zadać kolejne pytanie dotyczące lasera a niestety nie mogę edytować posta. Zrobiłem taki laser, którym strzela się do gracza

    new target,body;
    new pozycja[3];
    get_user_aiming(id, target,body);
    get_user_origin(target, pozycja);
    
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY, pozycja );
    write_byte(TE_BEAMENTPOINT)
    write_short(id)
    write_coord(pozycja[0])
    write_coord(pozycja[1])
    write_coord(pozycja[2])
    write_short(sprajt)
    write_byte(0)
    write_byte(10)
    write_byte(1)
    write_byte(5)
    write_byte(0)
    write_byte(255)
    write_byte(0)
    write_byte(0)
    write_byte(255)
    write_byte(0)
    message_end();
    set_user_health(target, get_user_health(target) - 1);
    
    if(get_user_health(target) <= 80)
    {
        remove_task(target);
    }

Zadaniem jest nacelować na gracza i wpisać odpowiednią komende aby wystrzelić laser do gracza, pytania są następujące. Czy mogę ten efekt utrzymywać do tej pory aż dla gracza nie zostanie np. 30 hp mimo tego iż starciłbym go ze swego celownika to wiązka pozostałaby ode mnie do niego do czasu aż tych hp nie straci? Próbowałem zrobić utrzymywanie tej akcji laseru taskiem, lecz teraz to w ogóle nie widać tego laseru.


Użytkownik Merciless edytował ten post 29.07.2013 19:22

  • +
  • -
  • 0

#7 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 29.07.2013 22:11

Nie lepsza byłaby wiadomość łącząca 2 byty (graczy)?
Niestety nie zalinkuje bo na telefonie jestem, ale jest lista na amxmodx.org

I wtedy przedłużać tę wiadomość taskiem
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#8 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 30.07.2013 00:10

Pisałem że pomogę więc postaram się ci pomóc (co do wektorów)

 

Przedstawię ci jak by wyglądał kod dzięki któremu gracz po nacelowaniu na innego gracza i naciśnięciu "e"

(dokładnie to po użyciu komendy "+use") przyciągnie do siebie gracza (w którego nacelował oczywiście :D)

Dodam jeszcze iż nie ograniczałem możliwości graczom oraz nie ma tu zbyt wielu zabezpieczeń gdyż to ma być wzór a nie gotowiec.

 

PreThink gracza:

Spoiler
Teraz przyciąganie:
Spoiler
Wszystko opisane ale jak czegoś nie rozumiesz to pisz a co do lasera to niece mi się myśleć dlatego poczytaj sobie na necie o "SVC_TEMPENTITY" ;D

 


  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#9 Merciless

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:31
  • Lokalizacja:Baugladełsz
Offline

Napisano 30.07.2013 14:35

dzięki bardzo, rozumiem o co tutaj chodzi xD. A co do tego SVC_TEMPENTITY i innych rzeczy SVC_ gdzie mogę znaleźć opis tych rzeczy i jakiś tutorial?


  • +
  • -
  • 0

#10 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 30.07.2013 21:07

Tutaj: http://wiki.amxmodx....Engine_Messages


  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika




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

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