invetar

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Pinky
PaC-DK Newby
Posts: 40
Joined: 26 Apr 2009, 23:53
Location: Lauterbach
Contact:

invetar

Post: # 74696Post Pinky
12 Nov 2009, 18:39

Hay Leute es ist wider winder ,zeit für Point & Click.
Habe in invetar 3 dinge, docht ,feuerzeug aus,bensin,die 3 sind mit einander verlinkt,der Docht kommt ins feuerzeug_aus, so weit so gut,dan des Bensin, wobei das feuerzeug aus, auf feuerzeug_an gesetzt wird, das die flame brend.Nunn solde es an sein, was nach 3 odr mermaligen benutzen geht ,es solde beim ersten mal gehen,danach ist es kein problem,2.. feuerzeug_aus müste nunn ferschwienden was es nicht tut.
In meinen skript ist der Wurmm drin wer kann mir Hälfen?.
Hir das skript feuerzeug_aus.................................................................
on(mouse)
showinfo (Ein altes Feuerzeug ; true)

on (look)
speech (karl;Mist es feld noch ein Docht und Bensin,es hat noch ein Loch)

on (pickup)
break()
{
pickup (karl)
additem (karl; feuerzeug_aus)
playsound (pickup)
}
on (use)
link(bensin)

on (link)
{
if_link (docht)
{
if_bool (feuer_auf; false)
setbool (feuer_zu; true)
delitem (karl; docht)

on (link)
{
if_link (bensin)

delitem (karl;feuerzeug_aus)
if_bool (lichtbrennt ; false)
additem (karl; feurerzeug_an)
playsound (click)
setbool (lichtbrennt ; true)
timer (20)
delitem (karl; feurerzeug_an)
timer (15)
setbool (lichtbrennt ; false)
break()
}
if_link (docht)
if_bool(lichtbrennt ; true)
{

}
speech (karl;Es Brend)
break()
}
speech (karl; Damit kann man das nicht benutzen. ; speech_cantuse)
}
on (link)

if_link (licht4)

if_bool (fakel_an;true )
setbool (fakel; false)
delitem (karl; licht4)


on(link)
{
if_link(bensin)
{
delitem(karl;bensin)
speech(karl;Da is noch was drin!)
break()
}

if_link(docht)
{
delitem(karl;docht)
speech(karl;Docht fürs Feuerzeug)
break()
}

if_link(feurerzeug_an)
{
delitem(karl;feurerzeug_an)
speech(karl;Es Brend)
break()
}

speech(karl;Das wiell ich nicht)

}
:pcprob: ICH BIN NICHT DER SCHLAUSDE MFG PINKY

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Post: # 74701Post japanhonk
13 Nov 2009, 08:35

Hi Pinky,

woll´n mal sehen...

So beim ersten Drüberschauen habe ich einige Kleinigeiten entdeckt.

z.B.:

on (pickup)
break()
{
pickup (karl)
additem (karl; feuerzeug_aus)
playsound (pickup)
}

Was soll denn nun passieren bei pickup ?
break oder die eingeklammerte Aktion ?
Das on pickup -> break muss im Gegenstandsskript stehen, nicht im Objektskript.

Ich schlage folgendes vor :

on (pickup)
{
if_hasitem (karl;feuerzeug_aus) -> schon vorhanden im Inventar ?
break() -> Wenn ja, dann break()
pickup (karl) ->sonst aufheben
additem (karl; feuerzeug_aus;1)
playsound (pickup)
}

Dein additem Befehl ist auch nicht richtig, es fehlt die Nummer des Inventars, habe es oben schon korrigiert, die 1 am Ende ist wichtig, damit
das Programm weiss, welches Inventar gemeint ist.
Genauso musst Du es auch schreiben, wenn Du einen Gegenstand löschen möchtest :

delitem (karl; docht ;1)

Und wenn es Probleme mit der Ausführung gibt, kann das an den Klammern liegen:
on (look)
speech (karl;Mist es fehlt noch ein Docht und Benzin,es hat noch ein Loch)

