Construction Set Skriptthread zum Construction Set

ok hat alles soweit funktioniert nur taucht aamodiamelionbroken nicht auf auch nicht im inventar

ach ja und ich habe aus aamodiamelionbrokenb aamodiamelionbroken gemacht ;)
 
Habs jetzt nochmal ein bisschen umgestellt und gekürzt... Warum es nicht funktioniert, kann ich nicht sagen...
Vielleicht gehts ja damit:
Code:
scn name

short init
short EquipDelay
ref Actor

Begin onEquip <player>
 if init == 0
  set Actor to getContainer
  set init to 1
 endif
end

Begin onUnEquip
 if init == 1
  set init to 0
 endif
end

Begin GameMode
 if init == 1
  if getCurrentHealth / getObjectHealth >= 0 && getCurrentHealth / getObjectHealth <= 0.75
   message "Rüstung ist beschädigt!"
   set init to 2
   Actor.addItem aamodiamelionbroken 1
   removeMe
  endif
 elseif init == 2
  if EquipDelay >= 1
   Actor.EquipItem aamodiamelionbroken
   set init to 0
   set EquipDelay to 0
  else
   set EquipDelay to EquipDelay + 1
  endif
 endif
end
 
Zuletzt bearbeitet:
Actor.addItem aamodiamelionbroken 1
removeMe

warum? ist doch gerade ma angekommen:lol:

leider hat auch das vertauschen der beiden befehle nix geändert
 
Nein, das Script muss natürlich nur auf dem einen Gegenstand liegen, welcher vom Spieler anfangs manuell ausgerüstet wird. Das heißt, "removeMe" bezieht sich auf den Gegenstand, auf dem das Skript liegt...
Die Umstellung habe ich vorgenommen, weil "UnEquipItem" den "UnEquip"-Block auslöst und dadurch das "init" auf 0 gesetzt worden wäre, was zu diesem Punkt nicht sein soll...
 
Dann ist das jetzt mein letzter Versuch:
Code:
scn name

short init
short next
short EquipDelay
ref Actor

Begin onEquip
	if init == 0
		set Actor to getContainer
		set init to 1
	endif
end

Begin onUnEquip
	if next == 1
		set EquipDelay to 1
	endif
	set init to 0
end

Begin GameMode
	if init == 1
		if getCurrentHealth / getObjectHealth >= 0 && getCurrentHealth / getObjectHealth <= 0.75
			message "Rüstung ist beschädigt!"
			set next to 1
			Actor.addItem aamodiamelionbroken 1
			Actor.UnEquipItem <Item-ID>
		endif
	elseif next == 1
		if EquipDelay >= 1
			set EquipDelay to EquipDelay - 1
		elseifEquipDelay == 0
			set next to 0
			Actor.EquipItem aamodiamelionbroken
			removeMe
		endif
	endif
end
 
  • Like
Reaktionen: Orios das Auge
ok wir kommen der sache näher problem jetzt
rüstung wurde ausgezogen (id ist übriegens aamodiamelion) aber nicht entfernt
ganz viele aamodiamelionbroken´s sind im inventar aufgetaucht (und es werden immer mehr obwohl ich garkeine rüstung mehr trage) wurden aber nicht ausgerüsted

//Edit: so hab den script jetzt folgendermaßen umgeändert

PHP:
scn aaarmorbrokenc

short init
short next
short EquipDelay
long objecthealth
ref Actor

Begin onEquip
	if init == 0
		set Actor to getcontainer
		set init to 1
	endif
end

Begin GameMode
	if init == 1
		if getCurrentHealth / getObjectHealth >= 0 && getCurrentHealth / getObjectHealth <= 0.75
			message "Rüstung ist beschädigt!"
			set next to 1
               set objecthealth to getObjectHealth aamodiamelion
			Actor.addItem aamodiamelionbroken 1
			set init to 0 "den teil hab ich jetzt hier eingefügt da er den begin onUnequip block nicht abgefragt hat"
	          if next == 1
		          set EquipDelay to 1
	          endif
		endif
	elseif next == 1
		if EquipDelay >= 1
			set EquipDelay to EquipDelay - 1
		elseif EquipDelay == 0
			set next to 0
               Actor.UnEquipItem aamodiamelion
			Actor.EquipItem aamodiamelionbroken "habe ich hier hin verschoben da mein char sonst zwischendurch ~ 1 sekunde keine rüssi trägt"
               Actor.SetEquippedCurrentHealth objecthealth 2
		removeMe
		endif
	endif
end

jetzt gibs noch 2 probleme
1. der skript funktioniert nicht bei NPC´s
2. die setObjecthealth anweisung funktioniert net
 
Zuletzt bearbeitet:
Hi Leute!

Ich will das mich ein NPC Angreift sobald ein Topic angesprochen worden ist.
ICh habe es nun so gemacht, vielleicht könnt ihr mir sagen ob es richtig ist.

Bei dem Topic: GetIsID Npc Ref
Das eigentliche Topic, der Text, Result Script weiss ich nicht wie ich den Schreiben muss NpcRef.StartCombat player?, und einen Haken bei Goodbye. Nochmal zur auffrischung, Nach diesem Topic sollte mich der NPC Angreifen, Ist das bisher so richtig oder hab ich was falsch gemacht?

Mfg Fluffy
 
Jep, das sollte ausreichen... Du könntest eventuell noch die Aggression erhöhen und die Zuneigung zum Spieler auf 0 setzen um sicher zu gehen...
 
  • Like
Reaktionen: Fluffy
Der NPC kann mich dann aber schon noch ansprechen oder?,
Hätte noch ne andere Frage zu diesem script hier

scn 00Test
Begin OnGameMode
If ( GetDistance player < 100 )
NPCREF.StartConversation player, Greeting
endif
end


wieso funzt datt nicht? CS meint, Invalid Block Type in Begin Command???

Mfg Fluffy
 
Es heißt ja auch "Begin GameMode" und nicht "Begin onGameMode"... Kann mich aber erinnern, dass ich damit auch ne Zeit lang Probleme hatte. :D