Ob die Methode mit dem Freezen klug ist, kommt nun darauf an wofür du dieses Interior benutzen möchtest.
Ich denke nicht das jemand bei jedem betreten eines Interiors für ne Zeit lang gefreezed sein möchte.
Beiträge von SiOX
-
-
Du könntest den Code optimieren, darauf wurdest du ja schon von Goldkiller hingewiesen.
-
Schön erklärt.
-
Bei dem oben genannten Code muss er aber nicht schießen sondern nur Zielen. Zudem müsstest du ein Loop für alle zerstörbaren Objecte durchlaufen lassen und diese auch Definieren.
-
Benutze doch bitte die BBCodes damit man den Code besser erkennen kann, danke !
-
Welcome
-
Hab das alles ziemlich ähnlich, gute Arbeit.
-
Kein Problem, gerne.
Schlaf gut. -
Den BMW auf jeden Fall Umlackieren.
-
Da musst du dann einen Loop machen.
for(new i=0;i<MAX_HOUSES;i++) // und dann kannst du auch HausInfo[i][...] nutzen.
-
Unter OnGameModeInit einfach LoadHouses() eintragen.
Das Beispiel kommt gleich über #Edit
Edit:
new c; // für die HausID, für die du keine Variable hast. ( Unwichtig, der Integer wird nicht weiter genutzt. )
sscanf(query,"p<|>is[24]iffffffi",
c,
HausInfo[i][hBesitzer],
HausInfo[i][hKaufpreis],
HausInfo[i][hIconX],
HausInfo[i][hIconY],
HausInfo[i][hIconZ],
HausInfo[i][hSpawnX],
HausInfo[i][hSpawnY],
HausInfo[i][hSpawnZ],
HausInfo[i][hInteriorID]); -
Die von Sammy Deluxe gefällt mir auch. Gute Arbeit.
-
Die Engine genauer unter die Lupe nehmen.
-
Nein, dass musst du schon noch selber unter OnGameModeInit eintragen. Für die SSCANF Funktion benötigst du das SSCANF-Plugin.
Diese Funktion unterteilt deinen String in die einzelnen Teile und weißt sie direkt deinen Variablen zu. Poste deine Variablen und ich gebe dir noch ein Beispiel.
Edit: Hier das Plugin
-
Ich habe dir weiter oben ein Stück Code gepostet, guck dir das mal an
-
OK, hier ein Beispiel für eine Lösung die ich dir kurz geschrieben habe.
stock LoadHouses()
{
new query[512],count,get[32];
format(query,sizeof(query),"SELECT MAX(`HAUSNUMMERIERUNG`) FROM `TABELLENNAME`"); // eingene Informationen -> wir lassen die maximale hausnummer für unseren loop auslesen
mysql_query(query);
mysql_store_result();
mysql_fetch_row(get);
mysql_free_result();
count = strval(get);
if(count == 0) return 1;
for(new i=1;i<(count+1);i++) // loop für alle hausid's zum laden
{
format(query,sizeof(query),"SELECT HausID,Besitzer,Preis,Variablenwieauchimmer FROM `TABELLENNAME` WHERE `HAUSNUMMERIERUNG`='%d'",i); // logischerweiese eigene Informationen
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row(query))
{
sscanf(query,"p<|>iis[32]",DEINEVARIABLEN);
// Dein oben geladener String wird wie folgt übergeben INFO|INFO|INFO, durch diese Zeile lassen wir sscanf den String an jedem | splitten, trag also (wie bei format auch ) d bzw i für integer und s für strings ein und lass sscanf den rest machen
}
}
mysql_free_result();
return 1;
}Ich hoffe du kannst meinen Gedankengang im Groben nachvollziehen. Copy&Paste wird dir wenig bringen, somit musst du dich jetzt wohl mit dem Code auseinander setzen.
Ich habe ihn auch schon getestet und bei mir verlief das ganze Reibungslos. -
Am besten schreibst du eine Funktion, in welcher du die Häuser laden lässt. Diese rufst du dann beim Start des Servers auf.
Wie du Daten aus deiner Datenbank laden lässt, wird unter anderem hier erklärt.
Ist nicht die beste Lösung aber sollte für den Anfang reichen. -
Dafür ist das Forum doch da
-
Aber PVar hat einen riesigen Vorteil...
Es kann Global benutzt werden, also wenn du z.B. wie ich die Systeme in Filterscripts schreibts und auch testest..Und genau deshalb können unerfahrene Developer viel Mist anstellen.
Memory-Leaks und Memory-Fehler können auftreten. Diese Memory-Bugs können dir dein Script durch das Compilen verbuggen. ( Durch Überschneidungen etc. ) -
format(query, sizeof(query),"INSERT INTO `Houses` (`Kaufpreis`) VALUES ( '%d' )",kaufpreis);
Die Query war falsch verfasst. Nun sollte es Funktionieren.