on (link)
{
if_link (docht)
{
if_bool (feuer_auf; false)
setbool (feuer_zu; true)
delitem (karl; docht)

....

wenn der Bool feuer_auf false ist, dann sollen doch alleBefehle, die drunter stehen ( im Beispiel hier ) ausgeführt werden ?

Dann klammere die mit ein, sonst wird nur der erste Befehl unter dem if
Befehl ausgeführt, wenn die Bedingung zutrifft. Trifft sie nicht zu, wird der übernächste Befehl ausgeführt.

Versuche es mal so :

on (link)
{
if_link (docht)
{
if_bool (feuer_auf; false)
{ -> Alles in den Klammern ab hier, wenn false
setbool (feuer_zu; true)
delitem (karl; docht)
} } }
....

Viel Erfolg

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Pinky
PaC-DK Newby
Posts: 40
Joined: 26 Apr 2009, 23:53
Location: Lauterbach
Contact:

Bensin

Post: # 74703Post Pinky
13 Nov 2009, 12:24

Erst einmal danke für die Hilfe
Das problen ligt im bensin wen ich es benutzen sol das Feurzeug auf an(Feurzeug _an) Gehen, was es erst nach mehreren versuche klabt (der docht Funzt gut) Das Feurzeug_aus müst weg sein für dei brenndauer,& das feurerzeug_an was es auch tut(mer oder weniger),dan solte feuerzeug_aus wieder da sein das ich es mit den bensin wider Benutzen kann
on (link)
{
if_link (bensin)

delitem (karl;feuerzeug_aus)
if_bool (lichtbrennt ; false)
additem (karl; feurerzeug_an)
playsound (click)
setbool (lichtbrennt ; true)
timer (30)
delitem (karl; feurerzeug_an)
timer (15)
setbool (lichtbrennt ; false)
break()
}
if_link (docht)
if_bool(lichtbrennt ; true)
{

}
speech (karl;Es Brend)
break()
}
speech (karl; Damit kann man das nicht benutzen. ; speech_cantuse)

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Post: # 74705Post japanhonk
13 Nov 2009, 13:21

Hi,

sag mal, ist das brennende Feuerzeug eigentlich zu sehen ? Dann könntest
Du den Bool doch im Objektskript ( Skriptzeile der Animation ) umsetzen.

Abhängig vom Objektzustand kannst Du umgekehrt auch die Bools abfragen, hab damit ganz brauchbare Erfahrungen gemacht.

Beispiel : Eine Animation aus einigen Grafiken zeigt das brennende
Feuerzeug als Zustand 1. Im letzten Bild wechselst Du zu Zustand 2, der dann das Feuerzeug ohne Flamme zeigt. Und in dem Bild steht dann als
Skript : setbool (feuerzeug_aus;true)

Und dann kannst Du ja abfragen :

If_obj (Feuerzeug;1) -> Feuerzeug an....
setbool (feuerzeug_aus;false)

Nur mal so vorweg als Idee - ich schau aber weiter :)

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Post: # 74706Post japanhonk
13 Nov 2009, 13:36

So, versuche mal Folgendes :

on (link)
{
if_link (docht)
{
if_bool(lichtbrennt ; true)
{
speech (karl;Es Brennt)
break()
} }

if_link (bensin)
{ --------------------- -------------->Alles von Link Bensin
if_bool (lichtbrennt ; false)
{
delitem (karl;feuerzeug_aus;1)
additem (karl; feuerzeug_an;1) ->brennendes Feuerz. ins Inventar
playsound (click)
setbool (lichtbrennt ; true) ->Licht AN
timer (30) ->30 s Brenndauer
delitem (karl; feuerzeug_an;1) ->brennendes Feuerz. aus Inventar
additem (karl;feuerzeug_aus;1)->geschlossenes F. ins Inventar
setbool (lichtbrennt ; false) -> Licht wieder AUS
break()
}
speech (karl; Damit kann man das nicht benutzen. ; speech_cantuse)
} }

Ach ja - Du hattest einen Tippfehler drin :
additem (karl; feurerzeug_an;1)
delitem (karl; feurerzeug_an)
Sollte das nicht feuerzeug heissen ? Beim delitem weiter oben hast du das nämlich geschrieben. Dann klappt das natürlich auch nicht.
Viel Erfolg

Manni
Last edited by japanhonk on 14 Nov 2009, 06:34, edited 5 times in total.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Pinky
PaC-DK Newby
Posts: 40
Joined: 26 Apr 2009, 23:53
Location: Lauterbach
Contact:

Andwort

Post: # 74708Post Pinky
14 Nov 2009, 00:37

Ich sammle ein EIN DOCHT,FEUERZUG_ AUS(ZU);BENSIN;DER docht soll mit dem Feurzug kombinird werden so das er weg ist,was auch geht.Das FEUERZUG AUS Ist im invetar ,wen ich das Bensin Habe sol das mit den Bensin auf ,an (FEUERZEUG AN(AUF)Flame Brend (30s AUS)FEUERZUG AUS(ZU) so das es zur jede zeit wieder mit den Bensin kombinird werden kan ,da ich feuer noch mer fach brauche,was auch mit den link klapt(wen das feuer mal an geht ) feuer aus soll für die brenn dauer weg sein.(Was Nicht geht) ICH HOFFE DAS IHR WIST WAS ICH MEIN MFG PINKY PS Ich schau mir das open mal an

Post Reply