Ikarus (Pakiet skryptów) 413462 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 413462

Odpowiedzi 1020

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
MEM_AssignContentInst to stara wersja MEM_AssignInst. MEM_AssignInst przypisuje do instance nową instance (albo pointer). Niektóre instance się resetują przez system gry (tak jakbyś zmienił instance i zmienił na pierwotną zaraz po pierwszej zmianie), przez to ta funkcja. Z tego co mi wiadomo to nie ma jako tako sensu używania tego poza hookami.
 
: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
Lol tak swoją drogą czemu nagle nie działa mi ten zapis z PermMem?
class aCManager
{
var int first;
var int last;
var int count;
var int state;
};

INSTANCE MsgManager(aCManager);

func void Example()
{
        var int a; a = new (MsgManager);
var aCManager Manager; Manager = get(a);

if(Manager.count)
  {
Print(IntToString(Manager.count));
};
};
Zmienna została  ustalona w innej funkcji, Example jest wywołane PerFrame... Ale czemu nie ma ona wartości? Dafuq ;-;


 

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.
Nie znam się na PermMem, ale czy aby na pewno musisz robić nową zmienną? Starczy if (MsgManager.count)
 
: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
Dobra xD Należy zapisać to do zmiennej GLOBALNEJ nie LOKALNEJ... Bo w takim wypadku zawsze, ale to zawsze utworzy nowy obiekt ów klasy.
 

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

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Takie pytanie... Czy w Ikarusie jest możliwa praca na wektorach?
Np:
C++
zCVob* pCam = _ogame->GetCamera()->m_pVob;
zVEC3 vCamPos = pCam->GetPositionWorld();

player->SetPositionWorld(vCamPos + zVEC3(0,100,0));
Czysty przykład, ale czy było by takie coś możliwe w Ikarusie?
 

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

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
var int vec[3];
vec[0] = x;
vec[1] = y;
vec[2] = z;
var int vecPtr; vecPtr = _@(vec);
 
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č
Tak i nie, nie ma takich skrótów jak w C++ bo Ikarus nie zna operacji nad zVec3

wygląda to tak
//-------------------------MOVE----------------------------
func void TRF_Move(var zCVob obj, var int dx, var int dy, var int dz) {
    obj.trafoObjToWorld[ 3] = addf(obj.trafoObjToWorld[ 3], dx);
    obj.trafoObjToWorld[ 7] = addf(obj.trafoObjToWorld[ 7], dy);
    obj.trafoObjToWorld[11] = addf(obj.trafoObjToWorld[11], dz);
};

Kod od Legona. Trafo.d gdzieś na WoG
 


Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
More specifically there's no such thing as operator overloading in Daedalus, so you'll have to do your calculations "explicitly":
vec[0] = one_vector[0] + another_vector[0];
...

Edit: Apparently Mark beat me to it.
 
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
A tak ostatnie odchodząc od tematu... Czy da się zrobić tak, że gdy podczas gry zmieniam wygląd miecza (Visual) to po wczytaniu został ten który zmieniłem?
Planuje zrobić pochwy na miecze, ale w inny ciut cięższy sposób(pod względem 3d) ale boje się, że Visual miecza nie zostanie zachowany po wczytaniu gry :<
 

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.
Szybkie pytanko; jak pobrać item instance z aktualnie używanego czaru? Chcę ostro przerobić zadawanie obrażeń przez czary i potrzebuję pobierać wymagany krąg aktualnie używanej runy.

@Siemekk Może pomoże: http://forum.worldofplayers.de/forum/threads/969446-Skriptpaket-Ikarus-3/page9?p=16944337#post16944337
 
: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
 

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.
Szukałem. Nic tam nie ma.
 
: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

Siemekk
Złote Wrota

Ikarus (Pakiet skryptów)
#832 2017-01-28, 20:37(Ostatnia zmiana: 2017-01-28, 20:43)
Może spróbuj GetSlotItem.
Cytuj
@Siemekk Może pomoże: http://forum.worldofplayers.de/forum/threads/969446-Skriptpaket-Ikarus-3/page9?p=16944337#post16944337
To zmienia przedmiot na slocie.
Mi chodzi o coś takiego:
var C_ITEM it; it = _^(MEM_ReadInt(ESP+4));
it.visual = "abc.3ds";
 

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.
Dobra. Problem nieaktualny. Oto skrypt (nie testowany, nie mam czasu jak na razie żeby go przetestować - chęci też nie :F ).

//0x00680270 public: class oCItem * __thiscall oCNpc::GetSpellItem(int)
const int oCNpc__GetSpellItem = 6816368;
func MEMINT_HelperClass MEM_GetItemSpell(var C_NPC npc)
{
const int call = 0;
if (CALL_Begin(call))
{
CALL_IntParam(_@(true));
CALL__thiscall(_@(npc), oCNpc__GetSpellItem);
call = CALL_End();
};
_^(CALL_RetValAsInt());
};

Używanie:
var oCItem itm; itm = MEM_GetItemSpell(npc);//bez żadnego _^
 
: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.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator

Splash
Moderator

Ikarus (Pakiet skryptów)
#834 2017-01-28, 20:53(Ostatnia zmiana: 2017-01-28, 21:03)
To na bank jest źle. Argumentem funkcji ma być indeks tablicy.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Indeks jakiej tablicy? :F

@Splash Czy aby na pewno zwraca to instance runy? Z tego co mi wiadomo to to zwraca nr czaru (np. 34).
 
: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
Zapewne tej w której zapisane są zaklęcia.
To chyba będzie to:
func oCItem MEM_GetItemSpell(var C_NPC npc)
{
const int oCNpc__GetSpellItem = 4692992; //0x00479C00
const int oCMag_Book__GetSelectedSpell        = 4683648; //0x477780
if (Npc_GetActiveSpell(npc) == -1)
{
        var C_Spell ret; ret = MEM_NullToInst();
        MEMINT_StackPushInst(ret);
        return;
    };
const int call = 0;
    if (CALL_Begin(call))
{
var int book; book = MEM_ReadInt(_@(npc)+2324);
        CALL__thiscall(_@(MEM_ReadInt(_@(book)), oCMag_Book__GetSelectedSpell);
        call = CALL_End();
    };
   var int oCSpell_Pointer; oCSpell_Pointer = CALL_RetValAsPtr()+128;


const int call2 = 0;
if (CALL_Begin(call2))
{
CALL_IntParam(oCSpell_Pointer);
CALL__thiscall(_@(npc), oCNpc__GetSpellItem);
call2 = CALL_End();
};
_^(CALL_RetValAsInt());
};
Pisane na szubko, więc pewnie źle.
 

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

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Cytuj
Indeks jakiej tablicy?
Zapisanych czarów w oCMag_Book

To powinno być dobre:
func int GetReadiedSpell (var c_npc slf)
{
var oCMag_Book magbook; magbook = _^ (_@ (slf)+2324);
return MEM_ReadIntArray (magbook.spellitems_array, magbook.spellnr);
};
 
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
Tak więc... Napisałem taką funkcję:
func int zCVisual_LoadVisual(var string vis)
{
const int zCVisual__LoadVisual = 6318800; //0x00606AD0
CALL_zStringPtrParam(STR_Upper(vis));
CALL__cdecl(zCVisual__LoadVisual);

return CALL_RetValAsInt();
};

func void Set_ItemVisual(var c_item itm, var string vis)
{
const int oCItem__SetVisual = 7411984; //0x00711910
CALL_PtrParam(zCVisual_LoadVisual(vis));
CALL__thiscall(MEM_InstToPtr(itm),oCItem__SetVisual);
};
Działa, Visual broni zostaje zmieniony. Ale problem pojawia się gdy wczytam grę... Miecz ma stary visual a nie ten nowy... Czy da się to jakoś naprawić?
 

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

Splash

Splash

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


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