Ikarus (Pakiet skryptów) 412436 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 412436

Odpowiedzi 1020

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Tak btw. Potrzebuję funkcji która zrespi mi "Instancję" na danych koordynatach.
MEM_InsertItem(); z lego mi Crashuje.
Zaś ta funkcja z WoG'a też mi crashuje:
func void MEM_InsertItemInstance (var int inst, var int fX, var int fY, var int fZ) {
    var zCWaynet wayNet; wayNet = MEM_PtrToInst(MEM_World.wayNet);
    var zCWaypoint wp; wp = MEM_PtrToInst(MEM_ReadInt(wayNet.wplist_next+4));
    var int x; x = wp.pos[0];
    var int y; y = wp.pos[1];
    var int z; z = wp.pos[2];
    wp.pos[0] = fX;
    wp.pos[1] = fY;
    wp.pos[2] = fZ;
    Wld_InsertItem(inst, wp.name);
    wp.pos[0] = x;
    wp.pos[1] = y;
    wp.pos[2] = z;
};
Chciałbym zrespić vob'a na przeciwko bohatera, a potem móc nim manipulować, ale bez pojawienia się VoB'a nie dam rady :I
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Jeśli w próbujesz umieścić przedmiot w świecie, w którym nie ma waypointów, to się nie dziw, że nie działa.
 
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!
Spróbuj stworzyć nową instancję voba za pomocą tego:
0x005FD940 static zCObject * __cdecl zCVob::_CreateNewInstance(void)następnie skonfiguruj go (pozycja trafoObjToWorld, wyglad itd...) i dodaj do świata wywołując to:
0x00624810 zCTree<zCVob> * __thiscall zCWorld::AddVob(zCVob *)Powinno działać bez waypointów w świecie  :ok:
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Chcesz VOBa, nie przedmiot?

var int myVob;
myVob = MEM_InsertVob("Twój wygląd", "wp");

var zCVob myVobItem;
myVobItem = _^(myVob);

myVobItem.trafoObjToWorld[zCVob_trafoObjToWorld_X] = addf(oCNpcHero._zCVob_trafoObjToWorld[zCVob_trafoObjToWorld_X], 50);

myVobItem.trafoObjToWorld[zCVob_trafoObjToWorld_Z] = oCNpcHero._zCVob_trafoObjToWorld[zCVob_trafoObjToWorld_Z];

myVobItem.trafoObjToWorld[zCVob_trafoObjToWorld_Y] = oCNpcHero._zCVob_trafoObjToWorld[zCVob_trafoObjToWorld_Y];

Nie próbowałem, ale powinno działać.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Tak jeszcze jedno :F Jak wywołać cały VFX na itemie ?
Wld_PlayEffect("Spellfx_FireArmor", her, MET_ITEM, 0, 300, DAM_MAGIC, FALSE);
To powoduje że vfx leci w stronę tego no... przedmiotu. A jak zrobić by moje "jabłko" się paliło w całości (oprócz zmiennej effect w klasie oCNpc)...
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
@Bogdan: That code won't spawn the item in front of the hero, you can't simply add to the x-coordinate. You have to do it like this:

const int zCVob__Move_G2 = 6402784; //0x61B2E0
const int zCVob__Move_G1 = 6217184; //0x5EDDE0
func void Vob_Move(var int ptr, var int x, var int y, var int z) {
    CALL_FloatParam(x);
    CALL_FloatParam(y);
    CALL_FloatParam(z);
    CALL__thiscall(ptr, MEMINT_SwitchG1G2(zCVob__Move_G1, zCVob__Move_G2));
};



func void moveVobInFront(var int vobPtr) {
var zCVob her; her = Hlp_GetNpc(hero);
var zCVob vob; vob = _^(vobPtr);

// trafo kopieren
MEM_CopyBytes(_@(her)+60,   vobPtr+60,   64);     

// Vob vor den Helden setzen
var int delta; delta = mkf(50);
Vob_Move(vobPtr, mulf(her.trafoObjToWorld[10], delta), mulf(her.trafoObjToWorld[6], delta), mulf(her.trafoObjToWorld[2], delta));

};

So you'd call it like this:

var int myVobPtr;
myVobPtr = MEM_InsertVob("Twój wygląd", "wp");
moveVobInFront(myVobPtr);

That will move the item 50 units in front of the hero (see "delta" to change distance).

See this post and the following for a more thorough explaination: http://forum.worldofplayers.de/forum/threads/1408430-Skriptpaket-LeGo-3/page5?p=24747762&viewfull=1#post24747762
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Tak jeszcze jedno, pytanie odskakujące od poprzednich. Jak mogę przypisać zaklęcie do MagMook'a ? Mam przypisanie hero do oCMag_Book. Ale nie wiem jak zrobić, aby dane zaklęcie przypisało się do slotu np. 4:
var oCNpc her; her= Hlp_GetNpc(hero);
var oCMag_Book Book; book=_^(her.mag_book);
var int Itemptr; Itemptr= her.inventory2_oCItemContainer_selectedItem+2;
var oCItem item; item = MEM_PtrToInst(itemPtr);
if(item.mainflags != ITEM_KAT_RUNE){return;};
if(MEM_KEYSTATE(KEY_4)==KEY_PRESSED)
{
//Co zrobić aby przypisać item pod (w tym wypadku KEY_4) ?
};
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Powinno działać:
MEM_WriteIntArray (book.spellitems_array, 4, Itemptr);
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Czy jest możliwość dobrania się do tekstury dialogbox'a ? Tego na górze. Z ChoiceBoxem nie miałem problemu, zaś z Dialog boxem już mam. Nie wiem gdzie szukać klasy do niego.
_^(MEM_Game.array_View[0]); odpada. bo już sprawdzałem :F
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Angielski znasz?
    /*
    enum oTGameDialogView
    {
        GAME_VIEW_SCREEN        ,
        GAME_VIEW_CONVERSATION  ,
        GAME_VIEW_AMBIENT       ,
        GAME_VIEW_CINEMA        ,
        GAME_VIEW_CHOICE        ,
        GAME_VIEW_NOISE         ,
        GAME_VIEW_MAX
    }*/
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Dzięki. Wpisywałem array ekranu a nie tego conversation :facepalm:
Gotowiec dla leni:

var int ChoiceBox_ptr; ChoiceBox_ptr = MEM_ReadInt(MEMINT_oCInformationManager_Address+28);
MEM_WriteInt(ChoiceBox_ptr+96,zCTexture_Load("CA_Alpha.tga"));

var zCView ConversationBox_Ptr; ConversationBox_Ptr = _^(MEM_GAME.array_view[1]);
ConversationBox_Ptr.pposy = 1;
ConversationBox_Ptr.backTex = zCTexture_Load("CA_Alpha.tga");
Przykładowe zastosowanie to np. w CinemaScope (zmiana tekstury na 100% alfę, aby można było je w spokoju wyłączyć)

Jeszcze jedna sprawa. Jak sprawić aby strzała nie znikała z ekwipunku gdy mamy ją w ręce ??? W kołczanie gdy wyjmę strzałę powinienem mieć 6 sztuk(w kołczanie) a mam 5... i tak w kółko. Ale gdy schowam łuk to normalnie mam 7...
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Bo strzała jest usuwana z ekwipunku i umieszczana w ręce.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Da się to jakoś naprawić, lub zrobić w jakiś sprytny sposób na zmiennych ?
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Hookować funkcje wyciągania i odkładania broni dystansowej by dodać lub usunąć pocisk z ekwipunku?
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
@SiemaczyS  tak przypadkiem CA_Alpha.tga nie jest alpha textura z mojego CGP ? :P nie jest prosciej ustawic color tego boxa na (0,0,0,255) ?  :F
 


Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Albo po prostu ustawić 0 zmiennej alpha.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Jest :p Zapomniałem napisać. Ale chyba każdy powinien skojarzyć CA z Carnage :)
Chyba kolor też mógł być, ale wolałem zmienić teksturę, aby nie było problemów z powrotem do normalnego stanu :)
@Splash gdy ustawiłem na 0 to wtedy napis też znikał, z powodu że view jest połączony z napisem.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
Nie martwi mnie autorstwo, ustawiane textury zdało się toporniejsze od alpha, ale skoro jest problem z textem.
A tez chyba texture masz w paczce, bo nie każdy ma cgp i tą texture
 


Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Siemanko :P
Jako iż mi się nudziło, i chciałem przy okazji napisać nowy system powiadomień, to napisałem funkcje która tworzy tekst na teksturze.
Funkcja wzorowana na CZ, ale może komuś się przydać. Ma mniej argumentów niż View_AddText i jest krótsza. Ale koniec gadania kod:
func int Msg_AddText(var int viewptr,var int x, var int y, var string text)
{
CALL_zStringPtrParam(text);//zcview
CALL_IntParam(y);//zcview
CALL_IntParam(y);//x pixel
CALL__thiscall (getptr(viewptr),8037040);
    return CALL_RetValAsInt();
};
Chyba nie trzeba wyjaśniać przykład:
Msg_AddText(box,5,2800 - CalcPixelPosY(8)/2,"Tekst"); //CALC jest gdzieś w temacie z Ikarusem :P
Wyświetli biały tekst. Zaś jeżeli chcemy zmienić kolor, to funkcje zapisujemy do zmiennej i podpinamy się do zCViewText.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Mogłeś jeszcze dokładnie opisać co to jest to "box" (w przykładzie), bo zapewne znajdą się agenci, którzy nie będą ogarniali jak tego użyć.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.


0 użytkowników i 2 gości przegląda ten wątek.
0 użytkowników
Do góry