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

[ROZWIĄZANE] Forigin paki


  • Zamknięty Temat jest zamknięty
19 odpowiedzi w tym temacie

#1 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 17.06.2012 17:32

Cześć mam pytanko jak pobrać Float:origin[3] paki kiedy nie jest podłożona na bs'ie ? czyli kiedy posiada ją gracz albo leży na ziemi
  • +
  • -
  • 0

#2 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 17.06.2012 17:37

Może pobrać terrorystów na serwerze, sprawdzić ekwipunek każdego za pomocą get_user_weapons i jak typ ją ma zwracać jego połozenie ;) a jak nikt jej nie ma szukać bytu po modelu albo po nazwie.
  • +
  • -
  • 1

#3 ToRRent

    Czempion

  • Autor tematu
  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 17.06.2012 17:45

yhym, na razie rozumiem, jak mi coś nie będzie hulało wrzucę tu kod to może ktoś błąd wyłapie :)
  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 17.06.2012 17:56

jeśli leży to szukaj po modelu
  • +
  • -
  • 0

#5 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 17.06.2012 18:27

A nie można w taki sposób ?
http://amxx.pl/dokum...07/bomb_planted

public bomb_planted( planter )
{
new Float:origin[3];
get_user_origin(planter, origin)
}
lub z fakemeta:
public bomb_planted( planter )
{
new Float:origin[3];
pev(planter, pev_origin, origin)
}

Użytkownik radim edytował ten post 17.06.2012 18:29

  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 17.06.2012 19:06

zależy co on rozumie przez słowo paka bo paka to może być właśnie ta podłożona na bs ale też ta wyrzucona przez gracza
  • +
  • -
  • 0

#7 ToRRent

    Czempion

  • Autor tematu
  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 17.06.2012 19:10

piszac paka mam na mysli bombe ktora gracz moze ze soba niesc lub bombe lezaca na ziemi ale nie podlozona na bs
  • +
  • -
  • 0

#8 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 17.06.2012 20:16

new c4 = -1
while((c4 = find_ent_by_model(c4, "grenade", "sciezka_do_modelu_paki")))
{
new Float:origin[3];
get_user_origin(c4, origin)
}
Bądź w fakemecie
new c4 = -1
while((c4 = find_ent_by_model(c4, "grenade", "sciezka_do_modelu_paki")))
{
new Float:origin[3];
pev(c4, pev_origin, origin)
}

sebul (17.06.2012 20:23):
Drugie nie jest wykonane za pomocą samej fakemety.

Użytkownik radim edytował ten post 17.06.2012 20:17

  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.06.2012 20:20

W pierwszym poście zostało to określone:

kiedy nie jest podłożona na bs'ie


Co do samego śledzenia, jest to dosyć proste do zrealizowania. Na początku rundy śledzisz do kogo trafia paka:
register_event("WeapPickup", "event_got_bomb", "be", "1=6")

Event ładnie zwraca id gracza, który dostaje bombę. Później przelatujesz po jego "inventory" i dopadasz bombę. Gdy ją znajdziesz, zapisujesz id enta do zmiennej globalnej i później przez cały czas pobierasz pozycję tego enta.
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#10 Jak się nazwać

    Wszechmogący

  • Power User

Reputacja: 169
Profesjonalista

  • Postów:617
  • Imię:a
  • Lokalizacja:a
Offline

Napisano 17.06.2012 20:30

new c4 = engfunc(EngFunc_FindEntityByString, -1, "classname", "weapon_c4")
if (!c4)
return

zmiennej c4 przypisywany jest numer bytu paki, później sobie pobierasz orign fakemetą lub czym tam wolisz
  • +
  • -
  • 0
Pisze na zamówienie statystyki pod nvault. GG: 15600964

#11 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 17.06.2012 20:35

Gdy ją znajdziesz, zapisujesz id enta do zmiennej globalnej

jeśli gracz trzyma pakę to ma ona identyczne origin jak gracz lub jest troche wyżej ( nie jestem pewien )
  • +
  • -
  • 0

#12 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.06.2012 21:25

DarkGl, a co jeśli ją wyrzuci? ;) Dlatego lepiej ID enta trzymać i jego origin pobierać zawsze.
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#13 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 17.06.2012 21:41

Ciekawe tylko czy tak jest że id enta jest to samo
CS jest tak napisany że tu nic nigdy nie działa tak jak powinno ;)
  • +
  • -
  • 0

#14 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 17.06.2012 21:59

ehh lezy na ziemi szukasz po modelu
lezy na bsie i pika szukasz po modelu
lata sobie za terrorystą szukasz originów goscia który ją ma nie ma co kombinować bo origin duzo sie nie rózni a autorowi chodzi pewnie o sprawdzanie odległości

a co do iD to obstawiam ze jest to zrobione tak ze gracz ma swoją pake w ekwipunku ale jest dodatkowy ent który jest do niego przyczepiony(cos jak pev_aiment/movetype_follow) i wlasnie id tamtego enta jest równe id paki leżącej na ziemi no chyba ze w modelu jest osobny skin dla goscia z paką
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#15 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 18.06.2012 03:19

Z tego, co wiem id enta z paką nie zmienia się, dopóki paka na mapie jest jedna. Zmienia się natomiast kontener paki, tzn w przypadku leżącej na ziemii jest ona w kontenerze swojego modelu, gdy ma ją gracz, kontenerem jest gracz, gdy jest podłożona, kontenerem jest znowu model pikającej paki. Dokładnie tak, jak z broniami (tyle, że broń nie może pikać :D)
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#16 ToRRent

    Czempion

  • Autor tematu
  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 18.06.2012 09:29

G[o]q dokladnie, chodzi mi o odleglosc od paki a dokladniej mowic chce zrobic wyswietlanie ikonki z odlegloscia, wiem jak tylko wlasnie problem mam z pobraniem origin
  • +
  • -
  • 0

#17 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 18.06.2012 13:04

Sprawdzałem kod działa:

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Cypis"

#define DROP 87123

new id_paki;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("logSpawBomb", 3, "2=Spawned_With_The_Bomb");
register_logevent("logSpawBomb", 3, "2=Got_The_Bomb");

register_logevent("logDropBomb", 3, "2=Dropped_The_Bomb");

register_logevent("logPlantBomb", 3, "2=Planted_The_Bomb");

register_forward(FM_PlayerPostThink, "fwPlayerPostThink");
}

public logSpawBomb()
{
remove_task(DROP);
id_paki = engfunc(EngFunc_FindEntityByString, -1, "classname", "weapon_c4");
}

public logDropBomb()
{
set_task(0.1, "taskDrop", DROP);
}

public taskDrop()
{
id_paki = fm_find_ent_by_model(-1, "weaponbox", "models/w_backpack.mdl");
}

public logPlantBomb()
{
id_paki = 0;
}

public fwPlayerPostThink(id)
{
if(!is_user_alive(id))
return;

if(!pev_valid(id_paki))
return;

new Float:PakaOrigin[3];
pev(id_paki, pev_origin, PakaOrigin);
//tu dalej kod na wyświetalnie tego co chcesz ...
}

stock fm_find_ent_by_model(index, const classname[], const models[])
{
new ent = index, model[32];
while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", classname)))
{
pev(ent, pev_model, model, 31);
if(equal(model, models))
return ent;
}
return 0;
}

Użytkownik Cypis' edytował ten post 18.06.2012 14:32

  • +
  • -
  • 1

#18 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.06.2012 16:32

A tu masz rozwiązanie prostrze i znajdujące wszystkie niepodłożone bomby na mapie:

new ent=-1, Float:origin[3];

while((ent = find_ent_by_class(ent, "weapon_c4"))){
pev(ent, pev_origin, origin);

}

ent=-1;
while((ent = find_ent_by_model(ent, "weaponbox", "models/w_backpack.mdl"))){
pev(ent, pev_origin, origin);

}

Użytkownik benio101 edytował ten post 18.06.2012 16:35
poprawa warunku


#19 ToRRent

    Czempion

  • Autor tematu
  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 18.06.2012 16:46

Można zamknąć
  • +
  • -
  • 0

#20 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.06.2012 16:47

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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