die Belohnung kann er ja einfach so bekommen
sonst wird das auf dauer glaub ich für den Spieler etwas zu ermüdend, wenn mandauernd dahinrennen muss, wo der NPC gerade ist.
Natürlich musst du oben ncoh eintragen:.
.
.
If ( Angeklopft == 4 )
set ButtonB to GetButtonPressed
If ( ButtonB == 0 )
If ( player -> GetItemCount "Gold_001" >= 50 )
set ChanceL to Random 3
player -> RemoveItem "Gold_001" 50
set ButtonB to 0
set Angeklopft to 0
Return
Else
If ( ButtonB == 1 )
If ( player -> GetItemCount "Gold_001" >= 100 )
set ChanceM to Random 3
player -> RemoveItem "Gold_001" 100
set ButtonB to 0
set Angeklopft to 0
Return
Else
If ( ButtonB == 2 )
If ( player -> GetItemCount "Gold_001" >= 200 )
set ChanceS to Random 3
player -> RemoveItem "Gold_001" 100
set ButtonB to 0
set Angeklopft to 0
Return
Else
player -> AddItem "Gold_001" 1000
set ButtonB to 0
set Angeklopft to 0
Return
.
.
.
If ( ChanceL == 1 )
placeATPC "ID-Monster leicht_01" 1 0 0
ElseIf ( ChanceL == 2 )
placeATPC "ID-Monster leicht_02" 1 0 0
ElseIf ( ChanceL == 3 )
placeATPC "ID-Monster leicht_03" 1 0 0
EndIf
If ( ChanceM == 1 )
placeATPC "ID-Monster Mittel_01" 1 0 0
ElseIf ( ChanceM == 2 )
placeATPC "ID-Monster Mittel_02" 1 0 0
ElseIf ( ChanceM == 3 )
placeATPC "ID-Monster Mittel_03" 1 0 0
EndIf
If ( ChanceS == 1 )
placeATPC "ID-Monster Schwer_01" 1 0 0
ElseIf ( ChanceS == 2 )
placeATPC "ID-Monster Schwer_02" 1 0 0
ElseIf ( ChanceS == 3 )
placeATPC "ID-Monster Schwer_03" 1 0 0
EndIf
End
Short ChanceL
Short ChanceM
Short ChanceS
Begin My_Monster_Leichtsript_01
if ( GetDeadCount "Monster leicht" >= 3 ) ;beschreibt wie coft du dieses Monster getötets hast weil dreie drine sind muss da eine 3 hin
set Monster_LeichtVAr to 1
set Monster_Leicht_Behlonung to Monster_Leicht_Behlonung + 1
player -> PositionCell x, y, z "Ausgangspunkt"
; Es müssen 3 Monster sein es können auch zwei oder wie viele sein musste halt nur umändern
EndIf
End
Begin My_Tür_Unterwasser_script
If ( OnActivate == 1 )
player -> RemoveItem (Schlüssel-ID) 1
Activate
Endif
End
Short ChanceL
Short ChanceM
Short ChanceS
If ( Angeklopft == 4 )
set ButtonB to GetButtonPressed
If ( ButtonB == 0 )
If ( player -> GetItemCount "Gold_001" >= 50 )
set ChanceL to Random 3
player -> RemoveItem "Gold_001" 50
set ButtonB to 0
set Angeklopft to 0
Return
Else
If ( ButtonB == 1 )
If ( player -> GetItemCount "Gold_001" >= 100 )
set ChanceM to Random 3
player -> RemoveItem "Gold_001" 100
set ButtonB to 0
set Angeklopft to 0
Return
Else
If ( ButtonB == 2 )
If ( player -> GetItemCount "Gold_001" >= 200 )
set ChanceS to Random 3
player -> RemoveItem "Gold_001" 100
set ButtonB to 0
set Angeklopft to 0
Return
Else
player -> AddItem "Gold_001" 1000
set ButtonB to 0
set Angeklopft to 0
Return
.
.
.
If ( ChanceL == 1 )
placeATPC "ID-Monster leicht_01" 1 0 0
ElseIf ( ChanceL == 2 )
placeATPC "ID-Monster leicht_02" 1 0 0
ElseIf ( ChanceL == 3 )
placeATPC "ID-Monster leicht_03" 1 0 0
EndIf
If ( ChanceM == 1 )
placeATPC "ID-Monster Mittel_01" 1 0 0
ElseIf ( ChanceM == 2 )
placeATPC "ID-Monster Mittel_02" 1 0 0
ElseIf ( ChanceM == 3 )
placeATPC "ID-Monster Mittel_03" 1 0 0
EndIf
If ( ChanceS == 1 )
placeATPC "ID-Monster Schwer_01" 1 0 0
ElseIf ( ChanceS == 2 )
placeATPC "ID-Monster Schwer_02" 1 0 0
ElseIf ( ChanceS == 3 )
placeATPC "ID-Monster Schwer_03" 1 0 0
EndIf
End
Begin My_Monster_Leichtsript_01
if ( GetDeadCount "Monster leicht" >= 3 ) ;beschreibt wie coft du dieses Monster getötets hast weil dreie drine sind muss da eine 3 hin
set Monster_LeichtVAr to 1
set Monster_Leicht_Behlonung to Monster_Leicht_Behlonung + 1
player -> PositionCell x, y, z "Ausgangspunkt"
; Es müssen 3 Monster sein es können auch zwei oder wie viele sein musste halt nur umändern
EndIf
End
Begin My_Tür_Unterwasser_script
If ( OnActivate == 1 )
player -> RemoveItem (Schlüssel-ID) 1
Activate
Endif
End
short zufall
short count
...
set anzahl to Random 3
set my_monster_anzahl to my_monster_anzahl + 1
set count to my_monster_anzahl
while ( count > 0 )
set zufall to Random 100
if ( zufall < 33 )
PlaceAtPC "my_monster1" 1 128 0
elseif ( zufall < 66 )
PlaceAtPC "my_monster2" 1 128 0
else
PlaceAtPC "my_monster3" 1 128 0
endif
endif
set count to count - 1
endwhile
begin my_monster_script
if ( OnDeath == 1 )
set my_kill_anzahl to my_kill_anzahl + 1
if ( my_kill_anzahl == my_monster_anzahl )
set my_kill_anzahl to 0
set my_monster_anzahl to 0
MessageBox "Ich habe alle Monster besiegt."
endif
endif
end
begin my_schrein_script
short doOnce
short state
short button
if ( doOnce == 1 )
if ( my_anzahl_kampf == 0 )
set doOnce to 0
endif
endif
if ( doOnce == 0 )
if ( state == 0 )
if ( OnActivate == 1 )
set state to 1
MessageBox "Wollt Ihr kämpfen?" "Ja" "Nein"
endif
endif
endif
if ( state == 1 )
set button to GetButtonPressed
if ( button == 0 )
MessageBox "Dann kämpft."
set doOnce to 1
set state to 0
set my_anzahl_kampt to my_anzahl_kampf + 1
endif
if ( button == 1 )
set state to 0
endif
endif
end
Begin My_Unterwasserarena_Schrein_01
Short ChanceL
Short ChanceM
Short ChanceS
Short Angeklopft
Short Button
SHort ButtonB
If ( OnActivate == 1 )
If ( Angeklopft == 0 )
set Angeklopft to 1
EndIf
EndIf
If ( Angeklopft == 1 )
MessageBox "Willst du für 1000 Draken die Unterwasserarena betreten?" "Ja" "Nein"
set Angeklopft to 2
EndIf
If ( Angeklopft == 2 )
set Button to GetButtonPressed
If ( Button == 0 )
If ( player -> GetItemCount "Gold_001" >= 1000 )
player -> PositionCell x, y, z, (Unterwasserraum)
;die XYZ Koordinaten bekommst du wenn du ein objetk markierst und in der untersten reihe Schaust.
player -> removeitem "Gold_001" 1000
set Angeklopft to 3
set Button to 0
Else
If ( Button == 0 )
If ( player -> GetItemCount "Gold_001" < 1000 )
MessageBox "Du hast nicht genug GelD"
set Angeklopft to 0
set Button to 0
Return
Else
If ( Button == 1 )
MessageBox "Dann nicht"
set Angeklopft to 0
set Button to 0
Return
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
If ( Angeklopft == 3 )
MessageBox "Welche Stärke der Monster" "Leicht 50Draken" "Mittel100Draken" "Schwer 200draken"
set Angeklopft to 4
EndIf
If ( Angeklopft == 4 )
set ButtonB to GetButtonPressed
If ( ButtonB == 0 )
If ( player -> GetItemCount "Gold_001" >= 50 )
set ChanceL to Random 3
player -> RemoveItem "Gold_001" 50
set ButtonB to 0
set Angeklopft to 0
Return
Else
If ( ButtonB == 1 )
If ( player -> GetItemCount "Gold_001" >= 100 )
set ChanceM to Random 3
player -> RemoveItem "Gold_001" 100
set ButtonB to 0
set Angeklopft to 0
Return
Else
If ( ButtonB == 2 )
If ( player -> GetItemCount "Gold_001" >= 200 )
set ChanceS to Random 3
player -> RemoveItem "Gold_001" 100
set ButtonB to 0
set Angeklopft to 0
Return
Else
player -> AddItem "Gold_001" 1000
set ButtonB to 0
set Angeklopft to 0
Return
If ( ChanceL == 1 )
placeATPC "ID-Monster leicht_01" 1 0 0
ElseIf ( ChanceL == 2 )
placeATPC "ID-Monster leicht_02" 1 0 0
ElseIf ( ChanceL == 3 )
placeATPC "ID-Monster leicht_03" 1 0 0
EndIf
If ( ChanceM == 1 )
placeATPC "ID-Monster Mittel_01" 1 0 0
ElseIf ( ChanceM == 2 )
placeATPC "ID-Monster Mittel_02" 1 0 0
ElseIf ( ChanceM == 3 )
placeATPC "ID-Monster Mittel_03" 1 0 0
EndIf
If ( ChanceS == 1 )
placeATPC "ID-Monster Schwer_01" 1 0 0
ElseIf ( ChanceS == 2 )
placeATPC "ID-Monster Schwer_02" 1 0 0
ElseIf ( ChanceS == 3 )
placeATPC "ID-Monster Schwer_03" 1 0 0
EndIf
End
Begin My_Unterwasserscript_01
Short My_Schrein_Var
Short ChanceL
Short ChanceM
Short ChanceS
Short Button
If ( OnActivate == 1 )
If ( My_Schrein_Var == 1 ) ; My_Schrein_Var ist eine Global-Variable und wird durch das gesprch mit den NPC auf 1 gesetzt.
set My_Schrein_Var to 2
EndIf
EndIf
If ( My_Schrein_Var == 2 )
MessageBox "Willst du gegen ein" "Leichten gegner für 50Dr. Kämpfen" "Normalen gegner für 100Dr. Kämpfen" "Schweren gegner für 200Dr. Kämpfen" "Öhm nö heute doch nicht"
set My_Schrein_Var to 3
EndIf
If ( My_Schrein_Var == 4 )
set Button to getButtonPressed
If ( Button == 0 ) ;Drückst du den ersten Button also leicht
If ( player -> GetItemCount "Gold_001" 50
player -> PositionCell x, y, z, "Name der Celle"
player -> RemoveItem "Gold_001" 50 ;hier wird den player Geld abgezockt
set ChanceL to Random 3 ;Chance wird zu Zufall 3 also es kann passieren das es 1, 2 oder 3 als Frame anzeigt.
set My_Schrein_Var to 0
set Button to 0
return
Else
If ( Button == 1 )
If ( player -> GetItemCount "Gold_001" >= 100 )
player -> RemoveItem "Gold_001" 100
player -> PositionCell x, y, z, "Name der Celle"
set ChanceM to Random 3
set Button to 0
set My_Schrein_Var to 0
return
Else
If ( Button == 2 )
If ( player -> GetItemCount "Gold_001" >= 200 )
player -> RemoveItem "Gold_001" 200
player -> PositionCell x, y, z, "Name der Celle"
set ChanceS to Random 3
set Button to 0
set My_Schrein_Var to 0
return
Else
set Button to 0
set My_Schrein_Var to 1
return
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
If ( ChanceL == 1 )
placeATPC "ID-Monster leicht_01" 1 0 0 ;irgendeine Id deines Monster z.B My wasserratte
ElseIf ( ChanceL == 2 )
placeATPC "ID-Monster leicht_02" 1 0 0 ; hier die andere
ElseIf ( ChanceL == 3 )
placeATPC "ID-Monster leicht_03" 1 0 0 ; hier auch eine ander so das du immer eins von den 3monser bekommst welches weist du nciht
EndIf
If ( ChanceM == 1 )
placeATPC "ID-Monster Mittel_01" 1 0 0
ElseIf ( ChanceM == 2 )
placeATPC "ID-Monster Mittel_02" 1 0 0
ElseIf ( ChanceM == 3 )
placeATPC "ID-Monster Mittel_03" 1 0 0
EndIf
If ( ChanceS == 1 )
placeATPC "ID-Monster Schwer_01" 1 0 0
ElseIf ( ChanceS == 2 )
placeATPC "ID-Monster Schwer_02" 1 0 0
ElseIf ( ChanceS == 3 )
placeATPC "ID-Monster Schwer_03" 1 0 0
EndIf
End
wie gesagt, bitte seit net böse, aber ich bin lediglich mit der visual basic.net Programmiersprache vertraut und diese hier unterscheidet sich doch schon arg. desswegen fürchte ich, dass ich genausogut überhauptkeine Vorkenntnise haben kann...
begin my_kontroll_script
short belohnung
short schwierigkeit1
short schwierigkeit2
short schwierigkeit3
short test
if ( Player->OnDeath == 1 )
Resurrect
PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"
endif
if ( my_monster_anzahl == 0 )
PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"MessageBox "Ihr habt gewonnen und erhaltet eine Belohnung."
if ( my_grad_aktuell == 1 )
set schwierigkeit1 to 1
Player->AddItem "Gold_001" 50
messagebox "Belohnung1"
endif
if ( my_grad_aktuell == 2 )
set schwierigkeit2 to 1
Player->AddItem "Gold_001" 100
messagebox "Belohnung2"
endif
if ( my_grad_aktuell == 3 )
set schwierigkeit3 to 1
Player->AddItem "Gold_001" 200
messagebox "Belohnung3"
endif
if ( my_alle_grade == 0 )
set test to schwierigkeit1
set test to test + schwierigkeit2
set test to test + schwierigkeit3
if ( test == 3 )
set my_alle_grade to 1
endif
endif
endif
end
If ( Tot == 1 )
if ( Player->OnDeath == 1 )
Resurrect
PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"
set Tot to 0
endif
set Tot to 1
set Tot to 0
die Variable my_monster_anzahl wird auf 0 gesetzt, sobald du alle Monster besiegt hast. Danach bekommst du deine Belohnung und das Script terminiert sich selbst (den Befehl hatte ich auch vergessen ). Neu aufgerufen wird das Script allerdings erst, wenn wieder neue Monster erzeugt sind.dann müsste man eigentlich doch eine dauermeldung bekommen und andauernd an diesen Ort gebeamt werden!?!
Ähhm??? Hab mir das Script erst anders überlegt und dann scheinbar nicht mehr gelöscht.dann müsste man eigentlich doch eine dauermeldung bekommen und andauernd an diesen Ort gebeamt werden!?!
Also, das ist mir ein absolutes Rätsel. :huh:der schrein hat bell1 als sound eingestellt und wenn man den Schrein anspricht, dann ertönt der Glockenschlag, (und der schrein dreht sich um 45°) aber mehr passiert nicht.
Auch nicht, wenn man den NPC anspricht.
Aua, aua, aua- wo ist denn das Script dran? Ist es ein globales Script und wird durch ein globales Script gestartet? Dann wird es abstürzen...Sword schrieb:if ( Player->OnDeath == 1 )
Resurrect
PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"
endif
begin my_door1_script
if ( OnActivate == 1 )
set my_shrine_active to 0
Activate
endif
end
begin my_shrine1_script
short state
short zufall
short button
short count
if ( my_shrine_active == 0 )
return
endif
if ( OnActivate == 1 )
if ( state == 0 )
MessageBox "Wollt Ihr kämpfen?" "Ja." "Nein."
set state to 1
endif
endif
if ( state == 1 )
set button to GetButtonPressed
if ( button == 0 )
MessageBox "Wie schwer soll der Kampf sein?" "Leicht (50 Draken)" "Mittel (100 Draken)" "Schwer (200 Draken)"
set state to 2
set button to -1
endif
if ( button == 1 )
set state to 0
set button to -1
endif
endif
if ( state == 2 )
set button to GetButtonPressed
if ( button == 0 )
set my_grad_aktuell to 1
Player->PositionCell -433 -1680 0 0 "Terra, Monsterfarm"
set anzahl to Random 3
set my_monster_anzahl to my_monster_anzahl + 1
set count to my_monster_anzahl
while ( count > 0 )
set zufall to Random 100
if ( zufall < 33 )
PlaceAtPC "my_mudcrab" 1 128 0
elseif ( zufall < 66 )
PlaceAtPC "My_rat_water" 1 128 0
else
PlaceAtPC "my_Slaughterfish_Small" 1 128 0
endif
endif
set count to count - 1
endwhile
set state to 0
set button to -1
StartScript my_kontroll_script
endif
if ( button == 1 )
set my_grad_aktuell to 2
Player->PositionCell -433 -1680 0 0 "Terra, Monsterfarm"set anzahl to Random 3
set my_monster_anzahl to my_monster_anzahl + 1
set count to my_monster_anzahl
while ( count > 0 )
set zufall to Random 100
if ( zufall < 33 )
PlaceAtPC "my_slaughterfish" 1 128 0
elseif ( zufall < 66 )
PlaceAtPC "My_guar_water" 1 128 0
else
PlaceAtPC "my_dreugh" 1 128 0
endif
endif
set count to count - 1
endwhile
set state to 0
set button to -1
StartScript my_kontroll_script
endif
if ( button == 2 )
set my_grad_aktuell to 3
Player->PositionCell -433 -1680 0 0 "Terra, Monsterfarm"
set anzahl to Random 3
set my_monster_anzahl to my_monster_anzahl + 1
set count to my_monster_anzahl
while ( count > 0 )
set zufall to Random 100
if ( zufall < 33 )
PlaceAtPC "My_kagouti_water" 1 128 0
elseif ( zufall < 66 )
PlaceAtPC "My_Qualle" 1 128 0
else
PlaceAtPC "my_Haizahn" 1 128 0
endif
endif
set count to count - 1
endwhile
set state to 0
set button to -1
StartScript my_kontroll_script
endif
endif
end
begin my_kontroll_script
short belohnung
short schwierigkeit1
short schwierigkeit2
short schwierigkeit3
short test
if ( GetPCCell "Terra, Monsterfarm" == 1 )
if ( Player->OnDeath == 1 )
Player->Resurrect
PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"
endif
endif
if ( my_monster_anzahl == 0 )
PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"MessageBox "Ihr habt gewonnen und erhaltet eine Belohnung."
if ( my_grad_aktuell == 1 )
set schwierigkeit1 to 1
Player->AddItem "Gold_001" 50
messagebox "Belohnung1"
endif
if ( my_grad_aktuell == 2 )
set schwierigkeit2 to 1
Player->AddItem "Gold_001" 100
messagebox "Belohnung2"
endif
if ( my_grad_aktuell == 3 )
set schwierigkeit3 to 1
Player->AddItem "Gold_001" 200
messagebox "Belohnung3"
endif
if ( my_alle_grade == 0 )
set test to schwierigkeit1
set test to test + schwierigkeit2
set test to test + schwierigkeit3
if ( test == 3 )
set my_alle_grade to 1
endif
endif
StopScript my_kontroll_script
endif
end
begin my_monster_script
if ( OnDeath == 1 )
set my_kill_anzahl to my_kill_anzahl + 1
if ( my_kill_anzahl == my_monster_anzahl )
set my_kill_anzahl to 0
set my_monster_anzahl to 0
MessageBox "Ich habe alle Monster besiegt."
endif
endif
end
Du sollst mich nicht zufrieden stellen sondern funktionierende Scripts schreiben damit die Spieler nachher keine Krise kriegenKillfetzer schrieb:So um Rene zufrieden zu stellen, hab ich das Script ein wenig "umsortiert":
Deswegen finde ich es wichtig das man nicht fertige Scripte liefert sondern dem Fragesteller das Denken und Nachvollziehen selbst überlässt. Schliesslich lernt man dabei mehr als beim Copy&Paste einiger ellenlanger Scripts. Ausserdem gibt es ja meist mehrere Wege ein Problem zu lösen und man soll dem noch übenden Programmierer die Übung nicht völlig abnehmen: Schliesslich steigt dessen Erfahrung nur durch eigene Erkenntnisse und nur mit Hilfe dieser Kenntnisse wird man später in der Lage sein, eigene, funktionierende Scripts zu schreiben.
man kann nur einmal Kämpfen.
danach, unabhängig davon, welche Kampfstärke man genommen hat, bleibt der Schrein inaktiv. also er ist inaktiv, wenn man ihn nochmal anspricht und wenn man das topic beim NPC anspricht...