Dobijanie 3823 11

O temacie

Autor RafalBudzis

Zaczęty 19.02.2011 roku

Wyświetleń 3823

Odpowiedzi 11

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
w jakim zs znajduje się dobijanie przeciwnika ??
czy jeśli my kogoś dobijamy to też korzystamy z tej pętli ?

i takie mniejsze pytanko można zmienić długość doby ??

Zkirtaem

Zkirtaem

Moderator
Mięso
posty2171
Propsy1689
ProfesjaGracz
  • Moderator
  • Mięso
jaki zs? zs to były pozycje, gdzie jest miecz, gdzie tarcza, etc. i jaka pętla?

animację dobiajnia przeciwnika masz w stylu broni, przykładowo 1st1h.mds czy coś w ten deseń. będzie podpisane komentarzem z tego co pamietam.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
jaki zs? zs to były pozycje, gdzie jest miecz, gdzie tarcza, etc. i jaka pętla?

animację dobiajnia przeciwnika masz w stylu broni, przykładowo 1st1h.mds czy coś w ten deseń. będzie podpisane komentarzem z tego co pamietam.
ZS to też skrypty rutyn npc

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Dobijanie samo w sobie nie jest pętlą, tylko pojedynczym zdarzeniem. W przypadku gracza jest wywoływane przez engine, a w AI jest w ZS_Attack przez funkcję zewnętrzną AI_FinishingMove jeśli Npc_IsInState(hero, ZS_UNCONSCIOUS) (czyli jest "nieprzytomny").
Co do długości doby w sensie stricte nic nie przychodzi mi do głowy. Interesują cię tricki takie jak przeskakiwanie/powtarzanie którejś godziny lub ogólne przyśpieszanie/zwalnianie całej gry?

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
dzięki z zs zrobiłem co chciałem
a co do długości doby to "ogólne przyśpieszanie/zwalnianie całej gry" coś takiego było by dobre przeskakiwanie czasu to bym umiał ale myślałem ze można jakoś prosto edytując kilka stałych i juz :D

można by było zrobić pół nieśmiertelną osobę ?? bo nie mam pomysłu chcę żeby jej normalnie życie spadało ale nigdy nie dało się jej dobić
z npc już załatwiłem :)
teraz co zrobić z naszą postacią
potworami
i łukami bo z łuku zabiją nawet jak nie będą dobijać

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
to chyba logiczne ze jak kogosz strzelisz lukiem to go zabijesz no moze uvazasz ze ma on pasc to nieprzytomnosci i potem go jescze strzala v glowe dobic  :facepalm:  a v sumie jest mozlivosc ze to sie stanie ....
 


inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Ja bym dodał w zs_uncoscious że jeśli to ten npc to ma mu zmienić flags na 2. To akurat proste, nie będzie się go dało dobić (mogłeś od razu napisać że o to chodzi, zs_attack nie ma tu nic do rzeczy). Z łukami jest gorzej, kiedyś z tym kombinowałem i okazało się że chyba nawet nie tyle decyduje o tym typ obrażeń, co sam fakt że broń jest dystansowa.

Wobec powyższego, uważam że chyba najlepszym rozwiązaniem byłoby dodanie w zs_dead warunku że jeśli to jest ten npc, to ma mu dać 1 życia, i natychmiast przełączyć w zs_uncoscious. Ewentualnie można by dalej kombinować.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Ja bym dodał w zs_uncoscious że jeśli to ten npc to ma mu zmienić flags na 2. To akurat proste, nie będzie się go dało dobić (mogłeś od razu napisać że o to chodzi, zs_attack nie ma tu nic do rzeczy). Z łukami jest gorzej, kiedyś z tym kombinowałem i okazało się że chyba nawet nie tyle decyduje o tym typ obrażeń, co sam fakt że broń jest dystansowa.

Wobec powyższego, uważam że chyba najlepszym rozwiązaniem byłoby dodanie w zs_dead warunku że jeśli to jest ten npc, to ma mu dać 1 życia, i natychmiast przełączyć w zs_uncoscious. Ewentualnie można by dalej kombinować.
no dobra dzięki
edycja ZS się przydała bo jak by to wyglądało ze npc jest dobijany za za chwile wstanie :D
a jak nie żyjąca osobę przełączyć do zs_uncoscious ?

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Musisz pamiętać że śmierć to nic innego jak zs_dead ;)
Zwyczajnie AI_StartState (self, ZS_Uncoscious, 0, ""); i dodaj mu 1 hp.

Tak w ogóle to zastanawiam się czy flags_immortal działa przy dobijaniu. Bo teoretycznie zwykłego nieśmiertelnego nie da się doprowadzić nawet do nieprzytomności.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
ok zrobiłem coś takiego
func void nie_zabijalny (var C_NPC sef){

sef.aivar[48]=TRUE;//to do zs_Attack
CreateInvItem (sef, nie_znikaj);//to zeby nie znikł NPC
if(co_robi(sef,BS_DEAD)){

sef.attribute[ATR_HITPOINTS]=1;
AI_StartState (sef, ZS_Unconscious, 0, "");

};
};
i wszystko działa :D  tylko jak go dobijemy to od razu wstaje na nogi :D  można jakoś zrobić żeby był trochę nie przytomny ? :D
niby mi to nie przeszkadza bo skrypt idźe do Refresh Armor i monologu spania ale tak z czystej ciekawości

a i co ze zmianą rutyny ? ;/ bo chciał bym żeby NPC został tam gdzie go "zabito" :D  bo do północy będzie zmieniał wp twarzą w glebie :D
wiec co podać w WP ??
czy te self.wp działa ?? i na ile skutecznie ??

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Self.wp to po prostu zmienna tekstowa. Działa na tyle na ile sam z niej skorzystasz, gdyby rutyny były prostsze można by w nich zamiast konkretnych waypointów podawać po prostu ten self.wp, ale że i tak są w osobnych miejscach to i waypointy wszędzie wpisuje się ręcznie. Same w sobie self.wp nie robi nic. Mógłbyś jednak w momencie pokonania (zs_uncoscious) kazać zapamiętać najbliższy wp i w tym go przywrócić.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
czyli coś takiego ?
to do zs_uncoscious
var string mojpoint;
mojpoint=sef.wp;
sef.daily_routine = Rtn_mojdead;
i rutyna
FUNC VOID Rtn_mojdead ()
{
TA_Sleep (20,45,07,45,mojpoint);
TA_Sleep (07,45,20,45,mojpoint);
};
a i czy zmiana rutyny w taki sposób
sef.daily_routine = Rtn_mojdead;będzie działać ?

obawiam się ze jak zabijemy 2 osoby to pierwszej zmieni się wp z racji zmiany string`a
nie mam pomysłu jak to rozwiązać

można jakoś dodać do klasy C_NPC jednego stringa ? wtedy by się tam zapisywało chwilowo


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