PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : linked refs und Getlinked ref geht nicht ?



Boreg77
05.04.2009, 17:14
Hier mein problem auf einen blick
http://www.bilder-space.de/thumb/05.04Fx36C3V9k7Ei4pS.JPG (http://www.bilder-space.de/show.php?file=05.04Fx36C3V9k7Ei4pS.JPG)
sobald ich diese Zeilen im Script einfüge kann ich den aktuator nicht mehr bedienen
hat wer eine idee woher das kommt ?

Oder eine alternative
ich muss ja 200 gegenstände einzeln adressieren
und das 8 mal, ohne diese Ref Ketten wird das ziemlich übel. :\

Boreg77
05.04.2009, 18:25
nunja Refvariable 1 Wird im Script festgelegt
refvariable 2 wird durch die verlinkung mit refvariable1 definiert
refvariable3 wird mit der verlinkung mit refvariable2 definiert
usw.

nur geht das halt nicht

der sinn des ganzen ist das man einmalig 200 Verlinkungen erstellt und dann das ganze konstruckt kopieren kann und immer nur den ersten behälter im neuen script tauschen muss

Boreg77
05.04.2009, 18:49
naja ,was ich suche ist ein weg viele objekte per script anzusteuern , und zwar einzeln ohne jedem per hand eine Ref id geben zu müssen.

das sollte eigentlich mit "GetLinkedRef" gehen, aber sobald ich das auf mehr als ursprungsref und einen danach anwende geht das script nicht mehr

die idee ist das in dem bild oben die einzelnen munitionsschachteln angesteuert werden können über die variable Ref "AMMOx" und nur
die Referenz der Munitionskiste im Script festgelegt ist.

hier das ganze script, (aber das sollte eher mehr verständnissprobleme bringen, der kern des Problems sind die paar zeilen oben im Bild)

scn Abr1ScriptVerteilerUndEinlagerscript

short Button
short aktuellemenge
short aktuellemenge1
ref BehTresor
ref BehZeug
ref BehWerkzeug
ref BehKuelschrank
ref BehErstehilfe
ref BehMunition
ref Ammo1
ref Ammo2
ref Ammo3
ref Ammo4
ref Ammo5

begin OnActivate
if ( IsActionRef Player == 1 )
ShowMessage ABR1MsgWohnungsTresor
endif

end

begin gamemode
set BehTresor to Abr11Testsafetest
set BehZeug to ( BehTresor.GetLinkedRef )
; set BehWerkzeug to ( BehZeug.GetLinkedRef )
; set BehKuelschrank to ( BehWerkzeug.GetLinkedRef )
; set BehErstehilfe to ( BehKuelschrank.GetLinkedRef )
set BehMunition to Abr11Testmunibeh
set Ammo1 to ( BehMunition .GetLinkedRef )
; set Ammo2 to ( Ammo1.GetLinkedRef )
; set Ammo3 to ( Ammo2.GetLinkedRef )
; set Ammo4 to ( Ammo3.GetLinkedRef )
; set Ammo5 to ( Ammo4.GetLinkedRef )

set Button to GetButtonPressed

if ( Button == 0 )
elseif ( Button == 1 )
player.RemoveAllItems BehTresor

set aktuellemenge to ( BehTresor.GetItemCount ABR1Munition10mmMagnum ) BehMunition.additem ABR1Munition10mmMagnum aktuellemenge
BehTresor.removeitem ABR1Munition10mmMagnum aktuellemenge

set aktuellemenge1 to ( BehMunition.GetItemCount ABR1Munition10mmMagnum )
if (aktuellemenge1 >= 50 )
ammo1.SetScale 1
elseif (aktuellemenge1 < 50 )
ammo1.SetScale 0
endif

; if (aktuellemenge1 >= 100 )
; ammo2.SetScale 1
; elseif (aktuellemenge1 < 100 )
; ammo2.SetScale 0
; endif

; if (aktuellemenge1 >= 150 )
; ammo3.SetScale 1
; elseif (aktuellemenge1 < 150 )
; ammo3.SetScale 0
; endif

; if (aktuellemenge1 >= 200 )
; ammo4.SetScale 1
; elseif (aktuellemenge1 < 200 )
; ammo4.SetScale 0
; endif

; if (aktuellemenge1 >= 250 )
; ammo5.SetScale 1
; elseif (aktuellemenge1 < 250 )
; ammo5.SetScale 0
; endif
endif
end