Es geht, danke!!
Ich habe ja AUTO_INCREMENT auf die Virtuellen Welten gesetzt in der Datenbank und wenn ich jetzt eine Garage erstelle, speicher ich ja die Zeile erstmal in die Datenbank.
Wie hole ich mir dann diesen Wert aus der Datenbank ohne einen großartigen Aufruf zu machen?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Wieder mal eine Frage meinerseits:
Ist es möglich zu prüfen ob die params bei OCMD null sind? Oder ist das ganze nichtmal nötig?Zu BrightLeaN
Wie hole ich mir dann diesen Wert aus der Datenbank ohne einen großartigen Aufruf zu machen?
Bin mir nicht sicher, du könntest jedoch folgendes mal versuchen:
Bei der Query ein Callback auslösen z.B.
und dann...
Codeforward OnGarageCreated(); public OnGarageCreated() { new insID; insID = cache_insert_id(); cache_get_value_name_int(insID, "WERT", variableZumSpeichern); return 1; }und in "variableZumSpeichern" würdest du dann den Wert aus dem Cache gespeichert haben.
-
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') -
Nochmal ein Problem:
Die folgende getFreeHouseID() Funktion sollte eigtl. eine freie(unbesetzte) ID für das zu erstellende Haus in createHouse zurückgeben.
Allerdings wird immer die 1 zurückgegeben und am Ende haben alle Häuser die selbe ID.
Außerdem wird die Beschreibung aus der Enumvariable nicht an folgender Stelle eingefügt.
In der Tabelle steht auch bei jedem erstellten Haus die 1.
//e: Kann man den getFreeHouseID stock irgendwie anders schreiben ?getFreeHouseID:
Codestock getFreeHouseID() { for(new i=1, j=MAX_HOUSES; i<=j; i++) { if(hInfo[i][hID] == 0) return 1; } return 0; }createHouse:
Codestock createHouse(playerid, Float:X, Float:Y, Float:Z) { new query[256]; new fid=getFreeHouseID(); 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; }
hier wird die Beschreibung nicht gesetzt:Codeformat(hInfo[insID][hDesc], MAX_HOUSE_DESC, "Dieses Haus steht zum Verkauf."); //HIER WIRD DIE BESCHREIBUNG DEFINIERT //HIER EINGESETZT: format(string1, sizeof(string1), "[Haus Nummer: %d]\nBesitzer: %s\nBeschreibung: %s\nPreis: %d\n Miete: %d$", hInfo[houseid][hID], owner, hInfo[houseid][hDesc], hInfo[houseid][hPrice], hInfo[houseid][hRent]);BrainAFK
-
-
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
-
Alles anzeigen
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
oof oof oof oooof...
Was meinst du wie lange ich mir die schei*e angeschaut und das nicht gemerkt hab xD ?
Die for Schleife hab ich selbst schon bemerkt.Zu dem Rest braucht man glaubig auch nicht viel mehr sagen...
ka warum ich manchmal so enorm brainafk bin.
Danke für eure Hilfe ^^.
-
Ich habe hier was gestaltet, ich frage hier ab, ob ein Garagen-Platz belegt ist, wenn nicht kann das Fahrzeug in die Garage.
Allerdings kann ich 7 Fahrzeuge parken in ginttype 1 und 2.Irgendwas mach ich falsch, aber was?
er printet mir immer 0 bei den gVehicleID & (-2)Dazu habe ich ein Frage:
Wie kann ich, nachdem ich ein Spieler teleportiere ihn und sein Fahrzeug freezen, damit die Objekte laden können, manchmal falle ich aus der Welt...
C
Alles anzeigenif(IsPlayerInAnyVehicle(playerid)) { new vehicleid = GetPlayerVehicleID(playerid); new model = GetVehicleModel(playerid); for(new d = 0; d < sizeof(PCar[]); d++) { if(vehicleid == PCar[playerid][d][P_VID]) { printf("gVehicleID: %d gVehicleID2: %d",gInfo[i][gVehicleID],gInfo[i][gVehicleID2]); if(gInfo[i][ginttype] == 1) { if(gInfo[i][gVehicleID] > 0) return 1; if(gInfo[i][gVehicleID] == 0) { gInfo[i][gVehicleID] = model; SetVehiclePos(vehicleid, GarageType[gInfo[i][ginttype]][VehGarageX], GarageType[gInfo[i][ginttype]][VehGarageY], GarageType[gInfo[i][ginttype]][VehGarageZ]); } } else if(gInfo[i][ginttype] == 2) { if(gInfo[i][gVehicleID] > 0 && gInfo[i][gVehicleID2] > 0) return 1; if(gInfo[i][gVehicleID] == 0) { gInfo[i][gVehicleID] = model; SetVehiclePos(vehicleid, GarageType[gInfo[i][ginttype]][VehGarageX], GarageType[gInfo[i][ginttype]][VehGarageY], GarageType[gInfo[i][ginttype]][VehGarageZ]); SetVehicleZAngle(vehicleid,GarageType[gInfo[i][ginttype]][VehGarageR]); } else if(gInfo[i][gVehicleID2] == 0) { gInfo[i][gVehicleID2] = model; SetVehiclePos(vehicleid, GarageType[gInfo[i][ginttype]][VehGarageX2], GarageType[gInfo[i][ginttype]][VehGarageY2], GarageType[gInfo[i][ginttype]][VehGarageZ2]); SetVehicleZAngle(vehicleid,GarageType[gInfo[i][ginttype]][VehGarageR2]); } } break; } } -
Hey,
Kurze frage warum schmeisst er mir da fehler raus obwohl ich die Includes aktualisiert habe?
habe mir das 0.3.7 Windows Paket runtergeladen und habe die alle aktualisiert?
Code
Alles anzeigenstock CreateVehicleEx(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, bool:reset=false, siren) { new vehicleid; if(vehicletype < 400 || vehicletype > 611)return 0; vehicleid = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay, siren); //122055 if(Vehicle[vehicleid][vehMotor])KillTimer(Vehicle[vehicleid][VehicleTimer]); DestroyDynamicObject(Vehicle[vehicleid][vehNeon1]); DestroyDynamicObject(Vehicle[vehicleid][vehNeon2]); DestroyObject(Vehicle[vehicleid][vehUCL]); //DestroyObject(SireneObject[vehicleid][0]); //DestroyObject(SireneObject[vehicleid][1]); //DestroyObject(SireneObject[vehicleid][2]); Vehicle[vehicleid][vehNeon1] = INVALID_OBJECT_ID; Vehicle[vehicleid][vehNeon2] = INVALID_OBJECT_ID; Vehicle[vehicleid][vehMotor] = false; Vehicle[vehicleid][vehLicht] = false; Vehicle[vehicleid][vehHaube] = false; Vehicle[vehicleid][vehKRaum] = false; Vehicle[vehicleid][vehPosX2] = x; Vehicle[vehicleid][vehPosY2] = y; Vehicle[vehicleid][vehPosZ2] = z; Vehicle[vehicleid][vehSiren] = siren; Vehicle[vehicleid][vehProds] = 0; Vehicle[GetVehicleTrailer(vehicleid)][vehProds] = 0; Vehicle[vehicleid][vehGeladen][0] = 0; Vehicle[vehicleid][vehGeladen][1] = 0; Vehicle[vehicleid][vehGeladen][2] = 0; Vehicle[vehicleid][vehGeladen][3] = 0; Vehicle[vehicleid][vehGeladen][4] = 0; Vehicle[vehicleid][vehGeladen][5] = 0; Vehicle[vehicleid][vehMaterialien] = 0; Vehicle[vehicleid][vehDrogen] = 0; Vehicle[vehicleid][vehAKRounds] = 0; Vehicle[vehicleid][vehM4Rounds] = 0; Vehicle[vehicleid][vehSniperRounds] = 0; Vehicle[vehicleid][vehDeagleRounds] = 0; Vehicle[vehicleid][vehMP5Rounds] = 0; Vehicle[vehicleid][vehShotgunRounds] = 0; Vehicle[vehicleid][vehFahrgestell] = 0; Vehicle[vehicleid][vehBombe] = 0; Vehicle[vehicleid][vehKofferraumC4] = 0; Vehicle[vehicleid][vehText] = CreateDynamic3DTextLabel(" ", COLOR_WHITE, 50.0, 60.0, 110.0, 20.0, INVALID_PLAYER_ID, vehicleid, 0, -1, -1, -1, 100.0); Vehicle[vehicleid][vehAbgeschleppt] = 0; strdel(Vehicle[vehicleid][vehAbgeschlepptVon], 0, MAX_PLAYER_NAME); Vehicle[vehicleid][vehKaution] = 0; if(reset == true) { Vehicle[vehicleid][vehTankKM] = 0; Vehicle[vehicleid][vehKMStandCount] = 0; Vehicle[vehicleid][vehKMStand] = 0; Vehicle[vehicleid][vehFuel] = VehicleData[vehicletype-400][vehMaxTank]; Vehicle[vehicleid][vehNeonID] = 0; Vehicle[vehicleid][vehProds] = 0; Vehicle[GetVehicleTrailer(vehicleid)][vehProds] = 0; Vehicle[vehicleid][vehGeladen][0] = 0; Vehicle[vehicleid][vehGeladen][1] = 0; Vehicle[vehicleid][vehGeladen][2] = 0; Vehicle[vehicleid][vehGeladen][3] = 0; Vehicle[vehicleid][vehGeladen][4] = 0; Vehicle[vehicleid][vehGeladen][5] = 0; } return vehicleid; }C:\Users\User\Desktop\Script\gamemodes\Script.pwn(122055) : warning 202: number of arguments does not match definition
-
@Dr. Frauenarzt einige Includes verändern ihre Parameter.
Deswegen kriegst du jetzt wahrscheinlich auch number of arguments does not match definition.Ansonsten zeigst du uns mal welche Zeile, hast vergesse, dein Quellcode von der Zeile anzupassen
-
vehicleid = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay, siren); //122055
habe die Fehlerzeile makiert gehabt aber siehe hier
-
-
Das habe ich bereits ja getan und da rein geschaut darum frage ich mich warum das so ist...
-
@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

