Manuelles "un-linken" von Items??

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Manuelles "un-linken" von Items??

Post: # 81161Post Humus Humanus
05 Mar 2014, 19:47

Eine ganz simple Sache: Charakter benutzt Gegenstand auf etwas -> Reaktion -> Item nicht mehr im Inventar. In früheren Projekten schon 10000 mal gemacht, doch jetzt habe ich Probleme.

... wenn ich den Gegenstand auf die Sache anwende, verschwindet er scriptgemäß aus dem Inventar, die Reaktion klappt - optisch und technisch soweit alles, wie es sein soll. Doch ist nach Ablauf der Szene (und trotz gelöschten Items) immer noch der Gegenständ verlinkt, der eigentlich nicht mehr existiert. Dies hat zur Folge, dass die "Reaktion" nun unendlich oft passieren kann (für den Spielfluss und die Logik natürlich tödlich), bis ich mit dem verlinkten Gegenstand auf eine "freie" Fläche irgendwo klicke, damit der Link aufhört.

Informationen:
---> Coin-Interface
---> Option "Gegenstände mitziehen" eingeschaltet, soll auch bleiben
---> Im jeweiligen Gegenstandscript:
on (click)
link (besagter-gegenstand)
... mehr nicht, ein simpler Klick verlinkt schon zum benutzen (coin öffnet sich nur bei Rechtsklick auf "Dinge" in der Spielwelt)

Das beispielhafte Script, worauf das Item verwendet wird, sieht so aus:

on (click)
{
walkto (Charakter;17;22;3)
if_link (besagter-gegenstand)
{
minicut (donthide)
walkto (Charakter;17;22;3)
setchar ( Charakter;hyper-geile-animation-alter! )
wait (0,2)
delitem (Charakter;besagter-gegenstand)
setobj (itemblock;0)
setobj (ok; 1)
wait (0,7)
setobj (ok;2)
wait (0,9)
setobj (ok;3)
wait (0,4)
setobj (ok;0)
break ()
}
}


....... theoretisch könnte ich natürlich einfach scripten, dass jede Itemnutzung >1 nicht mehr geht, aber das Problem ist eben, dass es häßlich ausschaut, wenn der Gegenstand noch verlinkt ist, obwoh er nicht mehr im Inventory is :dau:
... benutzt wird generell so: Klick auf Gegenstand im Inventory, er wird mitgezogen weil so eingestellt, Klick auf Ding in der Spielwelt. (Fokus liegt nicht auf klassischem "benutze, rede mit, gib...")
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

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

Re: Manuelles "un-linken" von Items??

Post: # 81162Post japanhonk
05 Mar 2014, 21:37

Ahh...mal wieder was zu Knobeln...

Ich habe noch nie mit dem Mitziehen der Items gearbeitet , aber warum der Link Befehl nicht
"gelöscht" wird, weiss ich zunächst auch noch nicht...Als "erste Hilfe" fiel mir erst ein,
den delitem Befehl weiter nach hinten zu setzen...ist aber nur ein Gedanke.

Schonmal sowas,wie link(none) versucht ? Wobei None dabei ein Dummyitem sein könnte ?
So wäre nur 1 Skriptzeile nötig...

Gruss

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

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81163Post Humus Humanus
05 Mar 2014, 22:03

Ja, schon versucht, der Link gilt unmittelbar nach der "Action" grundsätzlich noch dem zuletzt drauf verwendetem Item :\ egal ob delitem... und egal, an welcher Stelle dies steht :cry:

Kann es eine Rolle spielen, dass das Item innerhalb des minicut gelöscht wird? Eigentlich doch nicht?
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81164Post Humus Humanus
05 Mar 2014, 22:15

Ich arbeite eigentlich seit 2006 :D ... immer mit Mitziehen, das Problem gab es nie. Aber ich teste es zum ersten mal in Coin-Interface Steuerung (wobei diese auf meine Inventory-Bedienung null Einfluss hat). Es ist wirklich alles wahnsinnig simpel, im Grunde.
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

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

Re: Manuelles "un-linken" von Items??

Post: # 81165Post japanhonk
05 Mar 2014, 22:20

Hmm - also ich mutze auch mittlerweile das CI...
Das beschriebene Problem tritt bei mir nicht auf...
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

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81166Post Humus Humanus
05 Mar 2014, 22:24

Kann das Problem denn sein, dass ich quasi "zwei" Steuerungen überlappend verwende?
Zum einen ein Coinsystem (nur zum Ansehen / Interagieren, gilt nur für Objekte in der Spielwelt), zum anderen das Inverntory in einer oberen Taskbar (auch nur für's Inventory, nix sonst) - und hier kann man nur anklicken, um eben das Item mitziehend zu verlinken (ein simpler Klick auf Objekt xy in der Spielwelt ist dann die benutzen/geben-Kombi).
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81167Post Humus Humanus
05 Mar 2014, 22:28

Grad' mal "ohne Mitziehen" getestet, aber Problem bleibt. Der Link wird nicht gelöscht. Nun sieht es zwar nicht "komisch" aus, aber das Mitziehen als grafischer Effekt ist schon irgendwie unverzichtbar.
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81168Post Zimond
05 Mar 2014, 22:42

Probier mal testweise das Minicut weg zu machen. Läuft ja trotzdem durch das Skript nur ohne pausen und sag mir ob der Link dann immer noch drin ist. Dann weis ich wo ich ansetzen muss, bin ja gerade am Code der Engine.
Image

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81169Post Humus Humanus
05 Mar 2014, 22:55

Habe es getestet, kein Unterschied, der Link bleibt :(
(er löst sich nur auf, wenn ich auf eine nicht irgendwie "benutzte", objekt/skript-freie Fläche klicke)

Ich habe das Problem nun auch zum ersten Mal so wirklich, und denke echt, es liegt iiirgendwo verworren in meinen Steuerungscodes, da es nicht alles einheitlich ist (aber wirklich SEHR simpel). Ansonsten gibt/gab es nie Probleme.
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81171Post Zimond
06 Mar 2014, 00:53

on (click)
{
walkto (Charakter;17;22;3)
}

on (link)
{

if_link (besagter-gegenstand)
{
minicut (donthide)
walkto (Charakter;17;22;3)
setchar ( Charakter;hyper-geile-animation-alter! )
wait (0,2)
delitem (Charakter;besagter-gegenstand)
setobj (itemblock;0)
setobj (ok; 1)
wait (0,7)
setobj (ok;2)
wait (0,9)
setobj (ok;3)
wait (0,4)
setobj (ok;0)
break ()
}
}

Sehen zufällig deine anderen Skripte wo es überall keine Probleme machte so aus?
Image

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81172Post Humus Humanus
06 Mar 2014, 02:28

Ja, in anderen, alten Projekten quasi schon. Aber hier... argh ich weiß nicht Recht wie ich's erklären soll. :mmh:

Ich fahre halt, öh, "zweigleisig". Würde ich die Items über den "use" Befehl - ausgelöst in der Coin - befehligen, so gäbe es wohl wieder keine Probleme. Aber die Coin öffnet sich (absichtlich) nicht im Inventory, da klickt man nur auf das Item und es ist aktiviert... wirklich ganz simpel on (click) ... Auslöser auf einem Objekt ist dann ein weiterer, simpler Klick auf eben dieses, wenn zuvor das Item angeklickt (das weiß man, weil's ja mitgezogen wird) wurde. Also, im Skript der Objekte steht nicht on (use) bezüglich Kombinationen, sondern on (click) und dann if_link (gegenstand).

"Benutze mit" im klassischen Sinne gibt es also nicht. Entweder man benutzt etwas "ohne Item" über die Coin, oder man kombiniert das Item über Klick 1 auf's Item -> Klick 2 auf womit's benutzt werden soll.

Klappt alles wie es soll... nur halt, dass der Link bleibt, außer man klickt in ein freies, neutrales Feld.
Sollte es echt keine Lösung geben, werde ich wohl auch im Inventory die Coin aktivieren müssen und eben einiges umskripten :? So WÜRDE es ja gehen, soll aber nicht :mrgreen:
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

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

Re: Manuelles "un-linken" von Items??

Post: # 81173Post japanhonk
06 Mar 2014, 06:25

wenn das Projekt nicht allzugross ist, dann kannst Du es mal exportieren und mir schicken, ich würde
dann mal sehen, was ich machen kann. Sofern es Skriptmässig geht, dann würde auch ein Raum reichen.

Ich vermute, die Art, wie Du das CI aufrufst, könnte ein Problem sein. (Wundere mich sowieso, weil ich sont immer gesagt habe : entweder CI oder Taskbar )

Vielleicht hilft Dir das, was ich benutze :

Jeder Raum bekommt ein Hintergrunddummy. Das nimmt alle Clicks auf, die sonst nirgends hingehören. Und es ersetzt den on (mouseout) Befehl in den einzelnen Objekten. ( brauche ich,
um die Zeigermarkierung bei anklickbaren Objekten wieder auf 0 zu setzen)
Ein Loop1 nimmt zudem die Zeigerposition auf und wandelt sie in Walkmappunkte um, sonst wird
kein Walk Befehl ausgeführt. ( Das brauche ich sowieso, um den Mauszeiger bei Textfenstern automatisch auf den Close-Window Button zu setzen und nach Klick wieder an die vorherige
Position, die ich dazu in 2 Variablen gespeichert habe beim Fensteröffnen )

Dann gibt es einen Bool : Rightclick.

Bei Rechtsklick kann ich den dann auf true setzen und jedes Objekt bekommt ins Skript :

on (rightclick)
{
command (use)
setbool (rightclick;true)
popup (coin)
break()
}

Dort, wo ich den Rechtsklick für etwas Anderes verwenden will, bleibt der Bool auf false nzw das
Skript ist dann anders.
So z.B. im Inventar.

Also , so wie ich das jetzt verstehe, bleibt das Item auch nach dem Entfernen befehlsmässig quasi am "Zeiger kleben".
Ich wüsste jetzt nur die Möglichkeit, beim Benutzen nicht nur das Item zu löschen, sondern auch
einen anderen Befehl zu setzen. Z.B. Command (walk) - je nachdem, wie Du das bei Dir umgesetzt hast. Oder Du benutzt auch eine Abfrage zum Prüfen.
on (link)
{
if_link (irgendwas)
{
ifnot_hasitem (self;irgendwas)
break()
if_hasitem (self;irgendwas)
...
}
}

Statt des break() kann man auch etwas Anderes verlinken oder einen anderen Befehl per command
setzen.
Auch ein Bool wäre denkbar zum Prüfen. Ist das Item angeklickt, dann setzt Du den Bool auf true.
Hast Du es angelegt/benutzt, dann auf false. Wenn es dann doch noch am Zeiger hinge, müsste
ein neuer Befehl ins Leere gehen. ( Auch das Wechseln und Abfragen des Itemzustandes ist möglich.)

If_item (irgendwas;1)
setitem (irgendwas;3)
Ifnot_item (irgendwas;1)
break()

So - das alles mal eben zusammengeschustert vor dem ersten Kaffee... daher : ohne Gewähr...

Wann trat das Problem denn zum ersten Mal auf ? Erst während des Projektes oder von Anfang an ?

Gruss

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

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81175Post Zimond
06 Mar 2014, 14:44

Du brauchst doch gar kein on(use) den Link Befehl kannst du ja überall benutzen auch ohne Use aber er muss dann in einem on (link) Ereignis abbearbeitet werden. Sonst weis die Engine ja nicht das die Verlinkung beendet ist. If_link alleine kann man ja auch mehrfach verwenden, reicht also nicht. Da sollte bei dir also trotzdem funktionieren ohne on (use) ect.
Image

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81176Post Humus Humanus
06 Mar 2014, 16:00

Ich teste nachher was rum und meld mich dann :thumbup: Danke für's mal Mitdenken :D
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81177Post Humus Humanus
06 Mar 2014, 17:09

Immer noch wird der Item-Link nicht gelöscht.
Auch nicht, wenn ich jetzt alles mit on (link) mache (in den Objektscripts), und ebenso, wenn ich auch im Inventory die Coin nutze (zum kombinieren also klassisch on (use) nötig ist).
Tatsächlich klappt bei on (link) nun gar nichts mehr, bei nem Klick auf's Objekt geht der Charakter nur dahin (weil halt on (click) zum gehen ist, klar) - ohne danach/währenddessen die Aktion auszuführen. :shock:

Irgendwo MUSS ja noch ein Fehler sein, aber ich habe in alten Projekten nachgeschaut (meist klassische Taskbar mit Befehlen), und da mache ich es ja nicht anders. Tutorial bzw. Ben's Vorschlag weiter oben sagen ja auch nix anderes. Nur in diesem Projekt mit Coin-Steuerung (wobei es daran doch nicht liegen kann??) funzt eine simple Link-Auflösung nach 'ner Aktion nicht :lol:
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81178Post Zimond
06 Mar 2014, 18:51

Ich kann das vereinfachen aber halt erst in den nächsten version. Also schlag ich vor lass vorerst die Unschönheit drin... oder bist du kurz vor fertig?
Image

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81179Post Humus Humanus
06 Mar 2014, 19:07

Kurz vor fertig, es fehlen wenige Grafiken, paar Abgleiche und Sound.
Es ist nur ein kleines Horror-Psycho-"Experiment" zusammen mit noch jemanden, aber wäre in der Basis nun fertig. Gibt auch nur wenige Kombinationen, wirklich "häßlich" wirkt der "Fehler" nur an zwei Stellen (weil eben da das Item WEG ist nach Benutzung; da, wo das Item eh im Inventoy bleibt, finde ich das verlinkt bleiben eigentlich egal).
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81180Post Zimond
06 Mar 2014, 19:48

Probier mal ein command () am Ende des Skriptes. (Vor dem Break aber)
Image

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81182Post Humus Humanus
06 Mar 2014, 20:10

Engine-Papa... :drink:
SO GEHTS! Ich muss nichtmal IRGENDWAS mir Wichtiges umstellen sonst, einfach überall dieses Zauberwort command einfügen vorm break! GEIL! DANKE.

... trotzdem strange, sonst muss man/musste ich das ja auch nicht ... :shock:
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81184Post Zimond
06 Mar 2014, 20:48

Ja das mit der commands und unterschiedlichen steuerungen ist etwas undurchsichtig , war ich nie so 100pro mit zufrieden :oops: . Musste in meinem eigenen Code wühlen um noch mal genau zu sehen wo und wann der Link zurückgesetzt wird. Ich glaub automatisch gehts wirklich nur wenn zuvor ein Befehl wie USE benutzt wurde. Aber so gehts ja zum Glück ^^
Image

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81185Post Humus Humanus
06 Mar 2014, 20:49

Gut, das klappt also nun :banana: aber da gibts nun 'nen anderen Bug dafür, dadurch :D
Ich arbeite schon dran und deeeenke, es hinzubekommen. Aber:

Normalerweise ertönt ein "fail" Sound, wenn man mit gewähltem Item etwas anklickt, was halt nicht kombinierbar ist. Dies geschieht automatisch ("ungewollt", aber bisher okay) auch beim Coin-aufrufenden Rechtsklick. Jetzt ist es so, dass der Sound sich nervig 9898989 mal pro Milisekunde looped / sich demnach alles aufhängt :oster: ... wenn ich mit gewähltem Item einen "fail" Rechtsklick mache >.<
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81186Post Humus Humanus
06 Mar 2014, 20:54

Ok, habe es tatsächlich schon.

on (rightclick)
{
if_link (gegenstand)
{
command ()
break ()
}
popupcoin
}


Übrigens spannend:

popupcoin = direktes Aufpoppen der Coin.
popupcoin () = Charakter geht erst zum Objekt bzw. macht das on (click) Event.

... damit es ohne die () geht / es direkt aufpoppt, muss der Befehl popupcoin aber der Letzte im jeweiligen Skript sein.
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81187Post Zimond
06 Mar 2014, 23:59

ein Befehl ohne Klammern sollte gar nicht funktionieren. das kann definitiv zu Bugs führen. was meinst du mit fail sounds? Den Windows sound??!?
Image

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81188Post Humus Humanus
07 Mar 2014, 00:50

Nene, meinen eigenen "fail"-Sound, wenn man was macht, was nicht... machbar ist. :mrgreen:
Aber jetzt geht alles perfekt, das Soundproblem war auch keine Hürde, ich wollte es nur sicherheitshalber schon geposted haben.

Hmmm, bei mir macht popupcoin ohne () bisher gar keine Schwierigkeiten. Was könnten für Bugs auftreten?

EDIT:
Ok, wieder was gelernt :thumbup:
Hatte mich über die nicht-benötigten () gefreut, weil ich dachte, "nur so" kann man vermeiden, dass bei Aufruf der Coin sofort zum Objekt gegangen wird. Aber es geht auch - wie immer simpel - wenn man nur mal an break () hinter dem popup-Befehl denkt... :oster:
Aber Probleme machten die mangelnden () dennoch nie.
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Humus Humanus
An Adventure Creator
Posts: 372
Joined: 07 Jun 2006, 15:17
Location: Eschweiler (NRW)
Contact:

Re: Manuelles "un-linken" von Items??

Post: # 81189Post Humus Humanus
07 Mar 2014, 01:03

Humus Humanus wrote: Aber Probleme machten die mangelnden () dennoch nie.

Also, im Fall der Coin! Sonst natürlich schon. :wink:
An irgendetwas werde ich wohl gerade arbeiten, ja, doch. :D

Post Reply