Construction Set Skriptthread zum Construction Set

Ich würde ein Schwert ohne Havok benutzen, falls du das Script mehrmals benutzen möchtest. Aber trotzdem als "Weapon" einbinden und folgendes Script draufpacken, um einen realistischen Einsammel-Effekt zu haben:
Code:
scn schwertscript

begin onactivate
message " "
mnessage " "
player.additem SCHWERT-ID 1
playsound <SchwertAufhebenSound-ID>
disable
end
Und auf den Altar das Script von Diarrhoe
 
  • Like
Reaktionen: Sammael666
Hab hier mal ein Skript:


scn ABC

short choose1
short choose2
short choose3
short choose4
short choose5
short choose6

begin onactivate
if player.getitemcount Schwert1==1
messagebox"Was wollt ihr tun?" "Schwert aufwerten" "Nichts tun"
set choose1 to 1

elseif player.getitemcount Schwert2==1
messagebox"Was wollt ihr tun?" "Schwert aufwerten" "Nichts tun"
set choose2 to 1

elseif player.getitemcount SCHWERT3==1
messagebox"Was wollt Ihr tun?" "Schwert aufwerten" "Nichts tun"
set choose3 to 1

elseif player.getitemcount SCHWERT11==1
messagebox"Was wollt Ihr tun?" "Schwert abwerten" "Nichts tun"
set choose4 to 1

elseif player.getitemcount SCHWERT22==1
messagebox"Was wollt Ihr tun?" "Schwert abwerten" "Nichts tun"
set choose5 to 1

elseif player.getitemcount SCHWERT33==1
messagebox"Was wollt Ihr tun?" "Schwert abwerten" "Nichts tun"
set choose6 to 1

else
messagebox"Ihr besitzt nicht den nötigen Gegenstand"
endif
end

begin gamemode
if choose1==1
player.removeitem SCHWERT1 1
player.removeitem SCHWERT1 1
player.additem SCHWERT11 1
player.additem SCHWERT111
endif
end

begin gamemode
if choose2==1
player.removeitem SCHWERT2 1
player.removeitem SCHWERT2 1
player.additem SCHWERT22 1
player.additem SCHWERT22 1
endif
end

Es ist noch nicht fertig. Soweit funktioniert aber ich bekomme Schwert 11 unendlich viel mal. Was ist da falsch?
 
Ganz einfach.
PHP:
begin gamemode
if choose1==1
player.removeitem SCHWERT1 1
player.removeitem SCHWERT1 1
player.additem SCHWERT11 1
player.additem SCHWERT111
endif
end

Du setzt choose1 niemals in diesem Block höher.
Insofern ist es immer 1 und wird immer pro Durchlauf ein Schwert 11 adden. ;)
 
  • Like
Reaktionen: Sammael666
Hat funktioniert. Danke

So wenn ich jetzt "Nichts tun" drücke passiert das gleiche wie bei Aufwerten/Abwerten. Was kann ich da machen?
 
Zuletzt bearbeitet:
Recht einfach.
Du legst jetzt für alles noch ne Variable an.
Also "Button1", "Button2" usw.
Typ: Short

Anschließend definierst du Button 1 durch die Zeile
[rainbow]Set Button1 To GetButtonPressed[/rainbow]
In dem Fall würde es im Begin onActivate-Block zunächst auf -1 gesetzt werden (Standard)

Jetzt muss der Spieler auswählen.
"Schwert aufwerten" würde bei der Auswahl die Variable auf 0 setzen.
"Nichts tun" auf 1.

Problem:
Das Auswählen passiert im GameMode-Block.
Du müsstest das Auswählen also dahin verlegen.

(EDIT)
Jetzt hätt ich mal ne Frage.
Es gibt ja Begin onHitWith als Befehl.
Gibt es auch so was wie Begin onHitWithout.
Also dass das Treffen mit irgendwelchen Waffen außer einer bestimmten eine besondere Folge haben soll?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Sammael666
Also kann man bei den Skript das so machen wenn ich das Schwert aufwerten lassen will das da zwischen ein Tag vergeht also Schwert1 abgeben, 1 tag warten, Schwert2 nehmen? Refs die erscheinen und verschwinden sollen habe ich schon gemacht. Also hier das Skript:

scn name
short choose1
short choose2
short choose3
short button1
short button2
short button3
short upgrade
short downgrade
short change
short swordlevel

begin onactivate
if player.getitemcount SCHWERT1==1
messagebox"Was wollt ihr tun?" "Schwert aufwerten" "nichts tun"
set swordlevel to 1
set choose1 to 1

elseif player.getitemcount SCHWERT2==1 || player.getitemcount SCHWERT3==1 || player.getitemcount SCHWERT4==1 || player.getitemcount SCHWERT5==1 || player.getitemcount SCHWERT6==1
messagebox"Was wollt ihr tun?" "Schwert aufwerten" "Schwert abwerten" "nichts tun"
set choose2 to 1

elseif player.getitemcount SCHWERT7==1
messagebox"Was wollt Ihr tun?" "Schwert abwerten" "nichts tun"
set choose3 to 1

else
messagebox"Ihr besitzt nicht den nötigen Gegenstand"
endif
end

begin gamemode
if choose1==1
set button1 to getbuttonpressed
if button1==0
set upgrade to 1
set choose1 to 0
set button1 to 5
elseif button1==1
set choose1 to 0
endif

elseif choose2==1
set button2 to getbuttonpressed
if button2==0
set upgrade to 1
set choose2 to 0
elseif button2==1
set downgrade to 1
set choose2 to 0
elseif button2==2
set choose2 to 0
endif

elseif choose3==1
set button3 to getbuttonpressed
if button3==0
set downgrade to 1
set choose3 to 0
set button3 to 5
elseif button3==1
set choose3 to 0
endif
endif
end

begin gamemode
if upgrade==1
set swordlevel to (swordlevel + 1)
set change to 1
set upgrade to 0
elseif downgrade==1
set swordlevel to (swordlevel - 1)
set change to 1
set downgrade to 0
endif

if change==1
if swordlevel==1
player.additem SCHWERT1 1
set change to 0
elseif swordlevel==2
player.additem SCHWERT2 1
set change to 0
elseif swordlevel==3
player.additem SCHWERT3 1
set change to 0
elseif swordlevel==4
player.additem SCHWERT4 1
set change to 0
elseif swordlevel==5
player.additem SCHWERT5 1
set change to 0
elseif swordlevel==6
player.additem SCHWERT6 1
set change to 0
elseif swordlevel==7
player.additem SCHWERT7 1
set change to 0
endif
else
return
endif
end

Mfg
Sammael666
 
Ich glaube, Schmelz meinte in etwa diese Form:
Code:
Begin onHitWith <Waffe-bei-der-nichts-passieren-soll>

return

end


Begin onHitWith

;blabla

end
 
Will ja nicht nerven aber ist dies möglich oder nicht. Habe zwei Glassäulen modeliert habe sie ins Spiel eingebaut. Die Schwerter sollen darin erscheinen. Also gebe Schwert1 ab, erscheint es in der Säule, muss ein Tag warten, gehe zur Glassäule undd Schwert2 ist nun darin. Und kann es nehmen.

MFG
Sammael666
 
@Sammael666: Wieso nicht?

@DarkSinthoras / Diarrhoe: So sollte es auch gehen, aber ich dachte mir mit "GetPackageTarget", den Zuschlagenden herauszufinden und dann über ("GetEquippedObjekt <ID> 16" (OBSE)) seine Ausgerüstete Waffe.
Ich bin mir aber nicht sicher, ob der erste Befehl den gewünschten Effekt hat.