Scripting Diskussion - Seite 4 - SpellForce - Official Board

News:
08-17-2017, 15:02: SpellForce 3 OUT NOW! + Alle Trailer | Update: Alle Patchinfos
01-17-2017, 20:52: alte Forenlinks "reparieren"
07-04-2012, 21:36: SpellForce-Datenbank ist wieder da - Ein WiKi soll entstehen
08-30-2009, 20:03: Patchübersicht

Herzlich Willkommen im offiziellen SpellForce Forum!

Du betrachtest das Forum zur Zeit als Gast, was deine Zugriffsrechte bei Diskussionen und anderen Dingen enorm einschränkt. Wenn du dich hier registrierst, was natürlich völlig kostenlos ist, dann wirst du Beiträge und Themen erstellen, Private Konversationen mit anderen Mitgliedern führen, bei Umfragen abstimmen, Inhalte uploaden und vielen andere Dinge können. Die Anmeldung geht schnell von Statten, ist enorm einfach und kostenlos, daher würden wir dich ersuchen, dich zu registrieren!

Falls es Probleme mit der Anmeldung oder dem Zugriff auf einen Account gibt, stehen wir dir gerne über die Kontaktseite mit Rat und Tat zur Verfügung.

SpellForce Newsletter
Gib deine E-Mail Adresse in das Feld ein, um immer über die letzten Neuigkeiten zu SpellForce informiert zu werden

Zurück   SpellForce - Official Board > SpellForce - Deutsches Forum > SpellForce 2 - Shadow Wars > Editor & Modding
Registrieren Hilfe Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Editor & Modding Alles zum Editor und zum Thema Modding

Antwort
 
Themen-Optionen
Alt 07-10-2006, 21:53   #61
Veri
Registered User
 
Registriert seit: Jul 2006
Alter: 35
Beiträge: 23
Poste am besten mal dein Skript hier rein ob da ein Fehler erkenntlich ist
Veri ist offline   Mit Zitat antworten
Alt 07-10-2006, 21:55   #62
Kubi
Resurrected
 
Benutzerbild von Kubi
 
Registriert seit: Oct 2003
Ort: Stark Raving Sick Sad Little World
Alter: 29
Beiträge: 14.281
Passen der Ordname und der Dateiname des Plattform Scripts?
Bsp: Mapname = "edit_test.map"
Dann muss der Ordnername "edit_test" sein. Dort muss ein Unterornder mit dem namen "script" angelegt werden und dort hinein kommt dann das Plattform Script, das "_edit_test.lua" heißen muss.

Passt die Condition?
Sind die Tags, die in deinem Script vorkommen, im Editor korrekt vergeben worden?
__________________
Attention: PMs arent possible. For contacting me use this thread
DESPITE ALL MY RAGE I AM STILL JUST A RAT IN A CAGE

Kubi ist offline   Mit Zitat antworten
Alt 07-10-2006, 21:56   #63
Nick Nack
Registered User
 
Benutzerbild von Nick Nack
 
Registriert seit: Jun 2006
Ort: Somewhere in ...how is this place called?...Hell
Alter: 26
Beiträge: 49
mach ich glatt:
State
{
StateName = "FirstActions",

OnOneTimeEvent
{
Conditions =
{
FigureIsDead {Tag = "Opfer 1"},
},
Actions =
{
AvatarXPGive{Player = "pl_Human01", Amount = 1200000},
}
}

}
@ kubi:
ja, das hatte ich alles schon gecheckt
Nick Nack ist offline   Mit Zitat antworten
Alt 07-10-2006, 22:04   #64
Veri
Registered User
 
Registriert seit: Jul 2006
Alter: 35
Beiträge: 23
Ich würde vermuten das "FigureIsDead {Tag = "Opfer 1"}," <-- den Fehler verursacht, ich glaube der Tag darf keine Leerzeichen enthalten, probier stattdessen mal ein Opfer_1
Veri ist offline   Mit Zitat antworten
Alt 07-10-2006, 22:20   #65
Nick Nack
Registered User
 
Benutzerbild von Nick Nack
 
Registriert seit: Jun 2006
Ort: Somewhere in ...how is this place called?...Hell
Alter: 26
Beiträge: 49
Anscheinend nich, hab's gerade probiert und es funktioniert noch nicht, werde nochmal alles überprüfen, wenn es dann doch am tag lag werde ich mich noch nachträglich entschuldigen.

Es bringt anscheinend nichts mein script funktioniert weiterhin nicht. Ich gehe davon aus, dass der name der karte im Spiel dabei nicht zählt, sondern nur der Name der karte in dem ordner, in dem sie gespeichert wurde? zur veranschaulichung: ich habe meine karte über editor "Test Karte"genannt und das ist auch der name, wenn ich die karte im spiel auswähle, als Datei heisst die Karte aber Map_1.map und daher heisst der Ordner Map_1. muss der Ordner Map_1 neben der Datei gespeichert sein, oder die Datei im Ordner?

Geändert von Nick Nack (07-10-2006 um 22:36 Uhr).
Nick Nack ist offline   Mit Zitat antworten
Alt 07-10-2006, 22:38   #66
Veri
Registered User
 
Registriert seit: Jul 2006
Alter: 35
Beiträge: 23
Nach deiner Benamung müsste es wie folgt aussehen:

Code:
Spellforce2\base\map\coopcommunity\Map_1.map
Spellforce2\base\map\coopcommunity\Map_1\Dialog\ <-- mit entsprechendem Inhalt
Spellforce2\base\map\coopcommunity\Map_1\Script\_Map_1.lua <-- dein Skript
Veri ist offline   Mit Zitat antworten
Alt 07-10-2006, 22:42   #67
Nick Nack
Registered User
 
Benutzerbild von Nick Nack
 
Registriert seit: Jun 2006
Ort: Somewhere in ...how is this place called?...Hell
Alter: 26
Beiträge: 49
Genau so sieht es auch aus!

Welcher Inhalt müsste das denn sein im Dialog Ordner?(entschuldigt die Frage, das tauchte glaub ich schon einmal auf, aber ich weiss nicht mehr, was ich noch machen soll)
Nick Nack ist offline   Mit Zitat antworten
Alt 07-10-2006, 22:45   #68
Veri
Registered User
 
Registriert seit: Jul 2006
Alter: 35
Beiträge: 23
Schau mal auf die allererste Seite dieses Threads, da steht in den ersten 5 Beiträgen genau was du in diesem Order drin haben musst.
Veri ist offline   Mit Zitat antworten
Alt 07-10-2006, 22:54   #69
Nick Nack
Registered User
 
Benutzerbild von Nick Nack
 
Registriert seit: Jun 2006
Ort: Somewhere in ...how is this place called?...Hell
Alter: 26
Beiträge: 49
hatte ich so in dem ordner, hab jetzt die condition entfernt, dann weiss ich zumindest obs am Tag lag oder nicht, falls es jetzt läuft!


EDIT:
Ich hab das Gefühl ich check das alles nicht; ohne die condition müsste das script, sofern alles richtig ist,was es zu sein scheint, mir doch zu beginn des levels gleich die XP gutschreiben, oder nicht?(falls jemand denkt, ich würde das nur machen, um mir das freie spiel zu vereinfachen, dem muss ich sagen, dass die XP nur der positive Beigeschmack meines ersten Scripts sein sollen)

EDIT2:
ich habe festgestellt, dass es bei mir neben der datei Map_1.map eine Map_1.bak gibt, die gleichgroß ist, ist das Normal?

Geändert von Nick Nack (07-10-2006 um 23:10 Uhr).
Nick Nack ist offline   Mit Zitat antworten
Alt 07-10-2006, 23:37   #70
Kubi
Resurrected
 
Benutzerbild von Kubi
 
Registriert seit: Oct 2003
Ort: Stark Raving Sick Sad Little World
Alter: 29
Beiträge: 14.281
Hi

Entferne einmal den Namen des States.
Falls es dann weiterhin nicht geht, liegt es wohl am XP Befehl. Der geht nämlich bei mir auch nicht wirklich (ein paar Mal ging er - doch jetzt bekomme ich ihn nicht mehr zum Laufen).

Ad Edit 2:
Ja, das ist die Autobackup Funktion des Editors.

Gruß
-kubi
__________________
Attention: PMs arent possible. For contacting me use this thread
DESPITE ALL MY RAGE I AM STILL JUST A RAT IN A CAGE

Kubi ist offline   Mit Zitat antworten
Alt 07-10-2006, 23:50   #71
Marcus Lubczyk
 
Benutzerbild von Marcus Lubczyk
 
Registriert seit: Apr 2004
Ort: Ingelheim
Beiträge: 253
Probier es doch erst einmal mit einem simplen Walk-Befehl.
Platziere eine Einheit im Editor, gibt ihr einen Tag und lass sie zu einem Punkt laufen.
Das Ganze hat dann zwar nicht den ganz so süßen Beigeschmack eines XP-Boosts, aber es sollte funktionieren, was ja auch nicht so schlecht ist.
__________________
Marcus Lubczyk
Level Designer & Cutscene Artist
Phenomic Game Development
Marcus Lubczyk ist offline   Mit Zitat antworten
Alt 07-11-2006, 01:29   #72
ghost_zero5
Registered User
 
Registriert seit: Dec 2003
Alter: 31
Beiträge: 774
Meine Fragen bez. Scripting scheinen nicht möglich zu sein..?

@Marcus Lubczyk: Ich habe diesbezüglich auch eine PN an dich geschickt, falls du sie nicht beantworten kannst, dann bitte ich dich diese Frage an eine Person weiterzuleiten, welche sie beantworten kann...

Btw. sie ist recht lang, da ich mehrere Posts aus diesem Thread gequotet habe...
ghost_zero5 ist offline   Mit Zitat antworten
Alt 07-11-2006, 09:28   #73
[Phe]Gargelfax
 
Benutzerbild von [Phe]Gargelfax
 
Registriert seit: Jul 2004
Beiträge: 136
Ich würde als erstes mal einen Fehler in das Skript einbauen. Wenn dann beim Starten keine Fehlermeldung kommt kannst du den Fehler schon mal dahingehend eingrenzen, dass das Skript nicht ausgeführt wird.
Lass mal alles so wie es ist, aber mache aus "Tag" in der Abfrage ob die Figur tot ist mal ein "Name", dann muss eim Starten ein Fehler kommen. kommt diese nicht liegt es mit hoher Wahrscheinlichkeit am Pfad/Namen des Skriptes. Auf jeden Fall wäre dann klar, dass das Skript beim Laden der Map gar nicht aufgerufen wird.
[Phe]Gargelfax ist offline   Mit Zitat antworten
Alt 07-11-2006, 10:42   #74
X-Ray 3
 
Benutzerbild von X-Ray 3
 
Registriert seit: Dec 2003
Beiträge: 203
Die hier vorgestellten Ansätze sind alle sehr sinnvoll.

Du solltest in folgender Reihenfolge vorgehen:

1. Prüfen, ob Script überhaupt ausgeführt wird
Fehler in Script einbauen, wie von Gargelfax beschrieben. Kommt eine Fehlermeldung, weißt du, dass das Script ausgeführt wird. Kommt keine, liegt das Problem evtl. an Pfad / Mapname o.ä.

2. Prüfen, ob die Action problematisch ist
Einfach mal die Condition weglassen (d.h. leeren Conditionsblock). Falls dann immer noch keine XP übergeben wird, könnte es an der Action liegen. Evtl. mal durch eine andere Action ersetzen: Walkbefehl oder Itemübergabe. Werden diese Actions auch nicht ausgeführt?

3. Prüfen, ob die Condition problematisch ist
Wenn das Event mit leerem Conditionsblock korrekt ausgeführt wird, aber mit Conditions nicht, stimmt evtl. etwas an den Conditions nicht.
X-Ray 3 ist offline   Mit Zitat antworten
Alt 07-11-2006, 12:08   #75
[PHE]Steffen Itterheim
 
Benutzerbild von [PHE]Steffen Itterheim
 
Registriert seit: Oct 2003
Alter: 68
Beiträge: 303
Post

Code:
ScriptMain:ShowMessage( GetScriptTag() .. ".lua wird ausgeführt!" )
Wenn man das ganz an den Anfang eines scripts schreibt, meldet es ob das script ausgeführt wird oder nicht.

Im Dialogordner müssen die Dateien "OutcryText.lua" und "CutsceneText.lua" existieren, mit folgendem Inhalt:
Code:
return {}

Leerzeichen in Tags sind nicht erlaubt, stattdessen _ verwenden oder ganz weglassen.

Übrigens, wenn man als erstes in dem sog. "Platformscript" (das script das so heisst wie die Platform mit _ vornedran) folgendes eingibt, erhält man evtl. mehr oder genauere Fehlermeldungen:
Code:
DEBUG = true

Den "StateName" Parameter eines States muss vorhanden sein und der string darf auch nicht leer sein. Ausserdem darf ein StateName nicht mehrfach im selben Script vorkommen.


Und noch ein Hinweis zum Coop Modus: es gibt normalerweise auf jeder Karte Startpunkte für 3 Spieler, die "pl_Human1", "pl_Human2" und "pl_Human3" heissen (zumindest auf den offiziellen Karten). Es ist aber nicht garantiert, wenn man alleine eine Coop Karte spielt, man den Player "pl_Human1" spielt. Je nach Startpunkt kann man auch der Player 2 oder 3 sein.

Das ist der Grund warum korrekte Coop Scripte immer alle 3 Spieler verwalten müssen. In der Regel sieht das dann so aus:

Code:
-- für jeden der 3 potentiellen Player
for i = 1, 3 do
	-- enthält den Namen des Players für diesen Schleifendurchlauf:
	local sPlayer = "pl_Human" .. i
	
	OnOneTimeEvent
	{
		EventName = "Event für " .. sPlayer,
		Conditions = 
		{
			-- existiert dieser Player auch? Wenn nein, ist er wohl nicht verbunden oder gedropped...
			CoopPlayerIsPlaying	{Player = sPlayer},
		},
		Actions = 
		{
			AvatarXPGive	{Player = sPlayer, Amount = 123456789},
		},
	};
end

State {StateName = "MyState"}
Wer sich wundert, warum das Event nicht IM State steht: Events kann man auch VOR einen State schreiben, sie landen automatisch im nachfolgenden State. Wenn aber kein State folgt, werden sie gar nicht berücksichtigt, also aufpassen.

Der State selbst darf auch nicht in der Schleife stehen, denn sonst hat man jedes Event in einem eigenen State, aber nur der erste State ist aktiv, da die States nicht mit "GotoState" Events miteinander verknüpft sind. Kann man natürlich auch sinnvoll einsetzen, ist aber "advanced topic".
__________________
Steffen Itterheim
Script Engineer
Phenomic Games

Geändert von [PHE]Steffen Itterheim (07-11-2006 um 12:24 Uhr).
[PHE]Steffen Itterheim ist offline   Mit Zitat antworten
Alt 07-11-2006, 13:20   #76
[PHE]Steffen Itterheim
 
Benutzerbild von [PHE]Steffen Itterheim
 
Registriert seit: Oct 2003
Alter: 68
Beiträge: 303
Bezüglich Fragen wie: "Weiß eigentlich wer, ob es irgendwie möglich ist in den Action-Tags irgendwelche Infos über diverse Informationen aus den Conditions zu verwenden..?"

Was ihr wollt ist kein polling system ("ist die figur x jetzt im range?" ... "ist sie es jetzt?" ... "und jetzt?") sondern ein event system ("figur x hat jetzt den bereich betreten, mach was mit ihr oder halt nicht") bzw. gleich C++ code ("für jede figur auf der karte, schau nach ob sie im range ist, und wenn ja, mach was mit ihr"). Allerdings schaut das Scripting nur nach ob bestimmte Dinge passiert sind, kann aber nicht aktiv (wie C++ code) mit for und if Konstrukten arbeiten. Man kann nur festlegen "was soll geprüft werden?" == Conditions und wenn das alles zutrifft "was soll dann passieren?" == Actions.

Also, gebaute Einheiten kann man nicht scripten, nur im Editor platzierte mit Tags oder eben gespawnte NPCs, die auch Tags haben. Generische Abfragen gibts nur in der Art "ist eine beliebige Figur eines bestimmten Player/Teams/Rasse im range?", die müssen halt von Codeseite vorgesehen sein.
__________________
Steffen Itterheim
Script Engineer
Phenomic Games
[PHE]Steffen Itterheim ist offline   Mit Zitat antworten
Alt 07-11-2006, 17:52   #77
ghost_zero5
Registered User
 
Registriert seit: Dec 2003
Alter: 31
Beiträge: 774
Wie ich schon einmal sagte: In Warcraft III ging sowas

Aber ok, wenn es nicht geht dann geht es nicht, weil anscheinend kann man ja in den .lua-files keine C++ oder LUA-Funktionen direkt aufrufen oder..?
Wobei Event-System trifft es recht gut, das geht wohl nicht oder..?
ghost_zero5 ist offline   Mit Zitat antworten
Alt 07-11-2006, 18:46   #78
Nick Nack
Registered User
 
Benutzerbild von Nick Nack
 
Registriert seit: Jun 2006
Ort: Somewhere in ...how is this place called?...Hell
Alter: 26
Beiträge: 49
Danke sehr an alle, die mir geantwortet haben, ich hab das script nochmal neu erstellt, dann lief's.Ich hab anschließend noch zwei weitere Scripts erfolgreich zum laufen bekommen(silber hinzufügen u. einheit zu punkt XY laufen lassen).Ich weiss zwar noch nicht, woran es das erste mal lag, sollte aber zumindest einfache scripts schonmal zum Laufen bekommen.



Besten Dank an alle!!!



mfg Nick Nack
Nick Nack ist offline   Mit Zitat antworten
Alt 07-11-2006, 22:37   #79
Veri
Registered User
 
Registriert seit: Jul 2006
Alter: 35
Beiträge: 23
Für alle die vielleicht vorhaben eine Art kleine "Freies-Spiel-Kampagne" zu machen sind vielleicht die Werte für die Level Up´s interessant um die Karten optimal abzustimmen.

Code:
[1] = 0, [2] = 80, [3] = 270, [4] = 650, [5] = 1250,
[6] = 2160, [7] = 3430, [8] = 5120, [9] = 7290, [10] = 10000,
[11] = 13310, [12] = 17280, [13] = 21970, [14] = 27440, [15] = 33750,
[16] = 40960, [17] = 49130, [18] = 58320, [19] = 68590, [20] = 80000,
[21] = 92610, [22] = 106480, [23] = 121670, [24] = 138240, [25] = 156250,
[26] = 175760, [27] = 196830, [28] = 219520, [29] = 243890, [30] = 270000,
[31] = 430000000,
Veri ist offline   Mit Zitat antworten
Alt 07-12-2006, 10:51   #80
[PHE]Steffen Itterheim
 
Benutzerbild von [PHE]Steffen Itterheim
 
Registriert seit: Oct 2003
Alter: 68
Beiträge: 303
Post

...da ihr Scriptdetektive ja ohnehin in den PAK Files rumschnüffelt gibts hier noch einen Auszug aus den DB Daten, Stand release von SF2.

Diese Lua Datei enthält die IDs von Objekten, Spells, Abilities, Units, etc. in Lua Tabellen, so das man bei Parametern diese IDs mittels beschreibender Namen angeben kann, anstatt die ID verwenden zu müssen. Das funktioniert beispielsweise so:

Code:
UnitId = 575 ... ODER ... UnitId = Unit.NPC.Aya

AbilityId = 101 ... ODER ... AbilityId = Ability.ShadowCreature

ItemId = 211 ... ODER ... ItemId = Item.Misc.Bestienhaut

-- Übergibt ein zehntel der für Stufe 3 benötigten XP:
XP = 27 ... ODER ... XP = LevelXP[3] / 10
Das macht die Scripte lesbarer, und ihr wisst ungefähr was sich hinter den IDs verbirgt.


PS: es wäre klasse wenn jemand die Zeit und Mühe aufbringen könnte, die gesammelten Infos in eine Art FAQ und/oder inoffiziellem "SF2 Scripting Kit" zu kompilieren.
Angehängte Dateien
Dateityp: zip GdsDbExport.zip (43,4 KB, 192x aufgerufen)
__________________
Steffen Itterheim
Script Engineer
Phenomic Games
[PHE]Steffen Itterheim ist offline   Mit Zitat antworten
Antwort


Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:40 Uhr.


Powered by vBulletin® Version 3.6.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
© 2015 Nordic Games GmbH, Austria. All Rights Reserved.
Style © by Kubi