Ikarus (Pakiet skryptów) 414171 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 414171

Odpowiedzi 1020

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
It's a wrapper for an undiscovered External-Function. The string visual determines the visual of the inserted vob, the function returns a pointer to the vob.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
I made the scrpit and add vis as visaul of the vob, but iam not sure i am following right way.func int MEM_InsertVob(OC_LOB_FLAG_SMALL.3DS, "OC1") {
    MEM_InitGlobalInst(); //MEM_World initialisieren
   
    /* oCMob von Gothic konstruieren lassen */
    Wld_InsertObject(OC_LOB_FLAG_SMALL.3DS, "OC1");
   
    /* Ein Pointer auf das neue Objekt findet sich im Vobtree
     * stets als erstes Kind des globalen Vobtrees */
    var zCTree newTreeNode;
    newTreeNode = MEM_PtrToInst (MEM_World.globalVobTree_firstChild);
    return newTreeNode.data;
};
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Ikarus (Pakiet skryptów)
#162 2011-06-15, 07:14(Ostatnia zmiana: 2011-06-15, 07:17)
Pawbuj, litości :|
MEM_InsertVob("OC_LOB_FLAG_SMALL.3DS", "OC1");Jeśli nie potrafisz odróżnić definicji funkcji od jej wywołania nie bierz się za Ikarusa.

BTW, jeśli ta funkcja różni się tylko zwracaniem wskaźnika do obiektu (z czego domyślam się nie będziesz korzystał z braku potrzeb i umiejętności) to chyba równie dobrze mógłbyś użyć wersji standardowej:
Wld_InsertObject("OC_LOB_FLAG_SMALL.3DS", "OC1");

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Pawbuj, litości :|
MEM_InsertVob("OC_LOB_FLAG_SMALL.3DS", "OC1");Jeśli nie potrafisz odróżnić definicji funkcji od jej wywołania nie bierz się za Ikarusa.

BTW, jeśli ta funkcja różni się tylko zwracaniem wskaźnika do obiektu (z czego domyślam się nie będziesz korzystał z braku potrzeb i umiejętności) to chyba równie dobrze mógłbyś użyć wersji standardowej:
Wld_InsertObject("OC_LOB_FLAG_SMALL.3DS", "OC1");
spójrz na to z tej strony , teraz ja i inni będziemy wiedziec jak to zrobic. leci props za dzielenie się wiedzą.
powiesz , którą funkcją odejmujemy itemy ze skrzyń w ikariusie?

