Gamestudio Links
Zorro Links
Newest Posts
What are you working on?
by rayp. 10/15/25 20:44
Help!
by VoroneTZ. 10/14/25 05:04
Zorro 2.70
by jcl. 10/13/25 09:01
ZorroGPT
by TipmyPip. 10/12/25 13:58
Sam Foster Sound | Experienced Game Composer for Hire
by titanicpiano14. 10/11/25 18:45
Reality Check results on my strategy
by dBc. 10/11/25 06:15
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
2 registered members (AndrewAMD, 1 invisible), 7,036 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
joenxxx, Jota, krishna, DrissB, James168
19170 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 3 of 4 1 2 3 4
Re: HALT! Position gesperrt [Re: Otter] #369100
05/01/11 16:15
05/01/11 16:15
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
du kannst einfach auf alle elemente in deiner Liste zugreifen:
obj_list1[i]
i = 0: Erstes Element
i = 14: 15tes Element


Visit my site: www.masterq32.de
Re: HALT! Position gesperrt [Re: Otter] #369101
05/01/11 16:23
05/01/11 16:23
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Ich weise jedem Objekt bei seiner Erstellung eine ID zu, die in seinem ersten Skill gespeichert wird. In Deinem Fall würden Blöcke mit den gleichen Eigenschaften gleiche IDs bekommen.

Dann gehe ich über die Funktion ent_next alle Entities durch, wenn ich bei mehreren etwas entsprechend ihrer Identität ändern will.

z.B. Metallblock:

#define ID skill1
#define Metallblock 4

Also wird das Beispiel aus dem Handbuch um die Abfrage des Skills erweitert:

function hide_all_ents()
{
// repeat for all entities
for(you = ent_next(NULL); you; you = ent_next(you))
if(you.ID == Metallblock)set(you,INVISIBLE); // make entity invisible
}
}

Last edited by Pappenheimer; 05/01/11 16:24.
Re: HALT! Position gesperrt [Re: Otter] #369102
05/01/11 16:50
05/01/11 16:50
Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Rondidon Offline
Expert
Rondidon  Offline
Expert

Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Originally Posted By: Otter
WOW, Rondidon!
Diese poetische seite von dir kenn ich ja noch garnicht. Entzückend! laugh

So bin ich halt laugh

Re: HALT! Position gesperrt [Re: Rondidon] #369245
05/02/11 21:59
05/02/11 21:59
Joined: Feb 2010
Posts: 483
in deinem Kopf
Otter Offline OP
Senior Member
Otter  Offline OP
Senior Member

Joined: Feb 2010
Posts: 483
in deinem Kopf
@Pappenheimer: daran hab ich auch schon gedacht, hatte aber gehoft das es etwas in der richtung gibt:
set(obj_list1[all], INVISIBLE);
oder
set(obj_list1[1-15], INVISIBLE);

aber es soll halt nicht sein....

danke euch
Otter


Be my UBB-Buddy, without any reason!
Re: HALT! Position gesperrt [Re: Otter] #369249
05/02/11 22:37
05/02/11 22:37
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Ich finde den Weg halt viel intuitiver, weil es auf "Strukturen" zurückgreift, die Lite-C halt von vornherein bietet.
Ich finde es klein, fein und übersichtlich! wink

Editor mit langzeitgedächtnis [Re: Pappenheimer] #371567
05/22/11 16:45
05/22/11 16:45
Joined: Feb 2010
Posts: 483
in deinem Kopf
Otter Offline OP
Senior Member
Otter  Offline OP
Senior Member

Joined: Feb 2010
Posts: 483
in deinem Kopf
SO! Da ich meinen editor jetzt einigermassen "vorzeigbar" gemacht hab, stellt sich mir jetzt natürlich die MASTER FRAGE:
Wie kann ich die position und form jedes bausteins in einer text datei oder -was weis ich- abspeichern?
So, das man sie jederzeit wieder laden kann.


mfg
OTTER


Be my UBB-Buddy, without any reason!
Re: Editor mit langzeitgedächtnis [Re: Otter] #371568
05/22/11 16:52
05/22/11 16:52
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Diese "Echt3D_Herbst_2009_11_05.zip", die man in meineer Signatur herunterladen kann, ist ein Kombination aus Spiel und Leveleditor, in der genau so ein System vorhanden ist.
Keine Ahnung wie leicht oder schwer man als Außenstehender durchsteigt.

Re: HALT! Position gesperrt [Re: Otter] #371569
05/22/11 16:57
05/22/11 16:57
Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
xxxxxxx Offline
User
xxxxxxx  Offline
User

Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
steht alles im manual
zum schreiben
Code:
var filehandle = file_open_write("myfile.txt");
file_var_write(filehandle,123456.789);
file_var_write(filehandle,sqrt(2));
file_close(filehandle); // the file now contains "123456.789 1.414 "


zum lesen
Code:
var filehandle = file_open_read("myfile.txt"); // file contains: "123456.789 1.414"
var temp = file_var_read(filehandle); // now temp == 123456.789
temp = file_var_read(filehandle); // now temp == 1.414
file_close(filehandle);

dann gehst du beim speichern einfach dein arry durch und speicherst alle benötigten eigenschaften als var in deine datei, die du dann mit lauter if/switch abfragen usw. beim laden in blöcke umwandelst...
wenn du das ganze jetzt nicht noch aus welchen gründen auch immer irgendwie verschlüsseln willst sollte das der ganze trick sein
xxxxxxx



Last edited by xxxxxxx; 05/22/11 16:59.

Es ist immer wieder erstaunlich, dass Leute die riesen Scripte schreiben die einfachsten sachen nicht können zb. mich mit SIEBEN x zu schreiben! tongue
Re: Editor mit langzeitgedächtnis [Re: Otter] #371570
05/22/11 17:05
05/22/11 17:05
Joined: Apr 2007
Posts: 3,751
Canada
WretchedSid Offline
Expert
WretchedSid  Offline
Expert

Joined: Apr 2007
Posts: 3,751
Canada
Originally Posted By: Otter

Wie kann ich die position und form jedes bausteins in einer text datei oder -was weis ich- abspeichern?

Mehrere Möglichkeiten. Es gibt eine langsame simple, und eine komplexere aber dafür schnelle Variante.
Die simple sieht so aus das du einfach alle Zahlen (ich nehme einfach mal an das jeder Block durch eine Zahl repräsentiert werden kann) nimmst und in Strings umwandelst und dann in ne Textdatei schreibst. Laden ist dann genau andersrum.
Das is lame, suckt und deswegen geh ich nicht weiter darauf ein.
Edit: Außerdem haben die über mir schon erklärt warum die Methode scheiße ist, sogar mit Codebeispielen.

Mehr Komplex ist das ganze als binär zu speichern, sprich, du wandelst deine Zahlen nicht mehr in Strings um sondern schreibst direkt alle bytes der Zahlen in die Textdatei. Das produziert deutlich kleinere Dateien, und ist viel viel schneller zu lesen da halt keine Umwandlung stattfindet.
Als erstes musst du stdio.h includen (mit den eckigen Klammern). Dann baust du dir sowas:
Code:
var levelSizeWidth, levelSizeHeight; // Breite und Höhe des Levels

void writeToFile(STRING *name)
{
    FILE *file = fopen(_chr(name), "wb"); // Öffne die Datei zum schreiben
    
    // Als erstes wird die Ausdehnung des Levels gespeichert:
    fwrite(&levelSizeWidth, 4, 1, file); // Schreibe den Wert von levelSizeWidth in die Datei
    fwrite(&levelSizeHeight, 4, 1, file);


    // Und jetzt jedes einzelne Blöcklein
    var x, y;
    for(x=0; x<levelSizeWidth; x++)
    {
        for(y=0; y<levelSizeWidth; y++)
        {
             fwrite(&block[x][y], 4, 1, file);
        }
    }

    fclose(file); // Die Datei wieder freigeben
}



Und fertig. Lesen geht dann ähnlich:

Code:
var levelSizeWidth, levelSizeHeight; // Breite und Höhe des Levels

void readFromFile(STRING *name)
{
    FILE *file = fopen(_chr(name), "rb"); // Öffne die Datei, diesmal zum lesen
    
    // Jetzt holen wir uns erstmal die Ausdehnung wieder:
    fread(&levelSizeWidth, 4, 1, file); // Dann wolln wir doch mal lesen...
    fread(&levelSizeHeight, 4, 1, file);


    // Und jetzt können wir locker flockig jeden Block auslesen
    var x, y;
    for(x=0; x<levelSizeWidth; x++)
    {
        for(y=0; y<levelSizeWidth; y++)
        {
             fread(&block[x][y], 4, 1, file);
        }
    }

    fclose(file); // Die Datei wieder freigeben
}



Das Dateiformat sieht dann so aus das zuerst die Ausdehnung des Levels gespeichert wird und danach der Wert jedes Blocks, dh. man muss nicht extra schreiben in welcher Zeile und Spalte der Block ist sondern kann ganz locker anfangen zu lesen und zu schreiben wenn die Ausdehnung bekannt ist.


Last edited by JustSid; 05/22/11 17:06.

Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com
Re: Editor mit langzeitgedächtnis [Re: WretchedSid] #371647
05/23/11 17:51
05/23/11 17:51
Joined: Dec 2008
Posts: 1,218
Germany
Rackscha Offline
Serious User
Rackscha  Offline
Serious User

Joined: Dec 2008
Posts: 1,218
Germany
Ich würde ebenfalls Sids weg gehen.
Und würde außerdem als allererstes eine zahl abspeichern, die als Versionsnummer für den loader/saver steht.

Den sobald du was am lade/speicher system änderst sind alte dateien natürlich komplett inkompatibel. Durch die versionsnummer am anfang könnte man den Fehler frühzeitig abfangen und eventuel sogar auf eine alte lade funktion zurückgreifen. Nicht das du dich später wunderst warum beim laden aufeinmal nurnoch wurst rauskommst, nachdem du was am system geändert hast und ne savedatei von vor x tagen lädst wink

MFG
Rackscha


MY Website with news of my projects:
(for example my current
Muliplayer Bomberman,
GenesisPrecompiler for LiteC
and TileMaster, an easy to use Tile editor)
Sparetime-Development

Page 3 of 4 1 2 3 4

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1