-
Und zwar rate ich mal ins Blaue und sage du verwendest die color Include von Ryder [img]https://breadfish.de/wcf/images/smilies/wink.png[/img]
Dort wird die Funktion nämlich gehookt und diese musst du anpassen [img]https://breadfish.de/wcf/images/smilies/tongue.png[/img]
Wie soll das include den heißen?
ich verwende kein color include? -
Wie soll das include den heißen?
Liste mal all deine Includes auf

-
#include <a_samp>
#include <a_game>
#include <AntiCBug>
#include <cufs>
#include <core>
#include <colors>
#include <float>
#include <time>
#include <file>
#include <foreach>
#include <utils>
#include <Dini>
#include <ocmd>
#include <zcmd>
#include <sscanf2>
#include <mapandreas>
#include <JunkBuster>
#include <gbug>Meine Vermutung war bei JunBuster eventuell das da drinn der fehler liegen kann..
-
#include <colors>
Naaa, was haben wir denn hier?

Eventuell ist das die Color Include von der ich gesprochen habe hahaha xD
-
Was solle da schlimm daran sein?
Da ist nur drinn:
Code
Alles anzeigen#define GREEN 0x21DD00FF #define RED 0xE60000FF #define ADMIN_RED 0xFB0000FF #define COLOR_RED 0xAA3333AA #define YELLOW 0xFFFF00FF #define ORANGE 0xF97804FF #define LIGHTRED 0xFF8080FF #define LIGHTBLUE 0x009CE2FF #define PURPLE 0xB360FDFF #define PLAYER_COLOR 0xFFFFFFFF #define BLUE 0x1229FAFF #define LIGHTGREEN 0x38FF06FF #define DARKPINK 0xE100E1FF #define DARKGREEN 0x008040FF #define ANNOUNCEMENT 0x6AF7E1FF #define COLOR_SYSTEM 0xEFEFF7AA #define GREY 0xCECECEFF #define PINK 0xD52DFFFF #define DARKGREY 0x626262FF #define AQUAGREEN 0x03D687FF #define NICESKY 0x99FFFFAA #define WHITE 0xFFFFFFFF #define COLOR_RADIO 0xB8860BAA #define COLOR_QUEST 0x009999FF #define COLOR_QUEST2 0x00CC99FF #define COLOR_MESS 0xB7BC21FF #define COLOR_GROVE 0x00FF00FF #define COLOR_DARKBLUE 0x0000D0FF #define COLOR_GRAD1 0xB4B5B7FF #define COLOR_GRAD2 0xBFC0C2FF #define COLOR_GRAD3 0xCBCCCEFF #define COLOR_GRAD4 0xD8D8D8FF #define COLOR_GRAD5 0xE3E3E3FF #define COLOR_GRAD6 0xF0F0F0FF #define COLOR_GREY 0xAFAFAFAA #define COLOR_Buendnis 0x21DD00FF #define COLOR_GREEN 0x33AA33AA #define COLOR_RED_INVISIBLE 0xAA333300 #define COLOR_RED 0xAA3333AA #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_LIGHTGREEN 0x9ACD32AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_YELLOW2 0xF5DEB3AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_FADE1 0xE6E6E6E6 #define COLOR_FADE2 0xC8C8C8C8 #define COLOR_FADE3 0xAAAAAAAA #define COLOR_FADE4 0x8C8C8C8C #define COLOR_FADE5 0x6E6E6E6E #define COLOR_PURPLE 0x800080AA #define COLOR_DBLUE 0x2641FEAA #define COLOR_ALLDEPT 0xFF8282AA #define COLOR_NEWS 0xFFA500AA #define COLOR_OOC 0xE0FFFFAA #define COLOR_SPEC 0xFFFFFFAA #define COLOR_BLACK 0x000000AA #define TEAM_CYAN_COLOR 0xFF8282AA #define TEAM_HIT_COLOR 0xFFFFFF00 #define TEAM_GROVE_COLOR 0x00D900C8 #define TEAM_BLUE_COLOR 0x8D8DFF00 #define TEAM_BLUE_COLOR2 0x8D8DC800 #define TEAM_BALLAS_COLOR 0xD900D3C8 #define COLOR_AZTECAS 0x01FCFFC8 #define grün 0x21DD00FF // srsly?? #define COLOR_BLAU 0x33CCFFAA #define COLOR_BLUE 0x33CCFFAA #define COLOR_GRAU 0xB4B5B7FF #define ORANGE 0xF97804FF #define COLOR_ORANGE 0xF97804FF #define COLOR_GELB 0xFFFF00AA #define RED55 0xE60000FF #define YELLOW55 0xFFFF00FF #define WHITE55 0xFFFFFFFF #define TREE_RED 0xFF0000FF #define TREE_GREEN 0x80FF00FF #define TREE_YELLOW 0xFFFF00FFmehr ist da nicht vorhanden?
-
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.

