You are not logged in.

Dear visitor, welcome to Runes of Magic EU. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Friday, March 17th 2017, 9:29pm

Anpassung vActionbar - Fehler durch Autosave abstellen

bei der Benutzung von vActionbar tauchte bei mir immer ein bestimmter Fehler auf: es wurden Teile einer Belegung unvollständig gespeichert oder sogar auf eine andere Klassenkombination übertragen,
ich hatte also auf einmal die Belegung vom Magier/Priester teils oder ganz auf dem Magier/Hexer usw.

(s.auch http://board.eu.runesofmagic.gameforge.c…bar#post4759414

und http://board.eu.runesofmagic.gameforge.c…ight=vActionbar
)

Daraufhin hab ich mir den Code angeschaut und festgestellt, dass ja jedesmal, wenn man die Klassen wechselt ein AUTOSAVE der Leistenbelegung unter dem Namen der Kombis gemacht wird (hier zB MagAugur und MageHarpysn).
Diese Speicherung dauert zum einen recht lang und kann auch sogar fehlschlagen/abbrechen, wenn ein fehlerhafter Slot gefunden wird (diesen Fehler bekommt man ja auch zu sehen, wenn man mit '/abar save' die Leiste explizit speichert). Das scheint mir die Ursache für die vorhandenen Probleme zu sein.
Wenn man das AUTOSAVE deaktiviert sollten solche Probleme also nicht mehr auftreten. man muss dann halt nur explizit selbst speichern (/abar save), wenn man eine Veränderung der Leisten festhalten will. Das AUTOLOAD beim Klassenwechsel hingegen kann bleiben und lädt so immer den zuletzt händisch gespeicherten Stand der Klassenkombi - eigentlich viel besser (und schneller). Zudem legt er so nicht für jede jemals vorhandene Klassenkombi ein Speicher-Set an und man benötigt ausser in Sonderfällen keine zusätzlichen Profilnamen als die automatischen.

Nachdem ich das nun ein paar Tage getestet habe, scheint mir das ein guter Fix zu sein, den man wie folgt durchführt:

in Version 1.0 (r19 | frafall | 2013-07-03 20:59:20)
sehen die Zeilen 511-515 der vActionbar.lua ($Id: vActionbar.lua 17 2013-01-14 15:29:51Z frafall) nach dem erforderlichen Auskommentieren des automatischen Speicherns so aus:

Source code

1
2
3
4
5
 function vActionbar_OnEvent(frame, event)
	if event == "EXCHANGECLASS_SHOW" then
		if not IsShiftKeyDown() then
			-- vSaveActions()
		end


Gruß
Brachialys

2

Saturday, March 18th 2017, 2:21pm

In dem Zusammenhang faellt mir noch ein Wunsch zu vActionBar ein:

Kann man das irgendwie hinkriegen, dass es automatisch sowas wie ein "/abar load" beim Start von RoM macht?

Wozu waere das gut? Nach einem Crit hat man ja gerne einmal die Belegung einer anderen Klassenkombi. Mit etwas Glueck kommt man rechtzeitig drauf, und macht dann haendisch ein "/abar load". Wenn man das nicht macht, und nicht, wie von Dir vorgeschlagen, das autosave deaktiviert, speichert das autosave beim Klassenwechsel diese falsche Belegung als die der aktuellen Klassenkombi ab, und man verliert die urspruengliche Belegung dieser Klassenkombi.

3

Thursday, March 23rd 2017, 2:11pm

In dem Zusammenhang faellt mir noch ein Wunsch zu vActionBar ein:

Kann man das irgendwie hinkriegen, dass es automatisch sowas wie ein "/abar load" beim Start von RoM macht?

Wozu waere das gut? Nach einem Crit hat man ja gerne einmal die Belegung einer anderen Klassenkombi. Mit etwas Glueck kommt man rechtzeitig drauf, und macht dann haendisch ein "/abar load". Wenn man das nicht macht, und nicht, wie von Dir vorgeschlagen, das autosave deaktiviert, speichert das autosave beim Klassenwechsel diese falsche Belegung als die der aktuellen Klassenkombi ab, und man verliert die urspruengliche Belegung dieser Klassenkombi.


du könntest versuchen, in der Startroutine einmal fix die Belegung zu laden, keine Ahnung ob das vom Timing her passt.
Das wäre in Zeile 496 der lua-Datei neu hinzuzüfugen (zur Verdeutlichung eingerückt), Ergebnis:

Source code

1
2
3
4
5
6
7
8
9
10
11
-- Load handler
function vActionbar_OnLoad(this)
	this:RegisterEvent("EXCHANGECLASS_SHOW")
	this:RegisterEvent("EXCHANGECLASS_SUCCESS")

	SLASH_vActionbar_Slash1 = "/abar"
	SlashCmdList["vActionbar_Slash"] = vActionbar_Slash
	
	SaveVariablesPerCharacter("vActionbar")
		vLoadActions()
end


wenns klappt, sag Bescheid :)