...
Nachdem ich nochmal deinen getestet habe, fiel mir auf, warum ich den anderen bevorzugt habe:
- die Itemnamen wandern vom Fokus zur Anzeige links (Beispiel im Video)
- kein "Erhalten: " vor jedem Itemnamen
...
Es gibt jetzt eine neue Version von meinem Quickloot Patch:
- Animierter Loot-Text (nur G2, abschaltbar)
- Eigener Präfix möglich ( z.B. "" ) für keinen Präfix
möchtest du den Patch auch im Modifikationen-Forum zeigen, um noch zusätzliche "Tester" zu bekommen? Oder reicht dir zunächst dein eigener Test / Arbeit an der eigenen Mod aus?
möchtest du den Patch auch im Modifikationen-Forum zeigen, um noch zusätzliche "Tester" zu bekommen? Oder reicht dir zunächst dein eigener Test / Arbeit an der eigenen Mod aus?
Eine Hand voll Nutzer testet den Patch bereits zusätzlich zu mir.
Mal sehen, vielleicht mache ich in einem Monat dann mal ein [Patch] Thread im Modifikationsforum auf.
Es gibt jetzt eine neue Version von meinem Quickloot Patch:
- Animierter Loot-Text (nur G2, abschaltbar)
- Eigener Präfix möglich ( z.B. "" ) für keinen Präfix
Ich habe eben patch 1.8.1 (Spine) installiert. Zumindest mit Legend o Asshun funktioniert das mit den Animationen nicht richtig.
- Texte bleiben an der stelle, wo das item lag, liegen
- manche, nicht alle!
- Teleportieren entfernt sie nicht.
- Manchmal ist das nach dem laden weg, manchmal nicht. Dieser Screenshot ist direkt nach dem neustart des Spiels entstanden.
Ich habe eben patch 1.8.1 (Spine) installiert. Zumindest mit Legend o Asshun funktioniert das mit den Animationen nicht richtig.
- Texte bleiben an der stelle, wo das item lag, liegen
- manche, nicht alle!
- Teleportieren entfernt sie nicht.
- Manchmal ist das nach dem laden weg, manchmal nicht. Dieser Screenshot ist direkt nach dem neustart des Spiels entstanden.
PS: Mir gefällt das sowieso nicht. Wie kann man die Animation den deaktivieren?
1. Warum ist der Patch auf Spine? (Ist das überhaupt mein Patch? Anhand der Versionsnummer müsste das sogar der aktuellste sein...)
2. in der Gothic.Ini unter "Ninja_Quickloot" den punkt "UseAnimations" auf "0" setzen
Ich lade mir gerade LoA runter um das mit meinem Patch zu prüfen.
EDIT:
Spoiler:(zum lesen bitte Text markieren)
Ich habe den Patch auf der aktuellsten Version von LoA (1.0.1) getestet.
Truhen, Items vom Boden sowie NPCs werden korrekt geplündert und die Animationen funktionieren korrekt abgespielt.
Zum testen habe ich eine neue Gothic 2 Installation genommen.
- Playerkit 2.6f
- Reportversion Patch
- Union 1.08h
- Ninja (aktuellste Version)
- LoA 1.0 + 1.0.1 Patch
EDIT2:
Nach einigen weiteren Versuchen mit dem Systempack 1.8 stellt sich heraus, das der Anim8 Code tonnenweise Fehler wirft, wenn der Patch in LoA verwendet wird.
Ich habe bereits einen Post im LeGo-Thread geschrieben und dort das Problem vorgestellt. Ich vermute hier eine Fehler Pointer-Auswertung in LeGo. Hoffentlich lässt sich da was machen.
Spoiler:(zum lesen bitte Text markieren)
Code:
01:27 Warn: 0 C: SCRIPT: Npc_IsInState(): illegal param: "LOA_GAR_60033_CORTEZWU" is NULL. .... <oGameExternal.cpp,#252>
01:27 Warn: 0 C: SCRIPT: last parser func-name: _HOOK .... <oGameExternal.cpp,#262>
01:28 Info: 2 U: NPC: AI:Removed NPC Cortez / LOA_MIL_6207_CORTEZ .... <oNpc.cpp,#9082>
01:28 Warn: 0 Q: Assigning new handle 46 (ZCVIEWTEXTPRINT) to patch 'QUICKLOOT'.
01:28 Info: 5 U: FNT: Loading Font: Ninja_QuickLoot_Font_DE.tga .... <zFonts.cpp,#196>
01:28 Info: 4 B: FONT: Loading Font-Data: \_WORK\DATA\TEXTURES\_COMPILED\NINJA_QUICKLOOT_FONT_DE.FNT .... <zFonts.cpp,#361>
01:28 Warn: 0 Q: Assigning new handle 47 (A8HEAD@) to patch 'QUICKLOOT'.
01:28 Warn: 0 Q: Assigning new handle 48 (A8HEAD@) to patch 'QUICKLOOT'.
01:28 Warn: 0 Q: Assigning new handle 49 (A8COMMAND@) to patch 'QUICKLOOT'.
01:28 Warn: 0 Q: Assigning new handle 50 (A8COMMAND@) to patch 'QUICKLOOT'.
01:28 Warn: 0 Q: Assigning new handle 51 (A8COMMAND@) to patch 'QUICKLOOT'.
01:28 Fault: 0 Q: [start of stacktrace]
01:28 Fault: 0 Q: MEMINT_HANDLEERROR(2, 'A8 sucks. Handle 47 of instance A8HEAD@ messed up with a queue of -1981943312. I will ignore it.
The pointer was 59696992...') + 62 bytes
01:28 Fault: 0 Q: MEM_WARN('A8 sucks. Handle 47 of instance A8HEAD@ messed up with a queue of -1981943312. I will ignore it.
The pointer was 59696992...') + 21 bytes
01:28 Fault: 0 Q: _ANIM8_LOOP(47) + 221 bytes
01:28 Fault: 0 Q: FOREACHHNDL(9139, _ANIM8_LOOP) + 273 bytes
01:28 Fault: 0 Q: [UNKNOWN] +44936901 bytes
01:28 Fault: 0 Q: _ANIM8_FFLOOP() + 15 bytes
01:28 Fault: 0 Q: FRAMEFUNCTIONS(4) + 157 bytes
01:28 Fault: 0 Q: FOREACHHNDL(9139, _ANIM8_LOOP) + 273 bytes
01:28 Fault: 0 Q: [UNKNOWN] +44936901 bytes
01:28 Fault: 0 Q: _FF_HOOK() + 32 bytes
01:28 Fault: 0 Q: MEM_CALLBYID(151782) + 224 bytes
01:28 Fault: 0 Q: _HOOK(2031966920, 582020096, 0, 20315280, 20315148, 0, 8635020, 582020096, 2013433864) + 468 bytes
01:28 Fault: 0 Q: [UNKNOWN] +1006854061 bytes
01:28 Fault: 0 Q: [end of stacktrace]
01:28 Warn: 0 Q: A8 sucks. Handle 47 of instance A8HEAD@ messed up with a queue of -1981943312. I will ignore it.
The pointer was 59696992...
01:28 Fault: 0 Q: [start of stacktrace]
01:28 Fault: 0 Q: MEMINT_HANDLEERROR(2, 'A8 sucks. Handle 48 of instance A8HEAD@ messed up with a queue of -1981943200. I will ignore it.
The pointer was 59697032...') + 62 bytes
01:28 Fault: 0 Q: MEM_WARN('A8 sucks. Handle 48 of instance A8HEAD@ messed up with a queue of -1981943200. I will ignore it.
The pointer was 59697032...') + 21 bytes
01:28 Fault: 0 Q: _ANIM8_LOOP(48) + 221 bytes
01:28 Fault: 0 Q: FOREACHHNDL(9139, _ANIM8_LOOP) + 273 bytes
01:28 Fault: 0 Q: [UNKNOWN] +44936901 bytes
01:28 Fault: 0 Q: _ANIM8_FFLOOP() + 15 bytes
01:28 Fault: 0 Q: FRAMEFUNCTIONS(4) + 157 bytes
01:28 Fault: 0 Q: FOREACHHNDL(9139, _ANIM8_LOOP) + 273 bytes
01:28 Fault: 0 Q: [UNKNOWN] +44936901 bytes
01:28 Fault: 0 Q: _FF_HOOK() + 32 bytes
01:28 Fault: 0 Q: MEM_CALLBYID(151782) + 224 bytes
01:28 Fault: 0 Q: _HOOK(2031966920, 582020096, 0, 20315280, 20315148, 0, 8635020, 582020096, 2013433864) + 468 bytes
01:28 Fault: 0 Q: [UNKNOWN] +1006854061 bytes
irgendwie funktioniert der Quickloot nicht mit der V Taste (nur mit rechter Maustaste).
Habe mal in die VDF reingeschaut. Eigentlich steht dort drin, dass KEY_V bzw. V als alternative von RMB genutzt werden kann....
Aber es klappt einfach nicht.
Kann mir jemand helfen?
irgendwie funktioniert der Quickloot nicht mit der V Taste (nur mit rechter Maustaste).
Habe mal in die VDF reingeschaut. Eigentlich steht dort drin, dass KEY_V bzw. V als alternative von RMB genutzt werden kann....
Aber es klappt einfach nicht.
Kann mir jemand helfen?
Yep, "_Ninja_Quickloot_World_DisableVob" is not implemented for G1 yet.
it uses oCWorld:isableVob to disable any attached effects in G2.
Would probably be easily fixed by just looking up the address for that and implementing it in the respective method
my quickloot executes "onStateFuncName" and checks for "conditionFunc"
What version is that version you tested? You can look it up by opening the VDF with e.g. Notepad and looking at the start, there should be text like "Rightclick to Quickloot! (v1.9.1, G1+G2)"
- as of "v1.8.5" conditionFunc is executed.
- as of "v1.8.6" _S0 - _S3 are looked up and executed.
Should ConditionFunc be executed prior to unlocking?
Does "ConditionFunc" actually return != 0 ?
Does gothic 1 use Triggers or States for interactions with chests?
The patch does the following upon opening a chest:
- Unlocking it if you got the key
- check if ConditionFunc() != 0, bail out if you should not access the items yet
- loot all items
- execute onStateFunc _S0 -> _S3
Should ConditionFunc be executed prior to unlocking?
Does "ConditionFunc" actually return != 0 ?
Does gothic 1 use Triggers or States for interactions with chests?
The video shows that there is no start of the animation of opening the chest, and there is also no start of the script that displays a message about using the key.
Patch without extenders, everything is done on the original scripts.
Roughly speaking, the following scripts are executed, which do not work on this plugin.
condfunc
ChestLocked_10_CF ->
if have key
ChestLocked_KeyUnlock(2)
if have bonus skill+lockkey
ChestLocked_CF()
else
NeedKeyChest(2)
onstate func _s1
CHESTLOCKED_ONSTATEFUNC_S1 ->
if ChestLocked_IsOpened == 10
PrintKeyName(xxxx)
bit operation
Code
Spoiler:(zum lesen bitte Text markieren)
Code:
//Сундук в затопленной башне Ксардаса.func int ChestLocked_10_CF()
{
if(ChestLocked_IsUnlocked & bit_10) // Замок уже открыт.
{
ChestLocked_IsOpened = 0;
return TRUE;
}
else if(Npc_HasItems(self,ItKe_SunkenTower)) // Замок ещё закрыт, но есть ключ.
{
ChestLocked_IsOpened = 10;
return ChestLocked_KeyUnlock(2);
}
else if(GreatCracker_Bonus > 0) // Замок ещё закрыт, ключа нет, но активен бонус "Великий взломщик". Разрешается открыть отмычкой.
{
ChestLocked_IsOpened = 10;
return ChestLocked_CF();
}
else // Открыть нельзя.
{
return NeedKeyChest(2);
};
return FALSE;
};
Code:
func int ChestLocked_CF(){
PickLock_Rotations = 0;
if(Npc_IsPlayer(self) && C_NpcIsHuman(self))
{
if(!Npc_HasItems(hero,ItKeLockpick))
{
// Фиксация отсутствия отмычек у ГГ для выдачи соответствующего сообщения в функции G_NoKey().
hero.aivar[AIV_TALKBEFOREATTACK] = 96;
};
//if((Npc_GetTalentSkill(hero,NPC_TALENT_PICKLOCK) > 0) || !PickLock_Mode)
if((Npc_GetTalentSkill(hero,NPC_TALENT_PICKLOCK) > 0) || GameOptions & PickLockNonConditionMode)
{
return TRUE;
};
// Новый стиль сообщений.
if(NewMessageStyle)
{
PrintScreen("Я не умею вскрывать замки отмычками.",-1,6,FONT_LogEntry,3);
}
// Классический стиль сообщений.
else
{
PrintScreen("Я не умею вскрывать замки отмычками.",-1,10,"FONT_OLD_10_WHITE.TGA",3);
};
if(!Npc_RefuseTalk(hero))
{
AI_PlayAni(hero,"T_DONTKNOW");
AI_OutputSVM_Overlay(hero,hero,"$IMPOSSIBLE");
AI_Wait(hero,1);
Npc_SetRefuseTalk(hero,4);
}
else
{
AI_PlayAni(hero,"T_DONTKNOW");
AI_OutputSVM_Overlay(hero,hero,"$DOESNTWORK2");
AI_Wait(hero,1);
};
};
return FALSE;
};
The video shows that there is no start of the animation of opening the chest, and there is also no start of the script that displays a message about using the key.
Patch without extenders, everything is done on the original scripts.
Roughly speaking, the following scripts are executed, which do not work on this plugin.
...
i just decompiled the mod.
It's because i unlock the chest before executing the conditionfunc.
I will re-order the code so that conditionfunc will be executed first.
NEVERMIND. Code uses "self" and i forgot to set self properly in case of conditionFunc. Will have to update once more...
"CHESTLOCKED_ISOPENED = 10;"
EDIT: Patch is updated. Please check again. Should be working fine now.
Also you can do the following to hopefully get russian text properly displayed.
Gothic.Ini
Code:
[NINJA_QUICKLOOT]
# try using FONT_OLD_10_WHITE.TGA if you need russian/polish etc. texts
Font=Ninja_QuickLoot_Font_DE.tga