Scriptprobleme...

Sword

Neuankömmling
hab da einen script.
hat man 9 bestimmte dinge, funktioniert das, wo's draufliegt.
Code:
begin My_terrapforte_script

if ( onactivate == 1 )
	set Pforte to 1
endif

if ( Pforte == 1 )
	Messagebox "Jeder der nach Terra kommt, muss die 9 Dinge der Prüfung besitzen. Der Wächter Terra's prüft nun, ob du diese besitzt." "OK"
	
	if ( Getitemcount ingred_scrib_jelly_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_scrib_jelly_01" "OK"
	elseif ( Getitemcount ingred_shalk_resin_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_shalk_resin_01" "OK"
	elseif ( Getitemcount ingred_gravedust_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_gravedust_01" "OK"
	elseif ( Getitemcount ingred_fire_salts_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_fire_salts_01" "OK"
	elseif ( Getitemcount ingred_racer_plumes_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_racer_plumes_01" "OK"
	elseif ( Getitemcount ingred_alit_hide_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_alit_hide_01" "OK"
	elseif ( Getitemcount ingred_guar_hide_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_guar_hide_01" "OK"
	elseif ( Getitemcount ingred_scales_01 == 0 )
		set Pforte to 20
		Messagebox "ingred_scales_01" "OK"
	elseif ( Getitemcount My_Stinkstiefel == 0 )
		set Pforte to 20
		Messagebox "My_Stinkstiefel" "OK"
	else
		set Pforte to 5
	endif
endif
	
if ( Pforte == 20 )
Messagebox "Ihr habt nicht alle 9 Dinge der Prüfung. Der Zutritt wird euch verwehrt." "OK"
set Pforte to 0
return
endif

if ( Pforte == 5 )
Messagebox "Ihr habt alle Dinge der Prüfung. Der Wächter Terra's heißt euch auf seiner Insel willkommen." "OK"
activate
return
set Pforte to 0
endif

end
habe auch schon die varriante
Code:
if ( Getitemcount ingred_scrib_jelly_01 =>1 )
		if ( Getitemcount ingred_shalk_resin_01 => 1 )
			if ( Getitemcount ingred_gravedust_01 => 1 )
				if ( Getitemcount ingred_fire_salts_01 => 1 )
					if ( Getitemcount ingred_racer_plumes_01 => 1 )
						if ( Getitemcount ingred_alit_hide_01 => 1 )
							if ( Getitemcount ingred_guar_hide_01 => 1 )
								if ( Getitemcount ingred_scales_01 => 1 )
									if ( Getitemcount My_Stinkstiefel => 1 )
										set Pforte to 5
									endif
								endif
							endif
						endif
					endif
				endif
			endif
		endif
	endif
endif
probiert^^

naja, allerdings kommt nur die meldng, dass ich nicht alle 9 dinge habe...
wenn ich irgendwann mit dem Quest fertig werden will, sollte ich den script bald fertigstellen^^
was mache ich denn falsch?

PS: es liegt auf einem door-objekt und "pforte" ist global short

huch!
ich war länger nicht mehr hier...
ich seh gerade, dass das im constructionset besser gepasst hätte... mal schauen, ob ich das verschieben kann, sonst macht as einfach der nächste mod^^
 
Zuletzt bearbeitet:
@Sword: Bitte in [MW] Scriptproblem umbenennen! (sonst kann man in der Übersicht nicht sehen, ob es ein OBL oder mW Problem ist)
Außerdem gehört das ins Editor-Unterforum.

@Moderator: Bitte nach Editor, Mods und PlugIns verschieben.

Zu deinem Problem:

Ich gehe davon aus, dass Pforte eine globale Variable ist, sonst liegt darin der Fehler. Ich würde es so machen:

begin My_terrapforte_script

short anzahl

if ( OnActivate == 1 )
set Pforte to 1
endif

if ( Pforte == 1 )
MessageBox "blablabla" "OK"
set Pforte to 2
endif

if ( Pforte == 2 )

if ( Player->GetItemCount "Objekt1" == 0 )
MessageBox "Objekt1"
else
set anzahl to anzahl + 1
endif
if ( Player->GetItemCount "Objekt2" == 0 )
MessageBox "Objekt2"
else
set anzahl to anzahl + 1
endif
...
if ( Player->GetItemCount "Objekt9" == 0 )
MessageBox "Objekt9"
else
set anzahl to anzahl + 1
endif

if ( anzahl < 9 )
MessageBox "Ihr habt nicht alles, ..."
set anzahl to 0
set Pforte to 0
else
MessageBox "Ihr habt alles, ..."
set Pforte to 0
Activate
endif

endif

end
 
  • Like
Reaktionen: Sword
also, dank dir kann der threat auch gelöscht werden^^ muss man garnet verschieben... oder closed das teil meinetwegen^^

übrigens hab ich oben geschrieben, dass Pforte ein global ist und dass ich das aus versehen hier hin geschrieben habe, weil ich so lange net mehr hier war^^

danke nochmals... jetzt weiß ich's...
 
undnur damit Du's weisst: Es lag daran

if ( Player->GetItemCount ItemID == 123 )

Du hast das Script an der Tür dran... Deine Abfrage:

if ( GetItemCount ItemID == 123 )

...wenn die Türe 123 Dinger im Inventar hat ??? Drum gehts nicht.
Vorsicht, keine falschen Schlüsse: man kann NICHT an einem Container oder NPC sowas dran machen (GetItemCount im eigenen Inventar) ohne das der Spieler den Container oder NPC vorher angeklickt/aktiviert hat, sonst stürzt es ab!