Ikarus (Pakiet skryptów) 83042 949

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 83042

Odpowiedzi 949

Siemekk

Siemekk

Złote Wrota
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
QS_GetItem() -> HookEngineF(7369071,6,QS_GetItem);
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1733
Propsy467
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
var aCQuickSlot qs; qs = get(new(aQuickSlot));

var aCQuickSlot qs; qs = new(aQuickSlot);

W ogóle to podejrzyj już gotowce. Musisz zrobić jeszcze instance do tej klasy.
 
: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
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
Prosty pointer do klasy zCObjectFactory!!
W dość prosty sposób stworzyłem wskaźnik który wskazuję na klasę zCObjectFactory. Wykorzystuje się go jak np. MEM_CAMERA. Oto Kod:
//Pusta klasa, nie mam jeszcze wskaźników.
class zCObjectFactory
{
};
//Instancja:
instance MEM_Factory(zCObjectFactory);
//Inicjacja w funkcji: MEM_InitGlobalInst()
MEM_Factory = _^(MEM_ReadInt(MEMINT_ObjectFactory));
I gotowe :D Wszystko pięknie śmiga ;)
Btw. Na WorldOfPlayers.ru są wszystkie adresy z G2, jednak nie są w arkuszu kalkulacyjnym lecz w zwykłym pliku tekstowym :/
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1733
Propsy467
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Wszystko ok, tylko dwa pytania:
1. Co to jest? MEMINT_ObjectFactory
2. Do czego ta klasa jest przydatna?
 
