Udźwig w Gothic II NK 3347 8

O temacie

Autor nocnymocny

Zaczęty 9.12.2014 roku

Wyświetleń 3347

Odpowiedzi 8

nocnymocny

nocnymocny

Użytkownicy
posty65
Propsy6
Profesjabrak
  • Użytkownicy

nocnymocny

Udźwig w Gothic II NK
2014-12-09, 23:17(Ostatnia zmiana: 2014-12-18, 11:32)
Witam! Próbowałem zrobić udźwig w GII NK analogicznie do zasady na jakiej działają amulety, pierścienie, pancerze dodając nową fałszywą wartość obrony  (udźwigu) i wpisując w funkcję danego przedmiotu zmienną określającą jego wagę; błędów nie było, ale zasada działała na tylko te przedmioty, które bohater mógł "założyć" (w/w + miecz, pas itp.). Co miałbym zrobić, żeby po przypisaniu wartości wagi do każdego przedmiotu, był zliczany ciężar wszystkich przedmiotów w ekwipunku? Mógłby ktoś podpowiedzieć, jak miałbym to zrobić? Może jakaś analogia do rozwiązań w Gothicu, o której nie pomyślałem? 
 
https://www.youtube.com/watch?v=5HdbLar5Thg

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
w gothic 1 byla niewkorzystana zmienna weight.nie wiem jak tu jest.
 

nocnymocny

nocnymocny

Użytkownicy
posty65
Propsy6
Profesjabrak
  • Użytkownicy
W Gothic II NK, jest podobnie; w CLASSES jest: VAR INT  weight,value; ale nic więcej, co można wykorzystać.
 
https://www.youtube.com/watch?v=5HdbLar5Thg

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Albo po prostu jeszcze nie wiadomo, że można to wykorzystać.
 

Werewolf

Werewolf

Użytkownicy
Zielony goblin - za dnia biznesmen, w nocy złoczyńca
posty6346
Propsy2478
ProfesjaGracz
  • Użytkownicy
  • Zielony goblin - za dnia biznesmen, w nocy złoczyńca
Cytuj
Albo po prostu jeszcze nie wiadomo, że można to wykorzystać.
Jesli czegos sie nie wie, to wie to @Avallach.
 
http://chomikuj.pl/Thorus12/ = Mody do Gothica - Przeznaczenie, Ludzie z Górniczej Doliny i inne! Mody do RimWorlda!

KOMPUTER:
Spoiler
Windows 7 Professional 64-bit SP1
-Intel Core i7 @ 4.00GHz   Technologia Haswell 22nm
-8,00GB 2-Kanałowy DDR3 @ 666MHz (9-9-9-24)
Gigabyte Technology Co., Ltd. Z97X-Gaming 3 (SOCKET 0)   28 °C
-X220W D-sub (1680x1050@60Hz)
-4095MBNVIDIA GeForce GTX 980 (Gigabyte)
-931GB Western Digital WDC WD10EZEX-08M2NA0 SCSI Disk Device (SATA)
-ASUS DRW-24F1ST a SCSI CdRom Device
-Realtek High Definition Audio

gothic1210
  • Gość
No, ale co z tego, że jest to weight? To tylko puste pole (jakbym poplątał terminologię to popraw, Avallach) w klasie, które można wykorzystać. Problem jest taki, że nie wiadomo jak zliczyć wagę wszystkich przedmiotów w eq.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Tak, to pole. Zliczenie też jest proste - trzeba napisać pętlę (niestety w Daedalusie nie ma normalnych pętli więc trzeba użyć rekursji lub hacków Ikarusowych) w której dla każdego przedmiotu w ekwipunku będzie się odczytywało wartość tego pola, mnożyło przez liczbę sztuk tego przedmiotu i dodawało wynik do ogólnej sumy.

Problemem jest jedynie to KIEDY to robić - nie mamy żadnego eventu / callbacka przy zmianie stanu ekwipunku. Trzeba by dodać hook w silniku w funkcjach CreateInvItem i CreateInvItems i jakiejś która jest wywoływana kiedy gracz podnosi przedmiot z ziemi oraz kiedy przenosi go z jednego kontenera do drugiego (ekwipunek drugiego npc to też rodzaj kontenera). Być może wszystkie te trzy sytuacje są obsługiwane przez jedną funkcję w silniku - trzeba by pogrzebać i sprawdzić.

Ewentualnym rozwiązaniem jest sprawdzanie stanu ekwipunku co jakiś czas (ZDECYDOWANIE odradzam, ale tak jest dużo prościej - wystarczy nawet tick tock).

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Udżwig w Gothic II NK
#7 2014-12-18, 11:28(Ostatnia zmiana: 2014-12-19, 09:08)
w CZ jest info przy każdym podniesieniu itemu z wyświetleniem jego nazwy, zapewne hookiem, bo Orc nie robiłby tego tick tockiem.. Sam tick tock przy kilku funkcjach też widocznie nie spowolni gry.

Powiem szczerze, że sam nie bardzo wiem jak można zliczać wagę. Tzn. jedynie przychodzi mi do głowy oddzielny warunek do zmiennej (weight) każdego itemu , ale to jest ogrom pracy. Pozostaje jeszcze kwestia usuwania itemów z ekwipunku , kiedy całkoqwity udźwig zostanie przekroczony. Można by pokusić się o edycję funkcji Npc_ClearInventory albo jak Avallach pisał przesuwanie do innego kontenera. Ogólnie w praktyce jest to dużo zachodu.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
W ogóle nie zrozumiałeś mojego posta. Wkleję kluczowy kawałek jeszcze raz:
Cytuj
trzeba napisać pętlę (niestety w Daedalusie nie ma normalnych pętli więc trzeba użyć rekursji lub hacków Ikarusowych) w której dla każdego przedmiotu w ekwipunku będzie się odczytywało wartość tego pola, mnożyło przez liczbę sztuk tego przedmiotu i dodawało wynik do ogólnej sumy


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