DVS_Battle

» Siedler Map Source Forum » Siedler DEdK Script Forum » DVS_Battle

Seiten: 1

Zedeg
#1
10.04.2015 22:21
Beiträge: 382

DVS_Battle

Da es mit den SCV 2.0 neue Möglichkeiten zur Veränderung von Entitäten gibt, habe ich in Zusammenarbeit mit Kantelo DVS_Battle entworfen.
Im Gegensatz zu bisherigen Attributsänderungen werden die richtigen Werte einer Entität wirklich verändert und nicht nur simuliert.

Vorteile
- die Anzahl der Gefolgsleute veränderbar
- der Sichtradius veränderbar
- alte Kampfskripte weiterhin problemlos verwendbar (DVS_Battle ist eher als Ergänzung zu sehen)
- Rechenaufwand nur bei Veränderung der Werte, nicht bei Verwendung (!)
- es muss immer nur der Wert bestimmt werden, der verändert werden soll (man muss also nicht alle Werte auf einmal verändern)

Nachteile
- Änderungen erst ca. eine Sekunde nach Aufruf wirksam; Mehrfachaufrufe innerhalb dieser Sekunde unproblematisch. (Aber mit einem simplen GUI-Hack braucht sowas doch kein Spieler zu erfahren, nicht wahr? )
- nicht alle Funktionen sind für alle Entitäten benutzbar

Hier ist die Dokumentation der Funktionen, eigentliche Funktion untenstehend (gründlich durchlesen ):

--[[
    DVS_Battle
    Version 1.1
    Script by Zedeg and Kantelo

    Mit diesen Komfort-Funktionen ist es möglich, folgende (Kampf-)Eigenschaften einer speziellen Entität direkt zu verändern:
    - Schaden
    - Rüstung
    - maximale Anzahl des Gefolges
    - Sichtradius
    - Regenerationspunkte

    Zudem kann folgende Kampfeigenschaft eines Entitätentyps verändert werden:
    - maximale Lebensenergie
    - Geschwindigkeit der Regeneration

    Folgende Funktionen werden benötigt:

    Funktion    : DVS_Battle_SetUp
    Beschreibung: Muss vor allem anderen als Callback der InitAdressEntity aufgerufen werden; leitet alles nötige ein.

    Funktion    : DVS_Battle_GUIAction_RestartMap_New
    Beschreibung: Wird automatisch angerufen; setzt einige Änderungen zurück.

    Funktion    : DVS_Battle_MainWindow_LoadGame_DoLoadGame_New
    Beschreibung: Wird automatisch angerufen; setzt einige Änderungen zurück.

    Funktion    : DVS_Battle_QuitGame_New
    Beschreibung: Wird automatisch angerufen; setzt einige Änderungen zurück.

    Funktion    : DVS_Battle_QuitApplication_New
    Beschreibung: Wird automatisch angerufen; setzt einige Änderungen zurück.

    Funktion    : DVS_Battle_ReloadAttributes
    Beschreibung: Muss in der InitPlayerColorMapping aufgerufen werden; setzt nach Laden die Attribute wieder.

    Funktion    : DVS_Battle_ResetMaxHealth
    Beschreibung: Wird automatisch aufgerufen; setzt die maximale Lebensenergie zurück.

    Funktion    : DVS_Battle_SetOrigHealth
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit die maximale Lebensenergie zurück.

    Funktion    : DVS_Battle_ResetHealingSeconds
    Beschreibung: Wird automatisch aufgerufen; setzt die Geschwindigkeit der Regeneration zurück.

    Funktion    : DVS_Battle_SetOrigSeconds
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit die Geschwindigkeit der Regeneration zurück.

    Funktion    : DVS_Battle_AddDamage
    Beschreibung: Erhöht den Schaden einer Entität.
    Parameter   : Held, Hauptmann oder Soldat (number), zugefügter Schaden (number)

    Funktion    : DVS_Battle_SetDamage
    Beschreibung: Setzt den Schaden einer Entität.
    Parameter   : Held, Hauptmann oder Soldat (number), Schaden (number)

    Funktion    : DVS_Battle_ChangeDamage
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit den Schaden.

    Funktion    : DVS_Battle_AddArmour
    Beschreibung: Erhöht die Rüstung einer Entität.
    Parameter   : Held oder Hauptmann (number), zugefügte Rüstung (number)
    Hinweis     : Die Rüstung des Hauptmannes wird automatisch auf die Gefolgsleute übertragen.

    Funktion    : DVS_Battle_SetArmour
    Beschreibung: Setzt die Rüstung einer Entität.
    Parameter   : Hauptmann oder Soldat (number), Rüstung (number)
    Hinweis     : Die Rüstung des Hauptmannes wird automatisch auf die Gefolgsleute übertragen.

    Funktion    : DVS_Battle_ChangeArmour
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit die Rüstung.

    Funktion    : DVS_Battle_AddMaxSoldiers
    Beschreibung: Erhöht die Gruppenstärke.
    Parameter   : Hauptmann (number), zugefügte Gruppenstärke (number)

    Funktion    : DVS_Battle_SetMaxSoldiers
    Beschreibung: Setzt die Gruppenstärke.
    Parameter   : Hauptmann (number), Gruppenstärke (number)

    Funktion    : DVS_Battle_ChangeMaxSoldiers
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit die Gruppenstärke.

    Funktion    : DVS_Battle_AddExploration
    Beschreibung: Erhöht den Sichtradius.
    Parameter   : Held, Hauptmann oder Soldat (number), zugefügte Sichtweite (number)

    Funktion    : DVS_Battle_SetExploration
    Beschreibung: Setzt den Sichtradius.
    Parameter   : Held, Hauptmann oder Soldat (number), Sichtweite (number)

    Funktion    : DVS_Battle_ChangeExploration
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit den Sichtradius.

    Funktion    : DVS_Battle_AddHealingPoints
    Beschreibung: Erhöht die Regenerationspunkte.
    Parameter   : Held oder Hauptmann (number), zugefügte Regenerationspunkte (number)
    Hinweis     : Ihr solltet sichergehen, dass die veränderten Einheiten bereits einmal verwundet wurden, wenn diese Funktion aufgerufen wurde.
                  Um sicher zu gehen, ruft mindestens einmal vorher DVS_Battle_SetHealingPoints für die zu verändernde Einheiten auf.

    Funktion    : DVS_Battle_SetHealingPoints
    Beschreibung: Setzt die Regenerationspunkte.
    Parameter   : Held oder Hauptmann (number), Regenerationspunkte (number)

    Funktion    : DVS_Battle_ChangeHealingPoints
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit die Regenerationspunkte.

    Funktion    : DVS_Battle_AddMaxHealth
    Beschreibung: Erhöht die maximale Lebensenergie.
    Parameter   : Heldtyp oder Hauptmanntyp (number oder string), zugefügte Lebensenergie (number)
    Hinweis     : Die maximale Lebensenergie wird für alle Entitäten des gleichen Typs übernommen.

    Funktion    : DVS_Battle_SetMaxHealth
    Beschreibung: Setzt die maximale Lebensenergie.
    Parameter   : Heldtyp oder Hauptmanntyp (number oder string), Lebensenergie (number)
    Hinweis     : Die maximale Lebensenergie wird für alle Entitäten des gleichen Typs übernommen.

    Funktion    : DVS_Battle_ChangeMaxHealth
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit die maximale Lebensenergie.

    Funktion    : DVS_Battle_AddHealingSeconds
    Beschreibung: Erhöht die Geschwindigkeit der Regeneration.
    Parameter   : Heldtyp oder Hauptmanntyp (number oder string), zugefügte Sekunden (number)
    Hinweis     : Die Geschwindigkeit der Regeneration wird für alle Entitäten des gleichen Typs übernommen.

    Funktion    : DVS_Battle_SetHealingSeconds
    Beschreibung: Setzt die Geschwindigkeit der Regeneration.
    Parameter   : Heldtyp oder Hauptmanntyp (number oder string), Sekunden (number)
    Hinweis     : Die Geschwindigkeit der Regeneration wird für alle Entitäten des gleichen Typs übernommen.

    Funktion    : DVS_Battle_ChangeHealingSeconds
    Beschreibung: Wird automatisch aufgerufen; setzt in Wirklichkeit die Sekunden.

    Funktion    : DVS_Battle_ClearUnnecessaryPointer
    Beschreibung: Wird automatisch aufgerufen; leitet die Pointer um.

    In die InitPlayerColorMapping kommt folgender Aufruf:
    if AdressEntity then
        InitAdressEntity(DVS_BattleMemory.AdressEntity, DVS_Battle_ReloadAttributes)
    end

    Es werden zudem die SCV 2.0 benötigt!
    [url]http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum/SCV2-19696.htm[/url]
--]]



Hinweis Nr. 1: Technologien haben nach Veränderung eines Wertes keinen Einfluss mehr auf die Entität, sofern sie für diesen Wert zuständig ist. Das muss also manuell gemacht werden!

Hinweis Nr. 2: Ergänzte Funktionen stehen hier. (Kommen morgen oder übermorgen erst )

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

Dieser Beitrag wurde von Zedeg am 22.08.2015 um 03:23 editiert.

Zedeg
#2
10.04.2015 22:22
Beiträge: 382

Funktionen

Version 1.1
Version 1.2 (gelöscht)

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

Dieser Beitrag wurde von Zedeg am 04.12.2015 um 23:27 editiert.

totalwarANGEL
#3
11.04.2015 11:09
Beiträge: 2049

Meine erste Frage ist natürlich, ob und wie man das auf S6 übertragen kann.

____________________
Liebe ist wie ein Kopfschuss!

Kantelo
#4
11.04.2015 13:16
Beiträge: 345

Leider basiert das immer noch alles auf dem Pointer bei 67, wie ich dir schonmla geschrieben habe
Also im Moment sehe ich da keine Möglichkeit

Peter-FS
#5
26.07.2015 20:28
Beiträge: 1002

DVS_Battle - komm nicht klar

Leider komm ich mit der Beschreibung nicht ganz klar, bzw. es funkt. nicht. Fehlermeldung: InitAdressEntity zuerst ausführen.
Also bisher habe ich folgendes gemacht.

1. In die IPCM (nehme an InitPlayerColorMapping ist gemeint ) kommt folgender Aufruf:

if AdressEntity then
        InitAdressEntity(DVS_BattleMemory.AdressEntity, DVS_Battle_ReloadAttributes)
end


2. Benötige die SCV2.0-Funktionen.lua
Aufruf im Script:

Script.Load( Folders.MapTools.."SCV2.0-Funktionen.lua" )


3. DVS_Battle_SetUp() Aufruf in der FMA?
- muss ich in der Funktion schon Werte eintragen?
- oder reicht später z.B. DVS_Battle_AddMaxHealth(Entities.PU_Hero3, 2000)

4. Welche Funktionen benötige ich noch? BigNum, Float2Int (wo bekomme ich die)

Bitte um Unterstützung
Danke

____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!

Peter-FS
#6
26.07.2015 21:29
Beiträge: 1002

Fehlermeldung

Bin inzwischen ein bisschen weiter und bekomme diese Fehlermeldung beim Aufruf DVS_Battle_AddMaxHealth
3219: attempt to index global `DVS_BattleMemory' (a nil value)

Was ich bereits habe:
SCV2.0-Funktionen.lua und SCV-Pointerfunktionen.lua ist eingebunden und der Aufruf InitAdressEntity("sheep1",DVS_Battle_SetUp) in der FMA ist denke ich auch OK.

Welche Werte sind in DVS_Battle_SetUp() wichtig bzw. unbedingt nötig. Diese 3 habe ich ausgefüllt.
- AdressEntity = "PU_Hero3",
- NpcId = 8,
- SpawnPoint = "DVS_Battle_SpawnPoint", = eine Scripting Entity auf der Map

Ändern der MaxHealth später mit
DVS_Battle_AddMaxHealth(Entities.PU_Hero3, 2000)

____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!

mcb
#7
26.07.2015 22:31
Beiträge: 1108

AdressEntity musst du auf "sheep1" setzen.
Hast du die BigNum schon? Wenn nicht: http://b0bby.tk/s5hook.html
Die Fehlermeldung kommt davon, dass du erst etwas ändern kannst, nachdem alles initialisiert ist.
Also das hier in die FMA:

InitAdressEntity("sheep1", function()
   DVS_Battle_SetUp()
   -- hier die Wertänderungen
end)

Zedeg
#8
26.07.2015 23:52
Beiträge: 382

Das so viele Probleme haben, hätt' ich echt nicht gedacht. Naja, Motiy fand diese Erklärung ausreichend.

Zitat von PN an Motiy:

Beispielmap gibt es nicht, aber erklären kann ich es dir (sofern mich mein Gedächtnis nach dieser immer noch andauernden Maperpause nicht trügt):
1. Du lädst dir die SCV 2.0 von hier herunter und fügst sie ein.
2. In die FMA kommt nun folgendes

InitAdressEntity("AdressEntity", DVS_Battle_SetUp)

"AdressEntity" ist ein Skriptname einer Entität. Diese muss von ANFANG AN BIS ZU JEDWEDEM ENDE DER MAP EXISTIEREN! Erstelle am besten bei X/Y=5/5 ein neutrales Schaf oder NSC. DVS_Battle_SetUp wird zirka eine Sekunde nach dem Aufruf als Callback aufgerufen. Von daher sollten die DVS_Battle-Funktionen mit zur Sicherheit drei bis fünf Sekunden Abstand zum Mapstart aufgerufen werden. Wenn ich mich recht entsinne, kann man diese Vorsichtsmaßnahme nach dem Laden eines Spielstandes weglassen.
3. Bei

function DVS_Battle_SetUp()
    assert(type(AdressEntity) == "number", "Battle_SetUp:ERROR! Please call \"InitAdressEntity\" before!")
    DVS_BattleMemory  = {

kommt folgendes:
- AdressEntity: kennste ja
- NpcId&SpawnPoint: bei einigen Funktionen werden Soldaten bei Spawnpoint erstellt. Da diese nicht sterben dürfen, muss die NpcId eine von niemanden angreifbaren KI sein.
Ansonsten: Finger weg von den Angaben!
4. Das war's.

Beispiele:
1. Hauptmann X' Schaden wird auf 20 gesetzt, der Schaden von Soldat Y um 3 verringert:

DVS_Battle_SetDamage(GetID"X", 20)
DVS_Battle_AddDamage(GetID"Y", -3)

2. Hauptmann X' Rüstung wird auf 15 gesetzt. Die Rüstung von Soldat Y geht leider auch auf 15. Blödes Siedler.

DVS_Battle_AddArmour(GetID"X", 15)

3. Hauptmann X darf zwei Soldaten mehr befehligen.

DVS_Battle_AddMaxSoldiers(GetID"X", 2)

4. Soldat Y darf 150,5 m weit sehen.

DVS_Battle_SetExploration(GetID"Y", 150.5)

5. Held Z darf 15 Punkte pro Zeitabschnitt regenerieren (war glaube ich bei zwei oder drei Sekunden bei ,,zivilisierten´´ Einheiten).

DVS_Battle_SetHealingPoints(GetID"Z", 15)

6. Nebelvolkhauptmann N soll 3 Punkte mehr pro Zeitabschnitt regenerieren.
- um addhp zu verwenden, sollte zuvor sethp auferufen werden, sonst funktioniert es eventuell nicht
- das Nebelvolk regeneriert alle zehn Sekunden, bedeutend langsamer als alle anderen Einheiten

DVS_Battle_SetHealingPoints(GetID"N", 1, 11) --kann natürlich auch hier schon auf vier gesetzt werden
--später verändern wir sie
DVS_Battle_AddHealingPoints(GetID"N", 3, 11)

7. Alle Bastardschwertkämpfer bekommen 50 Lebensenergiepunkte spendiert.

DVS_Battle_AddMaxHealth("PU_LeaderSword4", 50)



LG Zedeg



____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

Peter-FS
#9
27.07.2015 06:53
Beiträge: 1002

Beschreibung

Ist eine super Funktion, nur die Beschreibung ist nicht so klar.

Um eine Comfort Funktion zum Laufen zu bringen, sind 4 Stunden meiner Meinung nach zu viel. Copy & Paste, ein paar kleine Anpassungen und fertig, max. eine halbe Stunde.
Es läuft inzwischen, aber so sollte es nicht sein. Anfänger haben da gar keine Chance (siehe Husky).

Was fehlt:
1. Die zusätzlichen Funktionen: Float2Int, BigNum.lua
- da würde ein Link reichen, um sie leichter zu finden
- für Anfänger, wie man sie einbindet
2. Strukturierte Beschreibung von A-Z

Warum es bei mir nicht lief.
1. Hatte die BigNum.lua nicht (findet man im Forum nicht)
2. Die Callback Funktion von InitAdressEntity wurde nicht ausgeführt, da sv67 immer 0 lieferte, obwohl die Entity vorhanden ist (Aufruf in der FMA).
Habe mir den Wert sv67 nach dem ersten Briefing noch mal per Message anzeigen lassen und siehe da es ging. Jetzt lese ich den Wert einmal aus, bevor ich den MaxHealth Wert ändere.

Hat jemand eine Erklärung dafür?

Danke für eure Hilfe und die Funktion natürlich

____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!

Kantelo
#10
27.07.2015 10:14
Beiträge: 345

Das mit dem sv67 = 0 ist in der Tat der Schwachpunkt bei dem Ganzen, da es zwar in 90% aller Fälle sofort klappt, aber speziell bei großen Karten meine ich, manchmal auch erst nach 10 sek, 30 sek oder gar nicht

Aber es gibt einen 100% Weg und der ist entweder, dass man die Kamera kurz auf die AdressEntity richtet; oder dass sich die AdressEntity im Bereich der aufgedeckten Karte befindet wenn ich das noch richtig in Erinnerung habe.

Dann gibt sv67 garantiert den Pointer zurück und zwar unmittelbar.

Frag mich nicht warum, aber damit klappt es!

Und tut mir leid, dass das alles so unübersichtlich ist, vielleicht sollten wir das wirklich nochmal irgendwo zusammentragen.

Peter-FS
#11
27.07.2015 11:27
Beiträge: 1002

Das verwendete Schäfchen stand im dunkeln, jetzt habe ich einen NPC genommen, der auch stehen bleibt. Wenn man's weiß, kein Problem.
Mich wundert nur, dass bisher noch niemand Probleme hatte, oder liegt es an mir (zu doooof )?

Finde die Funktion genial und sehr interessant! Danke dafür!

____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!

mcb
#12
27.07.2015 12:15
Beiträge: 1108

Liegt vielleicht daran, das es nicht so oft verwendet wird. Für mich ist z.B. nur die Änderung der Soldatenanzahl interessant. Alles andere mache ich per Trigger.
Was ich momentan sehr hilfreich finde, ist die Animation zu setzen. Wenn ich jetzt Darios Angstfähigkeit auslöse, muss ich nicht mehr alle Entities in der Nähe löschen und neu erstellen. Vielleicht krieg ich damit auch Helias bekehren (per Script ausgelöst) ordentlich hin.

Kantelo
#13
27.07.2015 13:56
Beiträge: 345

Zitat von Peter-FS:

Mich wundert nur, dass bisher noch niemand Probleme hatte, oder liegt es an mir (zu doooof )?



Außer mcb und dir ist mir jetzt niemand bekannt der die Funktionen verwendet.

HuskyWelpe85
#14
27.07.2015 14:02
Beiträge: 129

Ich würd es

Wen ich etwas erfahrener wär würde ich sie auch verwenden allerdings ist sie mir noch zu kompliziert da war selbst der Mauerbau einfacher.

LG Husky

____________________
Kein Meister fällt vom Himmel,also bitte ich immer um Konstruktive gute und Nette Kommentare .

mcb
#15
27.07.2015 15:12
Beiträge: 1108

Zitat von Kantelo:
Das mit dem sv67 = 0 ist in der Tat der Schwachpunkt bei dem Ganzen, da es zwar in 90% aller Fälle sofort klappt, aber speziell bei großen Karten meine ich, manchmal auch erst nach 10 sek, 30 sek oder gar nicht

Aber es gibt einen 100% Weg und der ist entweder, dass man die Kamera kurz auf die AdressEntity richtet; oder dass sich die AdressEntity im Bereich der aufgedeckten Karte befindet wenn ich das noch richtig in Erinnerung habe.

Dann gibt sv67 garantiert den Pointer zurück und zwar unmittelbar.

Frag mich nicht warum, aber damit klappt es!



Bei meiner Testmap braucht der S5Hook kaum Zeit, InitAdressEntity aber ein paar Minuten...
Hab mir jetzt ein Ladescript geschrieben, dass die Position aufdeckt, dorthinspringt, auf S5Hook und InitAdressEntity wartet und dann zurückspringt und die Position wieder verdeckt. Mit nur Kamera oder nur Sichtbar bringt das keine Vorteile, Beides zusammen funktioniert aber.

yoq
#16
28.07.2015 21:11
Beiträge: 90

Zitat von mcb:
Bei meiner Testmap braucht der S5Hook kaum Zeit, InitAdressEntity aber ein paar Minuten...


Was spricht dagegen, das Entity einfach wie bei S5Hook per Skript zu erzeugen? Ich kann nur vermuten warum sich das mit einem in die Karte eingebauten Entity anders verhält, ich schätze mal das BlueByte hier Ressourcen sparen wollte, schließlich musste man damals mit einigen 100MB Ram auskommen

____________________
S5 & S6: Lua Script Debugger (Thread) | bbaTool
S5: S5Hook (Thread) | S5 GUI Editor | S5 Grafikupgrade + nVidia fix | Win10 Creators Update

Dieser Beitrag wurde von yoq am 28.07.2015 um 21:49 editiert.

Peter-FS
#17
28.07.2016 10:11
Beiträge: 1002

Test

Hi,
habt ihr die Fehler in meiner aktuellen Map verfolgt? Meiner Meinung nach kann das eigentlich nur an SCV bzw. DVS_Battle liegen.
Bei mir läuft alles einwandfrei, hab allerdings noch einen XP Rechner und die Fehler scheinen alle bei den nächsten Windows Systemen aufzutreten. Könnte mal einer die Map im LuaDebugger laufen lassen und prüfen wo der Fehler auftritt.
Ich kann so nichts finden da alles läuft.

Gruß Peter

____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!

Peter-FS
#18
28.07.2016 10:42
Beiträge: 1002

Habe gerade noch mal etwas gefunden.

Beim Starten der Map benutze ich in InitAdressEntity ( "sheep_init" ). Ist ein Schaf, das im ersten Briefing zu sehen ist, funktioniert.

In der Function DVS_Battle_SetUp ist folgende Zeile.

AdressEntity  = "john", --muss manuell eingetragen werden; wird von DVS_Battle nach jedem Laden in InitAdressEntity aufgerufen 



Dort habe ich den Begleiter von Robin drin, ist immer auf der Map und hat die PlayerId 8. Das Schaf ist zwar auch noch da, steht aber vermutlich im dunkeln, deshalb habe ich John genommen.

Was passiert in DVD_Battle bzw. SCV, wenn John mit SetPosition bewegt wird? Er hat ja dann eine andere Id. Kann das die Fehler auslösen, da die AdressEntity fehlt?

Ich benutze für den Transport der Truppen die SetPosition Funktion und setzte anschließend die Stärke, Verteidigung und Sterne mit DVS und SCV.

Gruß Peter

____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!

mcb
#19
28.07.2016 11:14
Beiträge: 1108

Zumindest bei InitAdresEntity wird nur die Id gespeichert, ich würde mich also nicht wirklich darauf verlassen. Das das Schaf im Dunkeln steht sorgt nur dafür, das das ganze länger lädt, sollte also besser sein, wenn du das Schaf nimmst. (Oder du stellst das ganze auf den neuen S5Hook um, da sparst du dir die ganzen Probleme )

PS: Du nutzt noch XP? Ich halte das für ziemlich leichtsinnig, da keine Sicherheitslücken mehr gefixt werden.

Zedeg
#20
28.07.2016 13:22
Beiträge: 382

Warum hast du überhaupt in DVS_Battle eine andere AdressEntitiy als in der FMA?
Und natürlich sorgt das SetPosition für Probleme. Wie soll Logic.SetEntityScriptingValue bei einer nicht mehr existenten Id wirken? Ich schließe mich mcb an: Bleib beim Schaf!

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

Seiten: 1

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum