Problem bei einem Script das zusätzliche Schiffe herbei scriptet

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

STKEHX3
Posts: 68
Joined: Sat, 24. Nov 07, 08:59
x4

Problem bei einem Script das zusätzliche Schiffe herbei scriptet

Post by STKEHX3 »

Hallo,
also das prob is folgendes das ganze ist ein al-plugin und funzt bis auf einen kleinen teil ganz gut.

al.plugin.decamod.regist = registriert das plugin
al.decamod = steuert das plugin und das intervall
B.C.A.decamod = MAINSCRIPT (spawnt die deca und startet die anderen scripte)
B.C.B.decamodbegleiter = spawnt die kleinen drohnen (dieses script wird vom MAINSCRIPT und den zusätzlichen-truppen-scripts ausgeführt)
B.C.C.decamodausruestung = wird von den anderen scripten ausgeführt um den schiffen die (grund)-ausrüstung zu geben
B.C.D.decamodzusatzm3 = wird vom MAINSCRIPT ausgeführt (wird 25 mal ausgeführt, die schiffe haben die deca als heimatbasis und den befehl dort anzudocken)
B.C.E.decamodeinsatztruppe = die erste truppe (hat den befehl das playership anzugreifen) [wird von B.C.G... aufgerufen]
B.C.F.decamodeinsatztruppeb = zweite truppe, sorgenkind (sucht random sektor und beschütz ihn) [wird von B.C.H.... aufgerufen]
B.C.G.decamodeinsatztruppewl = ausgelöst vom MAINSCRIPT (ruft die erste truppe in einem bestimmten intervall auf)
B.C.H.decamodeinsatztruppenbwl = soll genauso funzen wie B.C.G.... (ruft die zweite truppe in einem bestimmten intervall auf)
B.C.I.decamodspawneffekt = kleiner effekt damit der spawn von den schiffen ersichtlich is

B.C.G.... und B.C.H.... sind dazu da damit immer neue trupps gespawnt werden, wer sich schon mal selbst damit beschäftigt hat der kennt das prob wenn die schleife und der spawnbefehl für die schiffe selbst in einem script sind, dann werden keine neuen schiffe gespawnt sondern nur die alten ersetzt sofern sie nich mehr da sind oder wenn sie noch vorhanden sind geschieht nichts. Das liegt daran das ja der schiffsname im script der selbe bleibt das heist wenn xyz schon vorhanden ist und dann noch mal xyz gespawnt werden soll geschieht nichts wenn das alte noch da is.

Der kleine MOD spawnt die deca und viele deca-dronen in einem sektor und dann noch zusätzlich einen kleinen trupp der auf das playership geht und noch einen trupp der sich nen random sektor sucht (vorzugsweise in der nähe, jedoch auch weit weg) und den dann verteidigt.
Die schiffe gehören zu den xenon sodas auch die anderen völker sie angreifen.
Tja und genau der trupp der sich nen random sektor sucht will nich so wirklich. Wenn ich das skript alleine, also ohne das MAINSCRIPT starte dann geht alles gut, aber das ist ja nich der sinn der sache. Es schein so als ob das zielschiff aus dem mainscript nicht an den trupp-script übertragen wird. :evil:

Übrigens der Unbekannte Sektor ist der neben Zyarths Machtbereich

Bin schon gespannt woran das liegen kann. :?

Hier der DOWNLOAD der Scripte:
http://www.files.to/get/730855/aq8o41k75l

Danke schon mal leute. :)


Edit:
Hätte da noch eine klitzekleine Frage. Wie muss ich das al scripten damit es am anfang nicht automatisch auf on ist. (gemeint ist im al-plugin-menü)
borg[AUT]
Posts: 210
Joined: Tue, 18. Jul 06, 17:02
x3tc

Post by borg[AUT] »

Leider bekomme ich beim Downloadversuch nur "500 - Internal Server Error", kann dir also beim grossen Problem derzeit nicht helfen.

Zu deinem Edit: da ich deine Scripts nicht sehe, poste ich mal eine AL-Steuerung die ich verwende (hat die selben Anforderungen)

Code: Select all

001   $AL.STATE.VERSION = 0
002   $AL.STATE.ENABLED = 1
003   
004   $al.state = get global variable: name=$al.PluginID
005   if not $al.state
006   |$al.state =  array alloc: size=7
007   |$version = get script version
008   |$al.state[$AL.STATE.VERSION] = $version
009   |$al.state[$AL.STATE.ENABLED] = [FALSE]
010   |set global variable: name=$al.PluginID value=$al.state
011   end
012   
013   $al.RetVal = null
014   if $al.event == 'init' OR $al.event == 'reinit'
015   |$page.id = get global variable: name='global.borg.renship.pageid'
016   |$desc = sprintf: pageid=$page.id textid=601, null, null, null, null, null
017   |al engine: set plugin $al.PluginID description to $desc
018   |al engine: set plugin $al.PluginID timer interval to 60 s
019   |
020   else if $al.event == 'start'
021   |$al.state[$AL.STATE.ENABLED] = [TRUE]
022   |
023   else if $al.event == 'stop'
024   |$al.state[$AL.STATE.ENABLED] = [FALSE]
025   |
026   else if $al.event == 'isenabled'
027   |$al.RetVal = $al.state[$AL.STATE.ENABLED]
028   |return $al.RetVal
029   |
030   else if $al.event == 'timer'
031   |skip if not $al.state[$AL.STATE.ENABLED]
032 @ ||= [THIS] -> call script 'plugin.borg.renameships' : 
033   end
034   return null
Ich vermute mal, bei dir steht das:

Code: Select all

009   |$al.state[$AL.STATE.ENABLED] = [TRUE]
ändere es auf

Code: Select all

009   |$al.state[$AL.STATE.ENABLED] = [FALSE]
***modified*** und stolz drauf!
STKEHX3
Posts: 68
Joined: Sat, 24. Nov 07, 08:59
x4

Post by STKEHX3 »

hm bei mir geht der link

aber danke das sich schon mal wer dafuer interressiert

dein tipp löst glaub meine edit-frage (danke sehr dafür gut zu wissen, werds aber erstmal noch testen)
Manuel Scholz
Posts: 96
Joined: Mon, 23. Jul 07, 17:14
x3tc

Post by Manuel Scholz »

hier mal die al. scripts

al.decamod

Code: Select all


argumente
plugin.id        var/string
plugin.event   var/string


$Plugin.Vars = get global variable: name= $Plugin.ID

if not $Plugin.Vars
$Plugin.Vars = array alloc: size= 3
set global variable: name= $Plugin.ID value= $Plugin.Vars
$Plugin.Vars [ 0 ] = 0
$Plugin.Vars [ 1 ] = [TRUE]
$Plugin.Vars [ 2 ] = null
end

if $Plugin.Event == "init" OR $Plugin.Event == "reinit"
$Beschreibung = "Deca MOD"
al engine: set plugin $Plugin.ID description to $Beschreibung
$intervall = = random value from 18000 to 36000 - 1
al engine: set plugin $Plugin.ID timer interval to $intervall s

else if $Plugin.Event == "isenabled"
$Enabled =  $Plugin.Vars [ 1 ]
return $Enabled
else if $Plugin.Event == "start"
$Plugin.Vars [ 1 ] = [TRUE]
else if $Plugin.Event == "stop"
$Plugin.Vars [ 1 ] = [FALSE]
else if $Plugin.Event == "timer"
$Enabled =  $Plugin.Vars [ 1 ]
if $Enabled

= [THIS] -> call script "B.C.A.decamod" : arg0=$Plugin.ID,

end
end
return null
al.plugin.decamod.regist

Code: Select all


argumente
none

al engine: register script= "al.decamod"
return null

heir sind sie und happy nfehlersuche:D
STKEHX3
Posts: 68
Joined: Sat, 24. Nov 07, 08:59
x4

Post by STKEHX3 »

ich vermute das der fehler irgendwo in der B.C.A. oder in B.C.F., B.C.H. liegt

jedoch kann ich den fehler nicht nachvollziehen da B.C.E. fast genauso wie B.C.F. ist und B.C.G. ist fast genauso wie B.C.H. (B.C.E. und B.C.G. funzen korrekt) :?

Edit:
Hab jetzt screenshots von den scripten gemacht für die die das game nicht haben.

Download: http://www.files.to/get/731716/pducrkxryv

Pls helft mir leute ich versteh einfach nich warum es nicht geht vielleicht überschneiden sich ein par variablen da ich sie größten teils gleich genannt hab (z.B. die variablen für die sektoren heißen fast alle sektor, natürlich nich in ein und dem selben script aber in jedem der scripte wo sowas vorkommt heißen die dann wieder sektor)

Bin einfach mit meinem Latein am Ende aber voll ey :lol:

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”