: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
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
Wszystko ok, tylko dwa pytania:
1. Co to jest? MEMINT_ObjectFactory
2. Do czego ta klasa jest przydatna?
Ups, zapomniałem o adresie.
const int MEMINT_ObjectFactory = 9276912;//0x008D8DF0
Klasa tworzy różne obiekty, które można później wykorzystać jako wskaźnik. np.
virtual zCWaypoint* CreateWaypoint(void)
{
XCALL(0x0076FEA0);
};
Gdzie wystarczy CALL__thiscall(_@(MEM_Factory),0x0076FEA0); //rzecz jasna DEC
I mamy już wskaźnik do klasy zCWaypoint.
Takie pytanie xD Napisałem render przedmiotu w taki sposób:
func void _QS_RenderItem(var int slot,var int itm, var int view, var int RenderI)
{
view = 1; //brak view na chwile obecną
if(view)
{
if(!MEM_ReadStatArr(QS_RenderDeb,slot))
{
RenderI = Render_AddItem(itm,Calculate_ViewPos(slot),256,Calculate_ViewPos(slot)+512,256+512);
// Render_AddView(view);
Render_OpenView(RenderI);
MEM_WriteStatArr(QS_RenderDeb,slot,true);
};
};
};
I wywołuje go np. tak:
_QS_RenderItem(1,strzala,0,QS_RenderID[1]);
RenderID to tablica, ale gdy chce usunąć render pojawia się błąd bo render wynosi 0, i nie znika... O co chodzi, czy Render i View nie może zostać zapisany w tablicy?
Dodam, że Print z napisem "Remove" pojawia się gdy użyje funkcji.
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1733
Propsy467
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
@Siemekk Nie wiem, czy już sobie z tą myszką poradziłeś, ale znalazłem funkcję, która Cię zaciekawi (tzn. funkcję Mud-Freak'a):

/* Mouse handling for manually turning the player model by mouse input */
func void freeAimManualRotation() {
    if (!freeAimIsActive()) { return; };
    var int deltaX; deltaX = mulf(mkf(MEM_ReadInt(mouseDeltaX)), MEM_ReadInt(mouseSensX)); // Get mouse change in x
    if (deltaX == FLOATNULL) { return; }; // Only rotate if there was movement along x position
    deltaX = mulf(deltaX, castToIntf(FREEAIM_ROTATION_SCALE)); // Turn rate
    var int hAniCtrl; hAniCtrl = MEM_ReadInt(_@(hero)+2432); // oCNpc.anictrl
    const int call = 0; var int null;
    if (CALL_Begin(call)) {
        CALL_IntParam(_@(null)); // 0 = disable turn animation (there is none while aiming anyways)
        CALL_FloatParam(_@(deltaX));
        CALL__thiscall(_@(hAniCtrl), oCAniCtrl_Human__Turn);
        call = CALL_End();
    };
};

Tu kod, który skaluje szybkość myszki pozycji X.
const float  FREEAIM_ROTATION_SCALE     = 0.16;                 // Turn rate. Non-weapon mode: 0.2 (zMouseRotationScale)
var int deltaX; deltaX = mulf(mkf(MEM_ReadInt(mouseDeltaX)), MEM_ReadInt(mouseSensX)); // Get mouse change in x
deltaX = mulf(deltaX, castToIntf(FREEAIM_ROTATION_SCALE)); // Turn rate

Powinno Ci pomóc.
 
: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
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
Dzięki, jak skończe QuickSlot'a to wezmę się za ten cholerny kursor.
Btw. Próbuję założyć tarczę(_EquipItem()), ale nie pojawia się na slocie :/ Ktoś wie jak najlepiej sprawić aby pojawiała się?
Funkcja Equip_Item by Splash:
func void _EquipItem(var c_npc slf, var int inst)
{
CALL_PtrParam(MEM_InstToPtr(inst));
CALL__thiscall(MEM_InstToPtr(slf),7545792);
};
//A tu mój kod do zakładania tarczy

func void _QS_Shields(var int inst)
{
var oCNpc her; her = Hlp_GetNpc(hero);
if(GetSlotItem(hero,"ZS_SHIELD"))&& (!her.fmode)
{
var c_item shield; shield = _^(GetSlotItem(hero,"ZS_SHIELD"));
if(Hlp_GetInstanceID(shield) != inst)
{
_Unequip_Item(hero,Hlp_GetInstanceID(shield));
_EquipItem(hero,inst);
};
}
else if(!GetSlotItem(hero,"ZS_SHIELD")) && (!her.fmode)
{
_EquipItem(hero,inst);
};
};
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1733
Propsy467
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Czy mainflag Twojej tarczy to ITEM_KAT_NF?
 
: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
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
Tak.
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1733
Propsy467
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Wychodziło by na to, że system pack używa innej funkcji zakładania przedmiotu. Musiałbyś pogadać o tym z MaGoth'em.
 
: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

Gry (themodders@telegram)
And i said...
posty3547
Propsy2558
ProfesjaSkrypter
  • Gry (themodders@telegram)
  • And i said...
Cytuj
Funkcja Equip_Item by Splash
By Piranha Bytes* xD
 

Siemekk

Siemekk

Złote Wrota
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
Przeszperałem całą klasę oCNpc.h Jednak nic nie znalazłem ;/ Jedyne co mam to nowe metody AST np.
EquipWeapon_ast(oCItem*);
Jednak nie mam kodu źródłowego tych funkcji :/ Ale zapewne tam może być odpowiedź ponieważ:
mają External'a który pozwala założyć np. Npctowi hełm lub lewego duala.
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

K4R0L111

K4R0L111

Użytkownicy
posty36
Propsy13
ProfesjaSkrypter
  • Zbanowany
A w pliku SystemPack.ini zmieniłeś EnableShields na 1?

Splash

Splash

Gry (themodders@telegram)
And i said...
posty3547
Propsy2558
ProfesjaSkrypter
  • Gry (themodders@telegram)
  • And i said...

Splash
Gry (themodders@telegram)

Ikarus (Pakiet skryptów)
#813 2017-01-13, 13:33(Ostatnia zmiana: 2017-01-13, 13:40)
W pliku Trialoge znajduje się funkcja EquipWeapon. Działa prawidłowo na broni do walki wręcz jak i tarczach. Funkcja sama zdejmuje broń, jeśli próbujesz założyć tą sama broń, co masz już założoną. Niestety nie działa za dobrze z bronią dystansową. Ale to działa prawidłowo:
CALL_PtrParam (itemPtr);
CALL__thiscall (MEM_InstToPtr (hero), 7578384);

I jeszcze coś. Okazuje się, że Frame Functions nie zawsze lubi się z funkcjami, których metodą jest klasa oCNpc (nie wykluczam innych). A dokładnie chodzi o funkcję, która jest hookowana do ich funkcjonowania - oCGame::Render. Funkcja jest wywoływana co klatkę przez silnik, dlatego postanowiłem podpiąć do niej swoją funkcję za pomocą HookEngine. Efekt? Gra się scrashowała, a treść błędu z okna access violation wyglądała tak:
[w] 03:53 Warn:  0 ==    ============================================= CALLSTACK : ============================================================== .... <zError.cpp,#474>
[w] 03:53 Warn:  0 00    1B:00780D86 (0x0135FCA8 0x00000000 0x0135FCA8 0x00000000) Gothic2.exe, oCWorldTimer::Timer()+6 byte(s), P:\dev\g2addon\release\Gothic\_ulf\oWorld.cpp, line 1001+6 byte(s) .... <zError.cpp,#474>
[w] 03:53 Warn:  0 00    1B:006C87A5 (0x0082F0EC 0x00000014 0x00380D4C 0x0EBE8410) Gothic2.exe, oCGame::Render()+261 byte(s), P:\dev\g2addon\release\Gothic\_ulf\oGame.cpp, line 2648 .... <zError.cpp,#474>
[w] 03:53 Warn:  0 00    1B:0078188B (0x0000002C 0x000A61EC 0x00000006 0x00000000) Gothic2.exe, MainProg()+75 byte(s), P:\dev\g2addon\release\Gothic\_ulf\Phoenix.cpp, line 111 .... <zError.cpp,#474>
[w] 03:53 Warn:  0 00    1B:00503270 (0x00400000 0x00000000 0x00162747 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
[w] 03:53 Warn:  0 00    1B:00502DFD (0x0135FED0 0x00000000 0x00162747 0x00000001) Gothic2.exe, WinMain()+141 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1054+17 byte(s) .... <zError.cpp,#474>
[w] 03:53 Warn:  0 00    1B:007D43F8 (0x00000000 0x00000000 0x00000000 0x00000000) Gothic2.exe, WinMainCRTStartup()+224 byte(s) .... <zError.cpp,#474>
[w] 03:53 Warn:  0 ==    ===================================== UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#474>

Dla niektórych wygląda ona znajomo. Gdy zhookowałem inną funkcję, moja funkcja wywoła się prawidłowo. Nie mam pojęcia czym jest to spowodowane. Wiem tylko tyle, że Gothic ma swoje humorki i trzeba znaleźć inny sposób na wywołanie funkcji.
 

Siemekk

Siemekk

Złote Wrota
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
Miałem tak z wierzchowcami... Przez co musiałem stworzyć Tick-Tocki. Wtedy działa już normalnie.
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Siemekk

Siemekk

Złote Wrota
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic

Siemekk
Złote Wrota

Ikarus (Pakiet skryptów)
#815 2017-01-17, 15:22(Ostatnia zmiana: 2017-01-17, 16:10)
Czy da w jakiś sposób zapisać do pliku (BinaryMachines) listę ostatnio wykonanych funkcji przez silnik gry? Chciałbym wiedzieć jakie funkcje wykonuje bohater np. gdy umiera... Chodzi mi o zapis do pliku np. tego:
EV_AimAt
EV_AlignToFP
EV_Ask

Post połączony: 2017-01-17, 16:10
Edit:: Lub jak sprawdzić która funkcja odpowiedzialna jest za wywołanie funkcji klawisza? Przeszukałem całe zcinput.h, ale nic ciekawego tam nie ma: Hooki nie działają :/
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Splash

Splash

Gry (themodders@telegram)
And i said...
posty3547
Propsy2558
ProfesjaSkrypter
  • Gry (themodders@telegram)
  • And i said...
Co masz na myśli poprzez "funkcji klawisza"?
 

Fabiosek

Fabiosek

Z życia złodzieja II
xxx
posty2598
Propsy1429
ProfesjaProducent
  • Z życia złodzieja II
  • online
  • xxx
Co masz na myśli poprzez "funkcji klawisza"?

Pewnie wywołanie funkcji poprzez wciśnięcie danego klawisza.
 
Gothic II:
Z życia złodzieja II - Zapowiedź
Z życia złodzieja
The Vulcano Quest - Dubbing PL

Gothic I:
Orcades

Simen to taki nilfgard, za proste przestepstwa ucina rece ~ Mac Dun

Siemekk

Siemekk

Złote Wrota
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic

Siemekk
Złote Wrota

Ikarus (Pakiet skryptów)
#818 2017-01-17, 17:08(Ostatnia zmiana: 2017-01-17, 18:20)
Jakoś znalazłem nie wiem jak, ale działa xD
func void _RemoveKey(var int key)
{
if(MEM_ReadInt(ESP+4)==key)
{
MEM_WriteInt(ESP+4,-1);
};
};

func void RemoveKeys()
{
_RemoveKey(KEY_ESCAPE);//Przykłady
_RemoveKey(KEY_X); //Przykłady
};
[...]
HookEngineF(7324016,7,RemoveKeys); /
Funkcja wyłącza klawisz np. ESC (Nie robi tego co miał robić np. Nie otwiera menu). I tu co dziwne działają funkcję Ikarusowe MEM_KeyState!! Więc dla przykładu... Można wyłączyć stare menu i napisać nowe z użyciem LeGo i Ikarusa!
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza

Siemekk

Siemekk

Złote Wrota
Szlachcic
posty1755
Propsy564
ProfesjaSkrypter
  • Złote Wrota
  • Szlachcic
Czym jest MEM_AssignContentInst?
Rozumiem że przypisuje ona wartość Instancji... Ale czy można to jakoś zastąpić?
Przykład:
INSTANCE wilczek(C_ITEM);

MEM_AssignContentInst(wiczek, moja wartość);
Czy da się to jakoś zastąpić(np. PermMem get(), new() etc.)
 
Nie mam nic przeciwko jeśli poprosisz o pomoc...
Tylko jak już prosisz to nie proś o podstawy lub Ikarusa & LeGo gdy nie znasz nawet podstaw.
Moje skrypty:
Dwa ostrza


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