Pierścień teleportujący wroga 8932 32

O temacie

Autor Paser

Zaczęty 25.03.2012 roku

Wyświetleń 8932

Odpowiedzi 32

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond
Otóż zrobiłem pierścień teleportujący wroga, a dokładniej to próbowałem go zrobić.
Wszystko się opierało na skrypcie teleportacji uruchamianego podczas zakładania pierścienia.
Czyli tak:
INSTANCE  pulapka (C_Item)
{
name = "Pułapka";

mainflag = ITEM_KAT_MAGIC;
flags = ITEM_RING;

value = Value_ItRi_Addon_STR_01;

visual = "ItRi_Prot_Total_02.3ds";

visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_pulapka;
on_unequip = UnEquip_pulapka;

wear = WEAR_EFFECT;

description =  "Pułapka";

TEXT[3] = "Niech tam gnije sku*wysyn !";

INV_ZBIAS = INVCAM_ENTF_RING_STANDARD;
INV_ROTZ = INVCAM_Z_RING_STANDARD;
INV_ROTX = INVCAM_X_RING_STANDARD;

};

FUNC VOID Equip_pulapka()
{
AI_Teleport (other, "TAVERNE");
PrintScreen("Gnij tam, sku*wysynie !",-1,-1,"font_old_20_white.tga",3);
};
FUNC VOID UnEquip_pulapka()
{
};
Niestety po założeniu na ekranie tylko się pojawił napis a postać którą namierzyłem jest ciągle w tym samym miejscu.
O co chodzi ?
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Spróbuj dać target zamiast other.

Jak nie zadziała to użyj var c_npc oth; oth = MEM_PtrToInst(her.focus_vob);
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond

Paser

Pierścień teleportujący wroga
#2 2012-03-25, 20:06(Ostatnia zmiana: 2012-03-25, 20:13)
Nie ma target w grze, to nie działa.(błąd przy reparsowaniu)
A z tym drugim to nie wiem co zrobić bo w tą dziedzinę skryptów pierwszy raz się bawię.
EDIT:Już wiem co z tym drugim, zaraz sprawdzam.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Spróbuj
AI_Teleport(Hlp_GetNpc(Npc_GetTarget(hero)), "TAVERNE");Jednak wydaje mi się że kiedy wchodzimy do ekwipunku, cel jest odznaczany. W ogóle wchodzenie do ekwipunku w trakcie walki jest bez sensu, chyba że to jest do używania poza nią.

Sawik, to co dałeś wymaga przecież oCNpc i Ikarusa, zobacz z kim piszesz...

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond
zobacz z kim piszesz...
Po 1:
Zraniłeś mnie
Po 2:
Bawię się w Ikarusię.
 

maciejh

maciejh

Rzeka
posty779
Propsy258
ProfesjaScenarzysta
  • Rzeka
Zamiast pisać takie posty to dawaj odpowiedź bo też jestem ciekawy czy to działa :lol2:
 

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond

Paser

Pierścień teleportujący wroga
#6 2012-03-25, 20:33(Ostatnia zmiana: 2012-03-25, 20:33)
To co dał Avallach normalnie nie działało(nie chciało się zreparsować), zrobiłem drobne poprawki i wyszło mi takie coś:
    var C_NPC oth;
    oth = Hlp_GetNpc(Npc_GetTarget(hero));
    AI_Teleport(oth, "TAVERNE");
Skrypty poszły ale po użyciu nic nie dawały co oznacza że po prostu w ekwipunku nie da się zaznaczać celów.
A co do Ikarusa to wyrzuciłem go w cholerę dlatego że jest niekompatybilny z GMP a to ma być właśnie to pwnowania noobów i trolli na pewnym rosyjskim servie którego właściciel jest moim znajomym i mi dodaje zmoddowane rzeczy do klas.

Zrobię miecz wywołujący to i wam powiem czy działa.
 

maciejh

maciejh

Rzeka
posty779
Propsy258
ProfesjaScenarzysta
  • Rzeka
Młeh. Ja bym spróbował zrobić tak czar.
 

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond

Paser

Pierścień teleportujący wroga
#8 2012-03-25, 20:36(Ostatnia zmiana: 2012-03-25, 20:37)
Czaru robić nie będę, najwyżej łuk/kuszę, ty rób jak chcesz.Nie lubię paprania się w skryptach czarów.
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Avallach, sam pomagałem mu już wcześniej z ikarusem i chyba LeGo, dlatego byłem pewien że go używa.


Paser, funkcja on_equip wykonuje się w trakcie założenia przedmiotu. Jeżeli chcesz by funkcja wywołała się w wybranym przez ciebie momencie przypisz ją do klawisza.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond
Mówię że wywaliłem Ikarusa bo ten addon musi być kompatybilny z gmp.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Pierścień teleportujący wroga
#11 2012-03-25, 21:27(Ostatnia zmiana: 2012-03-25, 21:48)
Zraniłeś mnie
Uznałem że skoro masz problem tego typu, to znaczy że z grubsza ogarniasz podstawowe skrypty, ale daleko ci do Ikarusa.

Co do broni, to funkcja musiałaby być wywoływana w _Work\data\Scripts\Content\AI\Human\B_Human\B_AssessDamage.d wewnątrz nowego warunku sprawdzającego broń atakującego:
if (Hlp_IsItem(Npc_GetReadiedWeapon(other), twojeinstancebroni))
{
AI_Teleport(self, "TAVERNE");
};
Nie pisałem w Daedalusie od lat, jeśli tu też nie można zagnieździć funkcji, to jak poprzednio skorzystaj z pomocniczej zmiennej...

W ogóle nie ogarniam jak to gmp działa skoro pozwala na takie rzeczy. Każdy może sobie odpalić grę z modem i teleportować innych? Konsolą też mógłbyś mordować? Serwery w tego typu grach powinny być autorytatywne.

Przy okazji przeglądając teraz skrypty zauważyłem takie coś:const int FAI_Bear = 45; //BärSzkoda że nie zrobili asc#msg1028469a i tekstury.

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond

W ogóle nie ogarniam jak to gmp działa skoro pozwala na takie rzeczy. Każdy może sobie odpalić grę z modem i teleportować innych? Konsolą też mógłbyś mordować? Serwery w tego typu grach powinny być autorytatywne.

Jest anty cheat, w gmp da się wgrywać vdf-y (.mod nie obsługuje) tylko na potrzeby własnego serva w którym określa się w anty cheatcie md5 pliku vdf lub po po prostu wyłącza anty cheata.NIe którzy albo ni9e umieją się posługiwać anty cheatem albo po prostu go nie zakładają bo nie widzą w tym sensu bo jest hack do gmp więc co to zaróżnica czy ktoś skrytpuje czy nie.

A marvin mode jest zablokowany

Co do tego co mi mówiłeś o zaraz sprawdzę.
 

KiełbasianTM

KiełbasianTM

Użytkownicy
posty73
Propsy5
  • Użytkownicy
Mówię ci lepiej weź się z czarami pobaw, nawet bez Ikarusa możesz "przekształcić" że tak powiem pierścień w czar. To jest łatwizna wystarczy pooglądać tutki gdzieś na forum...

Cytuj
Co do tego co mi mówiłeś o zaraz sprawdzę.

Coś długo sprawdzasz :naughty:  :ayfkm:
 
Moje opowiadanko



- Je**ć dzieci!

- A starczy nam czasu?

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond
Nie działa to, kurde, Rafał Budzis robił miecz runiczny teleportujący.Mam nadzieje że się tu odezwie.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Mówisz masz xD


Jak ma to działać na 2 gracza to ja bym zrobił to tak.

FUNC VOID Equip_pulapka()
{
        self.aivar[49] = TRUE;
};
FUNC VOID UnEquip_pulapka()
{
        self.aivar[49] = FALSE;
};

I jeśli chodzi o teleportowanie wrogich NPC to do funkcji

ZS_Attack()
na sam początek dodaj

if (other.aivar[49] == TRUE){//Jeżeli przeciwnik (my) mamy ubrany pierscień
        AI_Teleport(self, "TAVERNE");//teleportuj atakującego
};


Jeśli chodzi o innych graczy to możesz sprawdzać przy uderzeniach
"_Work\data\Scripts\Content\AI\Human\B_Human\B_AssessDamage.d"
Czy przeciwnik ma ubrany pierścień

if (other.aivar[49] == TRUE){//Jeżeli przeciwnik ma ubrany pierscień
        AI_Teleport(self, "TAVERNE");//teleportuj atakującego
};

Fajnie by było do if`ów dodać

Wld_PlayEffect("spellFX_Teleport_RING",self,self,0,0,0,FALSE);
bedzie w tedy efekt teleportu pokazany (same kółko)

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond
Bardzo dobrze wyjaśniłeś ale mi chodziło o to bym ja musiał mieć pierścień (ta osoba nie musiała by go mieć) i po jego założeniu osoba namierzona teleportowała się do danego miejsca (ale okazało się że namierzenie osoby w eq nic nie daje), a więc teraz jedynym działającym sposobem była by bro, najlepiej dystansowa, zrobiłem prototyp łuku z efektem w pliku accessdemage czy jakoś tam(ale przy testach nic to nie dawało).Miało by to teleportować samego wroga.Co ty o tym sądzisz ?
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Przeczytaj jeszcze raz pierscien działa tak

- NPC chce zatakować nas - jest teleportowany
- 2 gracz uderzę w nas (obojętnie czym) - jest teleportowany

Działa tak jak miało działać i nie potrzeba żadnej broni

zaraz zrobię i wyślę filmik jak to działa

Paser

Paser

Użytkownicy
Crazy Diamond
posty281
Propsy119
ProfesjaNierób
  • Użytkownicy
  • Crazy Diamond
Ale chodziło o to że ja mam zaatakować by kogoś prze teleportować, chyba cię nie rozumiem.Chociaż to z tym że jak on atakuje mnie to też bardzo przydatne.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Jeśli inny gracz nas atakuje to my jesteśmy przeciwnikiem dlatego tak napisałem.


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry