CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Kisten knacken???

Nach unten 
5 verfasser
Gehe zu Seite : 1, 2  Weiter
AutorNachricht
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 5:25 pm

Also ich hab mir mal überlegt so ähnlich wie bei Mass Effect Kisten zu machen,die man "dechiffrieren" muss. Aber leider fällt mir kein Ordentlicher Ansatz ein wie man so etwas regeln könnte. Also wenn jemand nen schönen Ansatz hätte wärs nett wenn er den hier posten könnte Smile

Am besten durch eine Variable kömbination von Bewegungstasten.
Nach oben Nach unten
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 6:52 pm

Mhm also praktisch muss man die Kiste anfassen und eine gewisse Tastenkombination ausführen und dann kriegt man was aus der Kiste? Man könnte ja wenn der spieler die Kiste anfasst mit ControlUp/Down/Left/Right die jeweils zuletzt gedrückte Taste abfragen und in nem array speichern und dann abfragen wenn z.B die Kombination Hoch Runter sein soll und der spieler Runter drückt und die zuletzt gedrückte Taste war Hoch dann geht die Kiste auf
Nach oben Nach unten
http://www.gamer95.npage.de/
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 7:02 pm

Okay aber mit Arrays bin ich nicht so vertraut. Aber gibts ja sicher ein schönes tut hier irgendwo. Danke für den Tipp.

EDIT: Also ich weiß zwar jetzt wie man ein array erstellt aber ich hab keine Ahnung wie ich das mit den ControlUp und so weiter umsetzen kann...
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 7:43 pm

Ich kenne Mass Effect nicht, aber ich könnte mir vorstellen, dass du für eine sehr schöne Darstellung verschieden große Stellräder, Schalter oder so etwas wie die Modusanzeige vom Eke-HUD benutzen könntest, die bei der Codeabfrage großgezoomt werden und sich per Steuerungstasten verstellen lassen. Das wäre bestimmt sehr schwer zu scripten (ich könnte es nicht), aber wenn du weißt, wie, dürfte das die schönste Möglichkeit sein.
Soll es denn auch auf die Pausen dazwischen ankommen oder nur auf die Tasteneingaben selbst? Wenn letzteres der Fall ist, guck dir mal an, wie es beim Kombomenü aus dem Fantasypack geregelt ist.
Ich würde eine local CrateCode und eine truheninterne Funktion OpenCodedCrate() benutzen, bei der dann die Eingabe überprüft wird. Gamer hat schon einen sehr guten Vorschlag genennt, wie das gehen könnte. Je nach Richtigkeit der Eingabe wird dann z. B. ... ich nenne es mal... CodeConfirmed() oder CodeWrong() aufgerufen.
In der Local könntest du dann auch per Szenarioscript den Code einstellen und mit #include eine Zufallstruhe oder so etwas bauen, die ihren Code nach jeder Eingabe ändert.
Falls du doch noch lieber eine Zahleneingabe willst, kannst du auch ein Menü machen, wo dann deine Zahlen oder sonstigen Eingabemöglichkeiten drinstehen. Du kannst die Zahlensymbole vom Schnellzaubermenü oder eigene nehmen...
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 7:45 pm

Hmm also mit dem HUD...keine schlechte Idee,werd mal sehen in wie weit ich das hinbekommen könnte (sieht eher schlacht aus Very Happy) aber das mit dem Zaubersystem...daran hab ich gar nicht gedacht.
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 7:51 pm

Okay...also bei dem Combosystem steig ich echt nicht durch das sind zu viele Sachen wovon ich keine Ahnung habe!
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 8:15 pm

Du brauchst Arrays(nennen wir sie code und muster) und zwei locals (nennen wir sie i und e). Für jede der Controlfunktionen schreibst du sowas:
Code:

ControlXY()
{
 code[i] = 1; // für jede Controlfunktion eine andere Zahl also 1, 2, 3, 4
  i++; // i muss am Anfang Null sein und wird hochgezählt
  if(i == 4) CheckCode(); // Wenn i einen bestimmten Wert hat, wird überprüft ob der Code passt
}

Jetzt wird der Array bei den Tastendrücken gefüllt. Sobald er eine bestimmte Füllmenge hat, (kann man an i ablesen) wird überprüft ob alles richtig ist. Hier kommt der andere Array ins Spiel, den füllst du in der Initialize mit der gewünschten Combi.

Code:

func CheckCode()
{
 for(var c ; i > c, c++)
  {
    if(code[c] == muster[c]) e++; //Stimmen die nummern aus eingabe und muster überein wird e um 1 erhöht
  }
 
if(e == i) // Stimmt alles ist e gleich groß wie c, dann geht die Kiste auf
  OpenChest(); //Kiste öffnen funktion
  else
  Message("Falsch", this()); //Ansonsten gibts haue
}

So jetzt musst du nur noch code und i zurücksetzten können. Dazu kannst du eine Controlfunktion nehmen und/oder Grabbed.
Code:

func Grabbed()
{
 code = [];
  i = 0;
}


Ist ein wenig grob erklärt, aber müsste auch von den Zahlen her so passen, hab keine Zeit das nochmal durchzudenken, hab Fahrschule.
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 8:26 pm

Okay Danke danke danke Very Happy Werd ich gleich mal probieren!

Also irgendwie funktioniert das nicht...könnte jemand vllt nen ganzen code posten?
Nach oben Nach unten
Wipfhunter
Brigadegeneral
Brigadegeneral
Wipfhunter


Männlich Alter : 29
Ort : Am Ort, den niemand kennt.... Bielefeld
Anmeldedatum : 01.12.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 9:47 pm

Wie wäre es denn, wenn man das einfach mit ner lokalen variable macht, in etwa so:
func ControlDigDouble()
{
if(pKiste = 0) return(pKiste = 1);
return(0);
}

func ControlLeft()
{
if(pKiste = 1) return(pKiste = 2);
return(0);
}
...
func ControlDown()
{
if(pKiste = 2) return(Open());
return(0);
}
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 10:51 pm

@Wiphunter: Ist gewiss auch eine Möglichkeit, Vorteile wären das man nur eine Variable braucht, dafür aber wirds rasch unübersichtlich wenn du dann mal relativ lange Codes hat, außerdem hat mein Ansatz den Vorteil das man lediglich den Muster-Array einzustellen braucht und die Kiste funktioniert. So ist es auch möglich ein System einzubauen das dem Spieler erlaubt ingame eine Kombination einzustellen.

@Tundaner: Ich kanns nocht genauer Ausführen, bitte ein wenig Geduld, ich geh grad duschen und muss das Script auch erst schreiben.
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 11:08 pm

@Wipfhunter: An sich ist dein Ansatz hervorragend, aber leider ist er weder universalisier- und konfigurierbar noch für mehrstellige Codes geeignet. Ich glaube, praktischer wäre es so:
Code:

local CrateCombo; //die Tastenkombination der Kiste
CrateCombo=[1,3,2,5,5,4,6]; //Werfen, Links, Graben, Hoch, Hoch, Rechts, Runter (das ist nur ein Beispiel für eine Kombo und sollte nicht im Objektscript stehen)
local pKiste;
local c;

func ControlThrow() { CheckKey(1); }

func ControlDigDouble() { CheckKey(2); }

func ControlLeft() { CheckKey(3); }

func ControlRight() { CheckKey(4); }

func ControlUp() { CheckKey(5); }

func ControlDown() { CheckKey(6); }

func CheckKey(key)
{
if(pKiste!=key) {
PunishWrongEntry(); //was du machen willst, wenn die Eingabe falsch ist; denk dir die Funktion selber aus
}
  c++;
  pKiste=CrateCombo[c];
  if(c>=GetLength(CrateCombo)) {
  AllowAccess(); //da kommt die Funktion zum Freigeben der Kiste hin
  }
}

Eine unkonventionelle Lösung, ich weiß. Wenn sie nicht funktioniert: bitte jemand korrigieren. Ich habe das hier nur nebenbei gescriptet und nicht getestet, da ich keine Zeit hatte, extra ein Objekt zu definieren.
Ach ja, Tundanér. Du musst noch in der DefCore die "Grab" usw. -Funktionalitäten aktivieren. (außer GrabPutGet)
Angaben ohne Gewähr, Gewehr, Winchester, Partikelkanone usw. usf.


Zuletzt von Wipfmagus am Fr März 12, 2010 5:28 pm bearbeitet; insgesamt 2-mal bearbeitet
Nach oben Nach unten
Wipfhunter
Brigadegeneral
Brigadegeneral
Wipfhunter


Männlich Alter : 29
Ort : Am Ort, den niemand kennt.... Bielefeld
Anmeldedatum : 01.12.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 11:11 pm

# strict nich vergessen ;D

OmfG bin ich ein Klugscheißer xP
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 11:23 pm

Ja, du hast völlig Recht.
Ich habe ja auch #include CHST und so was weggelassen. Es ist kein kompletter Script :/ die Funktionen zum Freigeben und Bestrafen und die Beschreibungen der Tastenaktionen fehlen auch.
Funktioniert er denn wenigstens? Ich habe mir alle Mühe gegeben, ihn anpassbar und funktionsfähig zu machen. Wenn alles glatt gegangen ist, dann kannst du sogar Zufallskombinationen benutzen, indem du die lokale Variable änderst. Mit den Arrays kann dir ja jemand anders helfen... ich muss bis Sonntag meine Facharbeit schreiben pale


Zuletzt von Wipfmagus am Fr März 12, 2010 12:00 am bearbeitet; insgesamt 1-mal bearbeitet
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyDo März 11, 2010 11:37 pm

Also das Script ergibt nach mehrmaligem lesen Sinn, so wie ich das verstehe wird "c" jedes mal wenn k == pKiste, also die Eingabe richtig ist wird c um eins hochgezählt und sobald c so oft erhöht worden ist das es gleich lang ist wie der Array, wird die Kiste freigegeben. Also so wie ich das sehe würde die Kiste funktionieren, hätte aber den Nachteil das man sie mit etwas Zeit/Heiltränken whatever leicht knacken kann, da man jede Stelle solange versuchen kann bis mal halt nicht gepunisht wird und dann die entsprechende Taste notieren. Sonst scheint er funktionell. Zufallskombos lassen sich unter anderem auch bauen indem man den Array mit for und Random füllt.
Btw: Wenn du deine Facharbeit fertig bekommen willst solltest du weniger im CNDG rumhängen.
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyFr März 12, 2010 4:36 pm

Also ich bekomm immer Errors und die PunishWrongEntry wird immer aufgerufen,egal was ich drücke Neutral

Code:
ERROR: function definition: name already in use (local variable) (Newton.c4s\Crate.c4d\Script.c:6:11)
[14:33:58] ERROR: ',' or ')' expected, but found '{' (in CheckKey, Newton.c4s\Crate.c4d\Script.c:28:32)
[14:33:59]  61 Definitionen geladen.
[14:33:59] ERROR: unknown identifier: c (in CheckKey, Newton.c4s\Crate.c4d\Script.c:26:6)
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyFr März 12, 2010 5:27 pm

pKiste solltest du am Anfang auf CrateCombo[0] setzen. Sonst ist das ja pKiste ja null.
Du hast wohl eine Funktion die den selben Namen wie eine local trägt.
Ich denke du musst CheckKey(int key) schreiben.
"c" muss als local definiert werden.
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyFr März 12, 2010 5:30 pm

CheckKey funktionierte noch nicht, weil ich in der if-Bedingung eine Klammer vergessen hatte und c nicht definiert hatte. Sorry. Ich habe den Script editiert; ich hoffe, jetzt funktioniert es.
Vielen Dank für deine weiteren Anmerkungen, Extremclonk!


Zuletzt von Wipfmagus am Fr März 12, 2010 8:39 pm bearbeitet; insgesamt 1-mal bearbeitet
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptyFr März 12, 2010 8:25 pm

Okay danke,wenn ich morgen daheim bin probier ichs mal aus Very Happy
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptySa März 13, 2010 5:45 pm

Code:
[15:39:16] ERROR: function definition: name already in use (local variable)(Newton.c4s\Crate.c4d\Script.c:6:11)
[15:39:23] ERROR: Array access: array expected
[15:39:23]  by: CheckKey(1) (obj Crate #124) (Newton.c4s\Crate.c4d\Script.c:25)
[15:39:23]  by: ControlThrow(Branno 2 #102) (obj Crate #124) (Newton.c4s\Crate.c4d\Script.c:28)

Die Errors bekomme ich noch,obwohl ich mir den ersten nicht ganz erklären kann. Bei 6:11 steht nämlich eine eckige klammer O.o

Der zweite Error kommt wenn ich irgendeine Taste drücke und anschließend wird dann auch noch PunishWrongEntry aufgerufen...
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptySa März 13, 2010 6:50 pm

Hast du vorher den Array definiert?
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptySa März 13, 2010 7:27 pm

Neee Razz
Also dann liegts daran?
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptySa März 13, 2010 8:13 pm

Wahrscheinlich. Kein Script kann auf nicht definierte und nicht zugewiesene Variablen zugreifen Razz... Woher der "function definition: name already in use" -Kram kommt, weiß ich nicht... aber vielleicht klappt es besser, wenn du "local CrateCombo" durch "local array CrateCombo" ersetzt, damit er den Datentyp weiß.
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptySa März 13, 2010 8:26 pm

Also das mit Array Crate Combo geth nicht, dann sagt das ", or ; expected but ofund indentifier"... und mit dem erstellen von dem array kom ich uch nicht so klar.
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptySa März 13, 2010 8:49 pm

Ich bin mir nicht sicher, ob du die Einträge im Array mit "," oder ";" trennen musst - probier mal beides aus.
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? EmptySa März 13, 2010 8:53 pm

Das mit dem , und ; bezieht sich ja darauf,dass es irgendwie nicht passt wenn ich "local array Crateombo"
Nach oben Nach unten
Gesponserte Inhalte





Kisten knacken??? Empty
BeitragThema: Re: Kisten knacken???   Kisten knacken??? Empty

Nach oben Nach unten
 
Kisten knacken???
Nach oben 
Seite 1 von 2Gehe zu Seite : 1, 2  Weiter

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Anfragen-
Gehe zu: