|
Help!
by VoroneTZ. 10/14/25 05:04
|
|
|
|
|
|
|
|
2 registered members (AndrewAMD, 1 invisible),
7,036
guests, and 2
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
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
Senior Expert
|
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: Rondidon]
#369245
05/02/11 21:59
05/02/11 21:59
|
Joined: Feb 2010
Posts: 483 in deinem Kopf
Otter
OP
Senior Member
|
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!
|
|
|
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
OP
Senior Member
|
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. mfgOTTER
Be my UBB-Buddy, without any reason!
|
|
|
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
User
|
User
Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
|
steht alles im manual zum schreiben
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
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!
|
|
|
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
Expert
|
Expert
Joined: Apr 2007
Posts: 3,751
Canada
|
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:
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:
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
Serious User
|
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  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
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|