|
1 registered members (Grant),
999
guests, and 2
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Inventar Problem
#150355
08/26/07 18:46
08/26/07 18:46
|
Joined: Jul 2007
Posts: 288 Germany, NRW
Martek
OP
Member
|
OP
Member
Joined: Jul 2007
Posts: 288
Germany, NRW
|
Hi @ all,
ich bin im moment dabei ein Inventar zu scripten. Und dafür habe ich einen Button, welcher ein item wegwirft. Ich habe das so geregelt wenn ich auf den button drücke, geht die var inventar_use auf 3 und wenn ich dann auf den panel klicke, akktifiert sich die funktion item_use. Diese funktion soll jetzt das item, auf welches ich geklickt habe wegwerfen. Mit dem items, das habe ich so geregelt: Es gibt die var slot_1. Wenn slot_1 = 0 ist, dann ist der speicherplatzt leer. Wenn der wert höher als 0 ist ist der platz belegt. Bei ner 1 z.b. mit ner waffe, bei 2 mit ner rüstung...
Lange rede, kurzer Sinn. Mein Problem besteht darin, das ich ermitteln muss auf welchen panel ich geklickt habe, damit der die entsprechende var auf 0 setzt.
Hoffe ihr kommt mit der erklärung klar.
Mfg, Pingulord
3D Gamestudio A7 Extra
|
|
|
Re: Inventar Problem
[Re: Martek]
#150356
08/26/07 19:05
08/26/07 19:05
|
Joined: Jul 2002
Posts: 4,436 Germany, Luebeck
Xarthor
Expert
|
Expert
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
|
Einfache Lösung: Setze die einzelnen "slot" bitmaps als button elemente auf ein panel (falls du es nicht schon hast). Jeder button der eine funktion aufruft kann auch gleichzeitig seine nummer übergeben. (Handbuch: button_number) Das Inventar selbst, also wo gespeichert wird ob ein "slot" belegt ist oder nicht, würde ich als var array aufbauen und die übermittelte button number als index für den array. Wobei der platz "0" im array logischer weise immer frei bleibt, es sei denn du subtrahierst erst 1 von der button number. Beispiel: Code:
var mein_inventar[16]; //16 speicherplätze var inv_edit_mode; //zeigt an ob das nächste element gelöscht werden soll etc.
define none, 0; define add,1; define delete,2;
panel inventar_pan { ... }
//die folgende funktion wird vom button aufgerufen function inv_slot_click(button_number,panel) { if(inv_edit_mode == delete) { mein_inventar[button_number-1] = 0; inv_edit_mode = none; } ... }
|
|
|
Re: Inventar Problem
[Re: Xarthor]
#150357
08/26/07 19:22
08/26/07 19:22
|
Joined: Jul 2007
Posts: 288 Germany, NRW
Martek
OP
Member
|
OP
Member
Joined: Jul 2007
Posts: 288
Germany, NRW
|
Das is ne gute Idee. Nur ich hatte das erst mit panel.on_click gemacht, schreibe es jetzt aber eben um. Hab ja nur 16 slots:)
Nur ein problemm. Woher soll ich die Button number wissen???
Mfg, Pingulord
3D Gamestudio A7 Extra
|
|
|
Re: Inventar Problem
[Re: Artus]
#150359
08/26/07 19:34
08/26/07 19:34
|
Joined: Jul 2002
Posts: 4,436 Germany, Luebeck
Xarthor
Expert
|
Expert
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
|
Die button number wird chronologisch vergeben. Das heißt das erste button element eines panels hat die nummer 1, das zweite folglich 2 etc.
EDIT: Ist zwar off-topic, aber Pingulord, woher kommst du bzw. wo wohnst du zur zeit? (geht auch per PM)
Last edited by Xarthor; 08/26/07 19:35.
|
|
|
Re: Inventar Problem
[Re: Xarthor]
#150360
08/27/07 11:59
08/27/07 11:59
|
Joined: Jul 2007
Posts: 288 Germany, NRW
Martek
OP
Member
|
OP
Member
Joined: Jul 2007
Posts: 288
Germany, NRW
|
Also, ich check jetzt garnichts mehr: Das den Parramentern check ich net, weil ich die noch nie benutzt habe...:)
Und das mit den Chronologischen nummer auch net. Kann man die nummern irgendwo nachgucken??? Oder muss ich einfach wissen, als wie vieltes ich den button erstellt habe??? Wäre dann slot4 button 4??? Weil ja in jedem slot 1 button is???
Mfg, Pingulord
3D Gamestudio A7 Extra
|
|
|
Re: Inventar Problem
[Re: Martek]
#150361
08/27/07 12:13
08/27/07 12:13
|
Joined: Jul 2002
Posts: 4,436 Germany, Luebeck
Xarthor
Expert
|
Expert
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
|
Die parameter in der function die der button ausführt, müsssen, laut manual drin stehen, damit die funktion nachher weiß welcher button geklickt wurde.
Ja du musst wissen ob der button mit der nummer x nun ein slot button ist und wenn ja welcher. Das lässt sich aber über ein paar leichte design "regeln" machen. Zum einen würde ich das slot panel als reines slot panel nutzen, d.h. dort sollten sich keine funktions buttons befinden, wobei das eig. auch kein problem sein sollte. Aber für den anfang wäre es sinnvoll. Nun weißt du ja das der erste button der in einem panel definiert wird die button number 1 hat, womit du ja relativ einfach so ein system progammieren kannst. Alternativ kannst du auch eine etwas komplexere lösung für deinen ansätz suchen.
Merke: Ein System wie ein Inventar sollte gut durch dacht sein und nach möglichkeit erst programmiert werden wenn man nahe zu alle möglichkeiten der sprache kennt, da z.b. das "button number feature" ein inventar-system, meiner ansicht nach, erheblich leichter macht.
|
|
|
Re: Inventar Problem
[Re: Xarthor]
#150362
08/27/07 17:45
08/27/07 17:45
|
Joined: Jul 2007
Posts: 288 Germany, NRW
Martek
OP
Member
|
OP
Member
Joined: Jul 2007
Posts: 288
Germany, NRW
|
So, ich habe jetzt in jedem slot einen button. Und wenn ich jetzt slot6 löschen will, wie soll ich dann mit der Button number erkennen, auf welchen slot ich geklicht habe???
Pingulord, der nix checker...
3D Gamestudio A7 Extra
|
|
|
Re: Inventar Problem
[Re: Xarthor]
#150364
08/28/07 12:32
08/28/07 12:32
|
Joined: Jul 2007
Posts: 288 Germany, NRW
Martek
OP
Member
|
OP
Member
Joined: Jul 2007
Posts: 288
Germany, NRW
|
achso...aber trozdem für jeden slot einen panel, weil ich will da ja auch, das da die bilder der Items sind, und da drüber dann den button panel. Ok. Und in einem slot sind die dann einfach nach der reihenfolge, wie die darin vorkommen.  Jetzt hab ichs, danke Pingulord
3D Gamestudio A7 Extra
|
|
|
|