dodajemy, to wiem.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Chyba nie ma gotowej. Może Lehona by potrafiła taką napisać - ja nie mam już nawet Gothica na dysku, wszystko skasowałem.
Prawdopodobnie chodzi o edycję oCMobContainer.containList_data i oCMobContainer.containList_next.

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
There is no function to remove any items from a chest yet, but it's quite easy: Move the item-node from the chest to a NPC and remove the item from his inventory.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
If you want to remove items from a chest just write a function like this (It's actually made from scratch and not tested, but I think you will geht the idea):

var int MOBR_Instance;
var int MOBR_Amount;
var int MOBR_Prev;
var oCMobCointainer MOBR_Chest;

func void Mob_RemoveItems(var string mob, var int instance, var int amount) {
MOBR_Prev = 0;
MOBR_Chest = MEM_GetVobByName(mob);
MOBR_Instance = instance;
MOBR_Amount = amount;
List_ForS(MOBR_Chest.containList_next, "MOBR_SEARCHANDDELETEITEM");
};




func void MOBR_SearchAndDeleteItem(var int nodePtr) {

var zCListSort list; list = MEM_PtrToInst(nodePtr);

if (Hlp_GetInstanceId(list.data) == MOBR_Instance) {
var oCItem itm; itm = MEM_PTrToInst(list.data);
if (itm.amount > amount) {
itm.amount -= amount;
} else {
if (MOBR_Prev) {
var zCListSort prev; prev = MEM_PtrToInst(MOBR_Prev);
prev.next = list.next;
} else {
MOBR_Chest.containList_next = list.next;
};
MEMINT_GetMemHelper();
var oCNPC helper; helper = Hlp_GetNpc(MEM_HELPER);
List_AddS(MEM_Helper.inventory2_oCItemContainer_contents, list.data);
MEM_Free(nodePtr);
Npc_RemoveInvItems(Hlp_GetNpc(MEM_HELPER), MOBR_Instance, MOBR_Amount);
};
};
MOBR_Prev = nodePtr;
};

List_ForS() will just make a call for every single node in a list, so you can replace it with a loop or sth.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
What's the need for helper, can't you just use hero?
 

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
It might have negative side effects, but normally the hero would just do fine.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
It might have negative side effects, but normally the hero would just do fine.
change of color due to npc attitude or chest #msg153679locking  for gothic 1 please.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Ikarus (Pakiet skryptów)
#170 2011-06-30, 18:44(Ostatnia zmiana: 2011-06-30, 18:45)
Kolor imienia NPC zależnie od nastawienia: http://forum.worldofplayers.de/forum/showthread.php?t=986670

Ludzie, łaski. To jedyny temat do którego zaglądają jeszcze poważne osoby związane z moddingiem. Proszę, zanim następnym razem napiszesz tutaj poszukaj najpierw odpowiedzi albo dłużej zastanów się chociaż nad pytaniem. Shothic podał już działający skrypt zmiany koloru nazwy skrzyni zależnie od tego czy coś w niej jest. Zrób analogicznie, sprawdzając oCMobLockable.bitfield pod kątem oCMobLockable_bitfield_locked.

Aha, i jak masz tłumaczyć posty Google Translatorem to już lepiej pisz je po polsku...

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#171 2011-06-30, 20:45(Ostatnia zmiana: 2011-06-30, 21:05)
Kolor imienia NPC zależnie od nastawienia: http://forum.worldofplayers.de/forum/showthread.php?t=986670

Ludzie, łaski. To jedyny temat do którego zaglądają jeszcze poważne osoby związane z moddingiem. Proszę, zanim następnym razem napiszesz tutaj poszukaj najpierw odpowiedzi albo dłużej zastanów się chociaż nad pytaniem. Shothic podał już działający skrypt zmiany koloru nazwy skrzyni zależnie od tego czy coś w niej jest. Zrób analogicznie, sprawdzając oCMobLockable.bitfield pod kątem oCMobLockable_bitfield_locked.

Aha, i jak masz tłumaczyć posty Google Translatorem to już lepiej pisz je po polsku...
sprawdzałeś to w praktyce, że tak chętnie odpisujesz? krytykujesz moja odpowiedź i podważasz znajomość angielskiego - tylko po co?

jak sam nie znasz angielskiego lub tym bardziej niemieckiego to i kogoś nie pouczaj...translatorze
dałes link do  skryptu, który działa tylko pod g2nk (pod g1 to nie działa , co z resztą Lehona sam potwierdził). RGBA działa tylko pod g2nk.

Zastanów się zanim sam odpiszesz...być moze będziesz wtedy godny nazywania siebie "poważną osoba zajmujacą sie moddingiem."

Cytuj
Die Idee entstammt praktisch NicoDE, der u.a. auch für die Idee dieser Hooks verantwortlich ist, er hatte damals meines Wissens versucht ähnliches für G2 zu basteln (Allerdings mit Sourcecode *grml*). Wer G3 gespielt hat, wird es kennen
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Ikarus (Pakiet skryptów)
#172 2011-06-30, 21:10(Ostatnia zmiana: 2011-06-30, 21:24)
Angielskiego uczę się 11 lat...
Nie, nie sprawdzałem tego w praktyce bo nie posiadam Gothica. Podobnie skrypty które daje Lehona też często nie są sprawdzane. Na jakiej podstawie twierdzisz że RGBA nie działa pod g1?

Shothic kilka razy zaznaczył że pisze skrypty pod g1 i jakoś bez problemu z tej funkcji skorzystał: http://themodders.org/index.php?topic=10383.msg148005#msg148005
Dałem link do tamtego skryptu żebyś go samodzielnie dostosował do g1. Zwykle nie wymaga to zbyt wiele pracy, zwłaszcza w przypadku prostych, pojedynczych funkcji jak ta. Tak samo w przypadku skrzyni podałem ci tylko którą wartość (pole bitowe) masz sprawdzić zamiast napisania gotowego warunku (if (oCMobLockable.bitfield & oCMobLockable_bitfield_locked)). Pisanie prośby o pomoc z oczekiwaniem że ktoś dostarczy ci gotowy skrypt nie stawia cię w najlepszym świetle.

Przez poważne osoby zajmujące się moddingiem miałem na myśli tylko i wyłącznie Orcwarriora i Lehonę, przynajmniej pod względem aktywnego i zaawansowanego programowania.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#173 2011-06-30, 21:18(Ostatnia zmiana: 2011-06-30, 21:23)
Angielskiego uczę się 11 lat...
Nie, nie sprawdzałem tego w praktyce bo nie posiadam Gothica. Podobnie skrypty które daje Lehona też często nie są sprawdzane. Na jakiej podstawie twierdzisz że RGBA nie działa pod g1?

Shothic kilka razy zaznaczył że pisze skrypty pod g1 i jakoś bez problemu z tej funkcji skorzystał: http://themodders.org/index.php?topic=10383.msg148005#msg148005
zapoznaj się z tym postem Lehony..

co do jęz. angielskiego twoja wypowiedż była conajmniej lekko przesadzona. No chyba i nie jest to forum , żebyś podważał czyjeś zdolności jęz.

w poprzednim poście przytoczyłem ci jeszcze inny niemiecki tym razem cytat, ze działa to pod g2nk,
Cytuj
Don#msg153785t call this function in your trigger / tick tocka.

Use this function-call (in the way pawbuj showed you some posts ago):


HookEngine(oCGame__UpdateStatus_X, 8, "FOCUSCOLOR");

But if you want it to work for G1, you need to get the correct address (oCGame__UpdateStatus_X is a constant value designed for G2 by me/Gottfried). Orcwarrior might look it up.
Also, if you call it the way pawbuj showed, it will only work outdoor, just call INIT_Global() from the other Inits, too.

Again: This will not work for G1 yet cause the address is wrong!

@Sawik: Do you want to do anything from scratch? Even the hooks? I#msg153785d advice you not to do so. To understand or develop something like the Engine-Hooks, you need some knowledge in machinecode/opcodes/assembler, nothing necessy to be a programmer (or a scripter for gothic). If you just want to make the event-function from scratch... Feel free to do so and ask if any problem you can#msg153785t solve comes up
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Ikarus (Pakiet skryptów)
#174 2011-06-30, 21:29(Ostatnia zmiana: 2011-06-30, 21:32)
Znowu sam podważasz swoją znajomość angielskiego, albo programowania.
Cytuj
Again: This will not work for G1 yet cause the address is wrong!
To NIE znaczy że funkcja RGBA nie działa pod g1.
To znaczy że adres funkcji oCGame__UpdateStatus w g1 jest inny/nieznany.

"Niemiecki tym razem cytat" o ile kojarzę także NIE dotyczy RGBA, ale hooków ogólnie, ale w początkowym okresie ich rozwoju.


Lehona, is function RGBA working on G1?

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#175 2011-06-30, 21:44(Ostatnia zmiana: 2011-06-30, 21:53)
Znowu sam podważasz swoją znajomość angielskiego, albo programowania.

To NIE znaczy że funkcja RGBA nie działa pod g1.
To znaczy że adres funkcji oCGame__UpdateStatus w g1 jest inny/nieznany.

"Niemiecki tym razem cytat" o ile kojarzę także NIE dotyczy RGBA, ale hooków ogólnie, ale w początkowym okresie ich rozwoju.


Lehona, is function RGBA working on G1?
nieczego nie podważam (no może za wyjątkiem twjego poczucia odpowiedzialności za ost. posty)- zmiana koloru nie będzie działała, bo adres jest niewłaściwy. to logiczne , że wtedy RGBa też nie bedzie działać. Nie trzeba być do tego "programistą".. Nie chce mi się dalej prowdzić tej dyskusji - dla mnie wszytsko jest oczywiste. Piszesz czasami bez większego przemyślenia oraz sensu  i próbujesz w tej konkretnej dyskusji odwrócić uwagę.
 

Shothic

Shothic

Użytkownicy
posty38
Propsy17
  • Użytkownicy
Dziwne ale coś jest nie tak w tej funkcji w gothic 1 sprawdziłem i funkcja Npc_GetPermAttitude
nie pokazywała dobrze nastawiania (nie zawsze) ale nie wiem dlaczego, po mojej poprawce u mnie wszystko działa dobrze
sprawdź to :
func void EVT_UpdateStatus_FocusName() {
    const int zCView__SetFontColor = 7339392; //0x7A9910
    var int col;
    var int att;
    var oCNpc her; her = Hlp_GetNpc(hero);
if(Hlp_Is_oCNpc(her.focus_vob)) {
var oCNpc  oth; oth = MEM_PtrToInst(her.focus_vob);
att =  oth.attitude;
if(att == ATT_FRIENDLY) {
col = RGBA(0,255,0,255); //Grün
}
else if(att == ATT_ANGRY) {
col = RGBA(255,180,0,255); //Orange
}
else if(att == ATT_HOSTILE) {
col = RGBA(255,0,0,255); //Rot
}
else if(att == ATT_NEUTRAL) {
col = RGBA(255,255,255,255); //Weiß
};
}
else {
col = RGBA(255,255,255,255); //Weiß
};
   
    var int ptr; ptr = MEM_Alloc(4);
    MEM_WriteInt(ptr, col);
    CALL_IntParam(ptr);
    CALL__thiscall(MEM_ReadInt(screen_offset), zCView__SetFontColor);
    MEM_Free(ptr);
};
I wywołuje ją z Ticktoka
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#177 2011-06-30, 22:05(Ostatnia zmiana: 2011-06-30, 22:07)
niestety wywala jak wczesniej error do stack.

funkcje RGBA wkleiłem na końcu ikarus. d, nie wiem czy to ma znaczenie,nie sądzę

czy do tego hookengine w start-upie masz aktywowany?
 

Shothic

Shothic

Użytkownicy
posty38
Propsy17
  • Użytkownicy

Shothic

Ikarus (Pakiet skryptów)
#178 2011-06-30, 22:11(Ostatnia zmiana: 2011-06-30, 22:12)
To musi być ten sam błąd co wcześniej
czyli u ciebie nie mogą funkcje z ticktoca startować, dziwne bo u mnie jest dobrze
Musisz poszukać adresu jakiejś funkcji która wywołuje się z silnika i do niej podczepić
Postaram się takowej poszukać bo też by mi się przydała ;]

@
ja nie używam hookengine bo nie mam adresu i go nie aktywuje
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Shothic nie rozpędzaj się tak..działa mi zmiana nazwy skrzyni (pełna/putsa)i skróty klawiszowe. wszytsko aktywuję z tick -tokca, tylko w tym wypadku wawala "do stack".
 


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