Kurze Frage; weiß jemand wie ich das hinbekomme in Microsoft Visual Studio Code zu compilen? Bin zu blöd dafür..
Beiträge von Kaliber
-
-
Ahh du nutzt also n neuen C-Standard.
Dann musst du natürlich alle Parameter für scanf_s nutzen.
Schreib es mal:
scanf_s("%s", &pers[i].vorname, 50);
Musst quasi immer den Buffer angeben

-
Wieso scanf_s?
Machs doch einfach:
C
Alles anzeigen#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define Personen 100 //void AllePersonen(Person *pers, int anzahl); struct geburtstag { int tag; int monat; int jahr; }; typedef struct geburtstag Geburtstag; struct person { char vorname[50]; char nachname[50]; int vorhanden; Geburtstag geb; }; typedef struct person Person; void PersonEinlesen(Person pers[], int anzahl); void main(void) { Person p[Personen]; int menu = 0; do { printf("1. Person eingeben\n"); printf("2. Person auslesen\n"); printf("3. Alle Personen\n"); printf("4. Person entfernen\n"); printf("5. Menue verlassen\n"); scanf("%i", &menu); switch (menu) { case 1: { PersonEinlesen(p, Personen); break; } } } while (menu != 5); } void PersonEinlesen(Person pers[],int anzahl) { int i; for (i = 0; i < anzahl; i++) { if(pers[i].vorhanden == 0) { printf("Geben Sie einen Vornamen an: "); scanf("%s", &pers[i].vorname); printf("Vorname: %s\n",pers[i].vorname); //Nur als Test! printf("Geben Sie einen Nachnamen an: "); scanf("%s", &pers[i].vorname); printf("Geben Sie Ihr Geburtsdatum an: "); scanf("%i.%i.%i", &pers[i].geb.tag, &pers[i].geb.monat, &pers[i].geb.jahr); break; } } }Funzt einwandfrrei :o
-
Okay, ist eine eigene Color Include.
Durchsuche halt mal all deine Includes nach CreateVehicle.
Vielleicht findest du ja irgendwo was, wo die Funktion gehookt wird.
-
#include <colors>
Naaa, was haben wir denn hier?

Eventuell ist das die Color Include von der ich gesprochen habe hahaha xD
-
Wie soll das include den heißen?
Liste mal all deine Includes auf

-
@Dr. Frauenarzt einige Includes verändern ihre Parameter.
Absolut korrekt

Sehr gut geschlussfolgert mein junger Padawan!
Und zwar rate ich mal ins Blaue und sage du verwendest die color Include von Ryder

Dort wird die Funktion nämlich gehookt und diese musst du anpassen

Wie kann ich, nachdem ich ein Spieler teleportiere ihn und sein Fahrzeug freezen
Einfach den Fahrer Freezen

Bei dem Code unten verwendest du immer i, obwohl du eigentlich d verwenden musst, da das die Variable in der Schleife ist

Musst dich schon auf eins festlegen

-
for(new i=1, j=MAX_HOUSES; i<=j; i++)
Nur mal kurz was fundamentales, was mich daran stört.
Von der Geschwindigkeit her, wäre es hier besser direkt MAX_HOUSES in der Bedingung zu verwenden, da das eine Konstante ist.
Du packt es in eine Variable, das macht es langsamer. Das würde nur Sinn machen, wenn MAX_HOUSES eine Funktion wäre xD
Und davon abgesehen, solltest du bei 0 starten und nicht bei 1

Zudem musst du die ID auch zurückgeben und nicht nur 1

Und wichtig ist auch, dass es kleiner als MAX_HOUSES ist und nicht kleiner gleich

Und die 0 wäre kein invalider Index hahaha xD
Also die ganze Funktion mal so schreiben:
Cstock getFreeHouseID() { for(new i; i<MAX_HOUSES; i++) { if(!hInfo[i][hID]) return i; } return -1; }Cstock createHouse(playerid, Float:X, Float:Y, Float:Z) { new query[256],fid=getFreeHouseID(); if(fid == -1) return 0; //Hier wären alle Häuser voll! mysql_format(handle, query, sizeof(query), "INSERT INTO houses (h_id, h_x, h_y, h_z) VALUES ('%d','%f', '%f', '%f')", fid, X, Y, Z); mysql_pquery(handle, query, "OnHouseCreated", "ddfff", playerid, fid, X, Y, Z); return 1; }
Die Beschreibung wird nicht gesetzt, da du bei dem einen insID und bei dem Anderen houseid verwendest...Sind diese Werte identisch? Was genau machst du da xD
-
Ist es möglich zu prüfen ob die params bei OCMD null sind? Oder ist das ganze nichtmal nötig?
Kommt darauf an, was du vor hast

sscanf prüft das Ganze schon automatisch

Ansonsten kannst du es aber auch manuell prüfen mit:
if(IsNull(params))
{
//Hier ist die Eingabe leer
}
Falls nicht vorhanden:
#define IsNull(%0) (%0[0] == '\0' || %0[0] == '\1') -
Mach das Query mal größer und schreib das Statement so:
"INSERT INTO `garage` (`X`, `Y`, `Z`, `ID`, `Kaufpreis`, `InteriorType`, `existiert`, `Lock`) VALUES"
Und das andere so:
"%s ('%f','%f','%f',%d,%d,%d,%d,%d)"
-
Dein Code ist: %d
Musst %s verwenden (und mit val)

oder einfach direkt %04d ohne val.
-
Einfach so:
new tmp[PCarEnum];
PCar[playerid][slot] = tmp; //Slot = eben der slot :) -
Ist es möglich, alle Werte auf 0 zu setzten oder irgendwas invalides wie -1 ?
Leider geht das nicht, das musst du manuell ein nacheinander machen.
Actually, gibt es da einen Trick.
Natürlich kann man es mit einer Schleife machen oooder mit einer temporären Variable:
new tmp[MAX_PCARS][PCarEnum]; //Temporäre Variable setzt alle Werte auf 0
PCar[playerid] = tmp; //Resettet alle Variablen für den SpielerIst sogar schneller, als über eine Schleife

-
Aber der Server läuft ja noch?!
-
Weil du das WHERE vergessen hast..
Musst doch angeben, für wen es gesetzt werden soll

-
inwiefern falscher Pfard wen ich die console öffne schließt die sich wegen den scriptfile.
...dann lass doch mal crashdetect laufen...
was wird denn gesagt?Falscher Pfad im Sinne von vllt versucht er auf eine Datei zuzugreifen mit fread die nicht existiert, das verursacht einen Server-Crash.
-
was kann ich tun?
Das vorherige listitem in einem PVar ([wiki]SetPVarInt[/wiki]) zwischenspeichern.
auf die scriptfiles vehicles nicht zugreifen
Entweder falscher Pfad, oder keine Rechte

-
Naja, steht denn noch etwas über der Zeile?

Wie ist denn IsPlayerPause definiert?

-
was nehme ich da am besten zur heutigen Zeit ?
Meiner Meinung nach PDO

Einfach mal Tutorials dir anschauen

-
....wie sieht denn die Abfrage aus?
Was passiert denn?!