Pobieranie instance przedmiotu w ekwipunku 3452 5

O temacie

Autor carelion

Zaczęty 5.08.2014 roku

Wyświetleń 3452

Odpowiedzi 5

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!
Witam. Potrzebuje pobrać  instance namierzonego przedmiotu w ekwipunku. Niestety kiedy próbuje pobrać instance przedmiotu z mainflag ITEM_KAT_MAGIC nie działa.
Oto skrypt który jest wywoływany w oCNpc__EquipItem przez HookEngine:
var c_npc slf; slf = MEM_PtrToInst(ECX);
var oCNpc _slf; _slf = Hlp_GetNpc(slf);
Npc_GetInvItemBySlot(_slf, 0, _slf.inventory2_oCItemContainer_selectedItem);
print(item.name);
A tu drugi skrypt który też nie działa:
var int itemPtr; itemPtr = MEM_ReadInt(ESP+4);
var c_item _item; _item = MEM_PtrToInst(itemPtr);
print(_item.name);
Czy ktoś ma jakiś pomysł?
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Witam. Potrzebuje pobrać  instance namierzonego przedmiotu w ekwipunku. Niestety kiedy próbuje pobrać instance przedmiotu z mainflag ITEM_KAT_MAGIC nie działa.
Oto skrypt który jest wywoływany w oCNpc__EquipItem przez HookEngine:
var c_npc slf; slf = MEM_PtrToInst(ECX);
var oCNpc _slf; _slf = Hlp_GetNpc(slf);
Npc_GetInvItemBySlot(_slf, 0, _slf.inventory2_oCItemContainer_selectedItem);
print(item.name);
A tu drugi skrypt który też nie działa:
var int itemPtr; itemPtr = MEM_ReadInt(ESP+4);
var c_item _item; _item = MEM_PtrToInst(itemPtr);
print(_item.name);
Czy ktoś ma jakiś pomysł?
\chicken, jesteś w stanie to ogarnąć? :hmmm:
 

Splash

Splash

Moderator
posty4211
Propsy3412
ProfesjaNierób
  • Moderator
var oCNpc her; her = Hlp_GetNpc (hero);
var int iPtr; iPtr = List_GetS (her.inventory2_oCItemContainer_contents, her.inventory2_oCItemContainer_selectedItem+2);
var oCItem itm; itm = MEM_PtrToInst (iPtr);
Print (itm.name);
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!
var oCNpc her; her = Hlp_GetNpc (hero);
var int iPtr; iPtr = List_GetS (her.inventory2_oCItemContainer_contents, her.inventory2_oCItemContainer_selectedItem+2);
var oCItem itm; itm = MEM_PtrToInst (iPtr);
Print (itm.name);
Niestety dalej nie wyświetla nazwy przedmiotom z mainflag ITEM_KAT_MAGIC :/
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Item_Active - Flaga taka, przypisywana przedmiotowi zaznaczonemu. W najgorszym wypadku - sprawdź wszystkie przedmioty w ekwipunku w poszukiwaniu tej flagi. Jednak wygodniejszy dostęp do tego masz poprzez var oCNpc bezi; bezi = Hlp_GetNpc(hero);
var itemPtr = bezi.inventory2_oCItemContainer_selectedItem+2;
var oCItem item; item = MEM_PtrToInst(itemPtr);
Z tego co pamiętam z późniejszej rozmowy z Splashem - działało.
 
Ż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

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!

carelion
RaveN Studio

Pobieranie instance przedmiotu w ekwipunku
#5 2014-08-24, 12:23(Ostatnia zmiana: 2014-08-25, 19:39)
Item_Active - Flaga taka, przypisywana przedmiotowi zaznaczonemu. W najgorszym wypadku - sprawdź wszystkie przedmioty w ekwipunku w poszukiwaniu tej flagi. Jednak wygodniejszy dostęp do tego masz poprzez var oCNpc bezi; bezi = Hlp_GetNpc(hero);
var itemPtr = bezi.inventory2_oCItemContainer_selectedItem+2;
var oCItem item; item = MEM_PtrToInst(itemPtr);
Z tego co pamiętam z późniejszej rozmowy z Splashem - działało.
Niestety przy próbie odczytywania wartości pola np. name wywala z gry  :angry:
var oCNpc bezi; bezi = Hlp_GetNpc(hero);
var int itemPtr; itemPtr = bezi.inventory2_oCItemContainer_selectedItem+2;
var oCItem item; item = MEM_PtrToInst(itemPtr);
print(item.name);

EDIT: Temat można zamknąć to był mój błąd miałem namieszane w plikach  :facepalm:
wersja podana przez Splasha działa  :D
 


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