Ich würde mal sagen, dass dem GW[i]-Array keine Werte zugeteilt sind.
Beiträge von DJ Deagle
-
-
Richtig, weil 7.5GB in Verwendung sind. Lesen ist schon ne feine Sache :p
Dann würde aber der folgende Prozess:
Nicht so viel RAM ziehen. Ich bleibe bei der annahme, dass der Server nur 512MB Ram zugewiesen hat. -
Dem Server sind 1x.8GB Arbeitsspeicher zugewiesen.
Da steht doch, dass nur 512MB Verfügbar sind? -
Teste mal, wenn die BoxColor auf 0 ist.
-
Ich hätte nun gesagt, bei der Erstellung des TD die Farbe auf 0 stellen.
-
if(strval(inputtext) > 0)
-
if(GetPlayerMoney(playerid) <= strval(inputtext))
zu
if(GetPlayerMoney(playerid) < strval(inputtext))Wenn Spielergeld kleiner ODER gleich input ist, dann sagen "nein, hast kein geld" --> Das ist deine Anweisung
Wenn Spielergeld kleiner als input ist, dann sagen "nein, hast kein geld" --> Das ist meine AnweisungHoffe ist verständlich
lg
-
Zitat von seegras Wenn du eine "Lieferung" von Fahrzeugen an Shops darstellen möchtest kannst du Alternativ so einen Trailer spawnen
(ID 591)
an diesen ein 3DTextlabel platzieren mit den Lieferinfos (Zielshop, Modell, Bestelldatum etc.)
und den Fahrer mit diesem Trailer zum Shop fahren lassen - wenn er dort Angekommen ist durch einen Command oder ein Pickup den Trailer löschen lassen und dafür ein Auto spawnen / den Lagerbestand um eins erhöhen
Das hört sich doch mal gut an, warum bin ich da ned selber drauf gekommen?
Danke auf jeden Fall, ich werde mich mal dran setzen -
Jap, hab es grade getestet, und nun crasht mein SAMP immer wegen diesem Fahrzeug..
Und eine andere Möglichkeit gibt es derzeit nicht? :o -
Du erstellst das jeweilige Fahrzeug als Objekt, und attached es dann auf dem LKW. Einsteigen kann man dann aber nicht!
Einsteigen soll man ja nicht, ist für Transportzwecke gedacht. Als Objekt erstellen und attachen, hört sich nicht grad schlecht an, ich werd es mal austesten
Danke auf jeden Fall schon mal für die Antwort -
Hi,
ich wollte wissen, ob man ein Fahrzeug auf einen Packer "packen" kann. Meine Tests haben bisher nichts anderes als Asynchronität ergeben
lg
Deagle.PS: Falls möglich, sollten die Fahrzeuge auf dem Packer zu sehen sein
-
Füge das OnQueryError mal in deinen Code ein und lasse dir die Werte der Parameter mit Print alle ausgeben. Dann poste was bei Aufruf (wird es ja offensichtlich) geprintet wird.
Irgendwas geht da nämlich schief.http://wiki.sa-mp.com/wiki/MySQL#OnQueryError
Berechtigungen in der Datenbank hast du aber schon alle, oder?
Berechtigungen? Ja. Du hattest außerdem einen SyntaxError (SELECT * FORM) anstatt (SELECT * FROM). Das habe ich geändert, trotzdem noch 3x OnQueryError (er lädt trzdem die Autohäuser ohne probleme).
Hier die Server-Log:
Code----------------------v0.3z-R4, (C)2005-2014 SA-MP Team[22:50:23] [22:50:23] Server Plugins[22:50:23] --------------[22:50:23] Loading plugin: mysql.so[22:50:23] > MySQL plugin R5 successfully loaded.[22:50:23] Loaded.[22:50:23] Loading plugin: streamer.so[22:50:23] Loaded.[22:50:23] Loading plugin: sscanf.so[22:50:23] [22:50:23] ===============================[22:50:23] sscanf plugin loaded. [22:50:23] Version: 2.8.1 [22:50:23] (c) 2012 Alex "Y_Less" Cole [22:50:23] ===============================[22:50:23] Loaded.[22:50:23] Loading plugin: audio.so[22:50:23] *** Audio Plugin v0.5 R2 by Incognito loaded ***[22:50:23] Loaded.[22:50:23] Loading plugin: SyncHTTP.so[22:50:23] SyncHTTP got loaded.[22:50:23] Loaded.[22:50:23] Loaded 5 plugins.[22:50:23] [22:50:23] Filterscripts[22:50:23] ---------------[22:50:23] Loaded 0 filterscripts.[22:50:23] *** Audio Plugin: Started TCP server on port 9853[22:50:23] <-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt![22:50:23] Setting server password to: "shanfjdshfjsdhfjkdshfsd"[22:50:23] [22:50:23] Alle Maps wurden erfolgreich geladen![22:50:23] [22:50:23] Filterscript 'Maps.amx' loaded.[22:50:23] Filterscript 'AudioHide.amx' loaded.[22:50:23] === WBB_Connect ===Successfully initialized!===================[22:50:23] LoadCarDealers[22:50:23] rows: 5[22:50:23] 1|test1|-306.352|828.016|13.391|0|Zinne|100|1[22:50:23] 0: ** test1 **Besitzer: Zinne[22:50:23] 2|test2|-308.212|823.644|14.0029|0|Niemand|100|1[22:50:23] 1: ** test2 **Dieses Autohaus ist zu verkaufen!Preis: 100€Level: 1Autohaus kaufen: /buybiz[22:50:23] 3|test3|-304.661|824.035|13.7237|0|Niemand|100|1[22:50:23] 2: ** test3 **Dieses Autohaus ist zu verkaufen!Preis: 100€Level: 1Autohaus kaufen: /buybiz[22:50:23] 4|test4|-301.582|822.909|13.8331|0|Niemand|100|1[22:50:23] 3: ** test4 **Dieses Autohaus ist zu verkaufen!Preis: 100€Level: 1Autohaus kaufen: /buybiz[22:50:23] 5|test5|-300.424|824.921|13.6326|0|Niemand|100|1[22:50:23] 4: ** test5 **Dieses Autohaus ist zu verkaufen!Preis: 100€Level: 1Autohaus kaufen: /buybiz[22:50:23] [22:50:23] SCRIPT - (c) by Deagle[22:50:23] [22:50:23] Number of vehicle models: 2[22:50:23] Incoming connection: 127.0.0.1:51358[22:50:23] Incoming connection: 127.0.0.1:34883[22:50:23] [npc:join] Joe has joined the server (0:127.0.0.1)[22:50:23] [npc:join] Jose has joined the server (1:127.0.0.1)
MySQL Log:
SQL[22:50:23] [22:50:23] ---------------------------[22:50:23] MySQL Debugging activated (09/30/14)[22:50:23] ---------------------------[22:50:23] [22:50:23] >> mysql_query( Connection handle: 1 )[22:50:23] CMySQLHandler::Query(SELECT * FROM `haeuser`) - Successfully executed.[22:50:23] >> mysql_store_result( Connection handle: 1 )[22:50:23] CMySQLHandler::StoreResult() - Result was stored.[22:50:23] >> mysql_fetch_row_format( Connection handle: 1 )[22:50:23] >> mysql_free_result( Connection handle: 1 )[22:50:23] CMySQLHandler::FreeResult() - Result was successfully free'd.[22:50:23] OnQueryError() - Called.[22:50:23] OnQueryError() - Called.[22:50:23] OnQueryError() - Called.
Callback im Script:
Spoiler anzeigen public OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle)
{
switch(errorid) {
case CR_COMMAND_OUT_OF_SYNC: { printf("Commands out of sync for thread ID: %d",resultid); }
case ER_SYNTAX_ERROR: { printf("Something is wrong in your syntax, query: %s",query); }
}
return 1;
}hm.. was is da los? :o
/e: Hab das Callback in deinen Wunsch abgeändert:
public OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle)
{
printf("ErrorID: %d",errorid);
printf("Error: %s",error);
printf("ResultID: %d",resultid);
printf("ExtraID: %d",extraid);
printf("Callback: %s",callback);
printf("Query: %s",query);
printf("ConnectionHandle: %d",connectionHandle);
return 1;
}ServerLOG:
Code
Alles anzeigen[22:55:25] Number of vehicle models: 2 [22:55:25] ErrorID: 1064 [22:55:25] Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS `haeuser` (`ID` int(11) NOT NULL UNIQUE,`PosX` float ' at line 1 [22:55:25] ResultID: -1 [22:55:25] ExtraID: -1 [22:55:25] Callback: NULL [22:55:25] Query: CREATE TABLE IF NOT EXISTS `Drugplants` (`ID` int(11) NOT NULL UNIQUE,`Owner` varchar(24) NOT NULL,`PosX` float NOT NULL,`PosY` float NOT NULL,`PosZ` float NOT NULL,`Time` int(11) NOT NULL,`Type` int(11) NOT NULL,`Finished` int(11) NOT NULL,`Harvested` int(11) NOT NULL,`PlantDate` varchar(16) NOT NULL,`PlantTime` varchar(16) NOT NULL,`HarvestDate` varchar(16) NOT NULL,`HarvestTime` varchar(16) NOT NULL);CREATE TABLE IF NOT EXISTS `haeuser` (`ID` int(11) NOT NULL UNIQUE,`PosX` float NOT NULL,`PosY` float NOT NULL,`PosZ` float NOT NULL,`Level` int(4) NOT NULL,`Preis` int(12) NOT NULL,`Besitzer` varchar(24) NOT NULL,`Bought` int(1) NOT NULL,`Rooms` int(3) NOT NULL,`InteriorID` int(3) NOT NULL,`Interior` int(3) NOT NULL,`IntX` float NOT NULL,`IntY` float NOT NULL,`IntZ` float NOT NULL,`Locked` int(1) NOT NULL,`Rentable` int(1) NOT NULL,`RentPrice` int(5) NOT NULL,`Renter1` varchar(24) NOT NULL,`Renter2` varchar(24) NOT NULL,`Renter3` varchar(24) NOT NULL,`Renter4` varchar(24) NOT NULL,`Renter5` varchar(24) NOT NULL,`Renter6` varchar(24) NOT NULL); [22:55:25] ConnectionHandle: 1 [22:55:25] ErrorID: 1064 [22:55:25] Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS `Playercars` (`ID` int(11) NOT NULL AUTO_INCREMENT,`S' at line 1 [22:55:25] ResultID: -1 [22:55:25] ExtraID: -1 [22:55:25] Callback: NULL [22:55:25] Query: CREATE TABLE IF NOT EXISTS `Dealerparks` (`ID` int(11) NOT NULL AUTO_INCREMENT,`PosX` float NOT NULL,`PosY` float NOT NULL,`PosZ` float NOT NULL,`PosA` float NOT NULL,`Seller` int(11) NOT NULL,PRIMARY KEY (`ID`));CREATE TABLE IF NOT EXISTS `Playercars` (`ID` int(11) NOT NULL AUTO_INCREMENT,`Status` int(11) NOT NULL,`SlotID` int(11) NOT NULL,`Owner` varchar(24) NOT NULL,`PosX` float NOT NULL,`PosY` float NOT NULL,`PosZ` float NOT NULL,`PosA` float NOT NULL,`Model` int(11) NOT NULL,`Price` int(11) NOT NULL,`Color1` int(11) NOT NULL,`Color2` int(11) NOT NULL,`Health` float NOT NULL,`Locked` int(11) NOT NULL,`Component00` int(11) NOT NULL,`Component01` int(11) NOT NULL,`Component02` int(11) NOT NULL,`Component03` int(11) NOT NULL,`Component04` int(11) NOT NULL,`Component05` int(11) NOT NULL,`Component06` int(11) NOT NULL,`Component07` int(11) NOT NULL,`Component08` int(11) NOT NULL,`Component09` int(11) NOT NULL,`Component10` int(11) NOT NULL,`Component11` int(11) NOT NULL,`Component12` int(11) NOT NULL,`Component13` int(11) NOT NULL,`KM` float NOT NULL,`Tank` int(11) NOT NULL,PRIMARY KEY (`ID`)); [22:55:25] ConnectionHandle: 1 [22:55:25] ErrorID: 1064 [22:55:25] Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FORM `Dealercars`' at line 1 [22:55:25] ResultID: -1 [22:55:25] ExtraID: -1 [22:55:25] Callback: NULL [22:55:25] Query: SELECT * FORM `Dealercars` [22:55:25] ConnectionHandle: 1
edit: Mir ist aufgefallen, dass diese Fehler in einem anderen stock liegen, der auch unter OnGameModeInit aufgerufen wird.
Dort wurden die ganzen formatierten strings vor dem strcat nicht auf 0 Zeichen formatiert. Dieses ist nun behoben.
Jetzt klappt alles reibungslos und ohne Errors (weder im Compiler, noch in den Logs).
Danke Jeffry, du hast dir wirklich ein Lob verdient -
Lass es mal so laufen und poste dann was im Server Log steht.
Huh? Wasn dat -
Kannst du nochmal deine Datenbank und deinen Log leeren und den Befehl nochmal eingeben, bzw. zweimal? Und wenn möglich auch nochmal den Befehl und die zwei stocks dazu, wie sie momentan sind?
Das ist so durcheinander hier, etwas Ordnung wäre gut. Den Log brauche ich um die Vorgänge zu verfolgen, warum es "verzögert" erstellt wird.
Okay. Ich habe jetzt grade die Datenbank geleert, und dann alles neu gestartet und 5 neue Autohäuser erstellt. Es hat alles geklappt wie gewollt.
Doch beim Neustart des Servers wurden die Autohäuser nicht richtig geladen. Dazu wird unter OnGameModeInit der Befehl "LoadCarDealers();" ausgeführt.
Erst als ich den Command "ccd" wieder ausgeführt habe (um ein Autohaus zu erstellen) wurde das erste Autohaus aus der DB geladen.
Hier der dazugehörige stock:
stock LoadCarDealers()
{
mysql_query("SELECT * FORM `Cardealers`");
mysql_store_result();
if(mysql_num_rows() != 0 && mysql_num_rows() <= 5) {
new str[1024],idx=0;
while(mysql_fetch_row(str)) {
new string[256];
sscanf(str, "e<p<|>ds[32]fffds[24]dd>",AHInfo[idx]);
if((!strcmp(AHInfo[idx][zOwner],"Niemand",true))) {
AHInfo[idx][zPickup]=CreatePickup(1273,1,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],0);
format(string,128,"** %s **\nDieses Autohaus ist zu verkaufen!\nPreis: %s€\nLevel: %d\nAutohaus kaufen: /buybiz",AHInfo[idx][zName],inspoints(AHInfo[idx][zPrice]),AHInfo[idx][zLevel]);
AHInfo[idx][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],10,0,0);
AHInfo[idx][zCreated] = true;
} else {
AHInfo[idx][zPickup]=CreatePickup(1272,1,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],0);
format(string,128,"** %s **\nBesitzer: %s",AHInfo[idx][zName],AHInfo[idx][zOwner]);
AHInfo[idx][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],10,0,0);
AHInfo[idx][zCreated] = true;
}
idx++;
}
mysql_free_result();
}
return 1;
}Und weil ich dich kenne Jeffry, hier die MySQL-Log:
SQL
Alles anzeigen[19:56:52] [19:56:52] --------------------------- [19:56:52] MySQL Debugging activated (09/30/14) [19:56:52] --------------------------- [19:56:52] [19:56:52] >> mysql_query( Connection handle: 1 ) [19:56:52] CMySQLHandler::Query(SELECT * FROM `haeuser`) - Successfully executed. [19:56:52] >> mysql_store_result( Connection handle: 1 ) [19:56:52] CMySQLHandler::StoreResult() - Result was stored. [19:56:52] >> mysql_fetch_row_format( Connection handle: 1 ) [19:56:52] >> mysql_free_result( Connection handle: 1 ) [19:56:52] CMySQLHandler::FreeResult() - Result was successfully free'd. [19:56:52] OnQueryError() - Called. [19:56:52] OnQueryError() - Called. [19:56:52] OnQueryError() - Called. [19:56:52] OnQueryError() - Called.
Woran liegts mit dem OnQueryError()?
lg
Deagle/e: Außerdem schreibt er dann beim ccd-Befehl wieder was neues in die Tabelle.
-
Fängt dein AUTO_INCREMENT bei 0 an?
Fängt bei 1 an.. -
Spoiler anzeigen stock LoadCarDealer(id)
{
new q[256];
format(q,256,"SELECT * FROM `Cardealers` WHERE `ID` = '%d'",id+1);
mysql_query(q);
mysql_store_result();
if(mysql_num_rows() == 1) {
new str[512];
while(mysql_fetch_row(str)) {
for(new i;i<MAX_AUTOHAUS;i++) {
if(AHInfo[i][zCreated])continue;
new string[256];
sscanf(str, "e<p<|>ds[32]fffds[24]dd>",AHInfo[i]);
if((!strcmp(AHInfo[i][zOwner],"Niemand",true))) {
AHInfo[i][zPickup]=CreatePickup(1273,1,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],0);
format(string,128,"** %s **\nDieses Autohaus ist zu verkaufen!\nPreis: %s€\nLevel: %d\nAutohaus kaufen: /buybiz",AHInfo[i][zName],inspoints(AHInfo[i][zPrice]),AHInfo[i][zLevel]);
AHInfo[i][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],10,0,0);
AHInfo[i][zCreated] = true;
} else {
AHInfo[i][zPickup]=CreatePickup(1272,1,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],0);
format(string,128,"** %s **\nBesitzer: %s",AHInfo[i][zName],AHInfo[i][zOwner]);
AHInfo[i][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],10,0,0);
AHInfo[i][zCreated] = true;
}
return 1; //Hat gefehlt, wie gesagt.
}
}
mysql_free_result();
}
return 1;
}
Jetzt erstellt er das Autohaus erst, wenn ich ein 2. erstelle (Ich gehe an Pos 1, mache ccd [...], dann gehe ich an Pos 2 mache ccd [...] => da wird 1 geladen und nicht 2)
Anstatt das neu erstellte zu laden lädt er da das Autohaus was in der Datenbank war und am start nicht geladen wurde.Folgende Funktion wird am start aufgerufen:
stock LoadCarDealers()
{
mysql_query("SELECT * FORM `Cardealers`");
mysql_store_result();
if(mysql_num_rows() != 0 && mysql_num_rows() <= 5) {
new str[1024],idx=0;
while(mysql_fetch_row(str)) {
new string[256];
sscanf(str, "e<p<|>ds[32]fffds[24]dd>",AHInfo[idx]);
if((!strcmp(AHInfo[idx][zOwner],"Niemand",true))) {
AHInfo[idx][zPickup]=CreatePickup(1273,1,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],0);
format(string,128,"** %s **\nDieses Autohaus ist zu verkaufen!\nPreis: %s€\nLevel: %d\nAutohaus kaufen: /buybiz",AHInfo[idx][zName],inspoints(AHInfo[idx][zPrice]),AHInfo[idx][zLevel]);
AHInfo[idx][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],10,0,0);
AHInfo[idx][zCreated] = true;
} else {
AHInfo[idx][zPickup]=CreatePickup(1272,1,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],0);
format(string,128,"** %s **\nBesitzer: %s",AHInfo[idx][zName],AHInfo[idx][zOwner]);
AHInfo[idx][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],10,0,0);
AHInfo[idx][zCreated] = true;
}
idx++;
}
mysql_free_result();
}
return 1;
} -
"if[pickupid == 0]"
if(pickupid == 0)
Hatte die falschen Klammern genommen^^Pickupid 0 ist das erste Pickup, das der Server erstellt.
Normalerweise arbeitet man halt mit Deklarationen (BF_WEAPON in deinem Fall). -
BF_WEAPON[0]
Ist das was du brauchst, da BF_WEAPON[0] sich ändert. Ich glaube, dass Jeffry sich bei seinem Post vertan hat. ( if[pickupid == 0] )Und warum deine Pickups rumbuggen? Versuch es mal mit der WaffenID (Minigun: 38)
-
Ja, dann muss mach der strcmp Abfrage (die nach sscanf) auch ein return 1 hin (also nach dem else Teil). Dann dürfte das auch gehen.
Es muss so sein, weil wenn das Objekt geladen ist, muss der Loop ja nicht weiter laufen, es ist ja erstellt. Sonst wird es nur nochmal erstellt.
Habe jetzt folgenden Code:
stock SaveCarDealer(id)
{
new query[512];
format(query,sizeof query,"UPDATE `Cardealers` SET `Owner` = '%s', `Name` = '%s', `Bank` = '%d' WHERE `ID` = '%d'",AHInfo[id][zOwner],AHInfo[id][zName],AHInfo[id][zBank],AHInfo[id][zID]);
mysql_query(query);
return 1;
}stock KillCarDealer(id)
{
printf("KillDealer ID: %d",id);
SaveCarDealer(id);
DestroyPickup(AHInfo[id][zPickup]);
Delete3DTextLabel(AHInfo[id][zLabel]);
AHInfo[id][zCreated] = false;
return 1;
}stock LoadCarDealer(id)
{
new q[256];
format(q,256,"SELECT * FROM `Cardealers` WHERE `ID` = '%d'",id+1);
mysql_query(q);
mysql_store_result();
if(mysql_num_rows() == 1) {
new str[512];
while(mysql_fetch_row(str)) {
for(new i;i<MAX_AUTOHAUS;i++) {
if(AHInfo[i][zCreated])continue;
new string[256];
sscanf(str, "e<p<|>ds[32]fffds[24]dd>",AHInfo[i]);
if((!strcmp(AHInfo[i][zOwner],"Niemand",true))) {
AHInfo[i][zPickup]=CreatePickup(1273,1,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],0);
format(string,128,"** %s **\nDieses Autohaus ist zu verkaufen!\nPreis: %s€\nLevel: %d\nAutohaus kaufen: /buybiz",AHInfo[i][zName],inspoints(AHInfo[i][zPrice]),AHInfo[i][zLevel]);
AHInfo[i][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],10,0,0);
AHInfo[i][zCreated] = true;
} else {
AHInfo[i][zPickup]=CreatePickup(1272,1,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],0);
format(string,128,"** %s **\nBesitzer: %s",AHInfo[i][zName],AHInfo[i][zOwner]);
AHInfo[i][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ],10,0,0);
AHInfo[i][zCreated] = true;
}
}
}
mysql_free_result();
}
return 1;
}ocmd:ccd(playerid,params[])
{
new name[32],price,level,Float:xPos[3];
if(pInfo[playerid][pAdmin] != 5)return 1;
if(sscanf(params,"dds[32]",price,level,name))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /ccd [Preis] [Level] [Name]");
for(new i;i<MAX_AUTOHAUS;i++) {
if(AHInfo[i][zCreated])continue;
new str[256];
GetPlayerPos(playerid,xPos[0],xPos[1],xPos[2]);
format(str,sizeof str,"INSERT INTO `Cardealers` (`Owner`, `PosX`, `PosY`, `PosZ`, `Name`, `Price`, `Level`) VALUES ('Niemand', '%f', '%f', '%f', '%s', '%d', '%d')",xPos[0],xPos[1],xPos[2],name,price,level);
mysql_query(str);
return LoadCarDealer(i);
}
return 1;
}ocmd:buybiz(playerid,params[])
{
for(new i;i<MAX_AUTOHAUS;i++) {
if(!AHInfo[i][zCreated])continue;
if(IsPlayerInRangeOfPoint(playerid,3,AHInfo[i][zPosX],AHInfo[i][zPosY],AHInfo[i][zPosZ])) {
if((!strcmp(AHInfo[i][zOwner],"Niemand",true))) {
if(pInfo[playerid][pMoney] >= AHInfo[i][zPrice]) {
if(GetPlayerScore(playerid) >= AHInfo[i][zLevel]) {
GetPlayerName(playerid,sendername,sizeof sendername);
pInfo[playerid][pMoney] -= AHInfo[i][zPrice];
pInfo[playerid][pBiz] = i;
format(AHInfo[i][zOwner],24,"%s",sendername);
SendClientMessage(playerid,COLOR_LIGHTGREEN,"Du hast dir das Autohaus erfolgreich gekauft!");
SavePlayer(playerid);
KillCarDealer(i);
return LoadCarDealer(i);
} else {
return SendClientMessage(playerid,COLOR_LIGHTRED,"Dein Level reicht nicht aus, um dieses Autohaus zu kaufen!");
}
} else {
return SendClientMessage(playerid,COLOR_LIGHTRED,"Du hast nicht genug Geld, um dieses Autohaus zu kaufen!");
}
} else {
return SendClientMessage(playerid,COLOR_LIGHTRED,"Dieses Autohaus ist nicht zu verkaufen!");
}
}
}
return 1;
}
Leider wird nun nur noch 1 Autohaus erstellt.
Beim Ersten Autohaus werden nach dem Kauf das alte Pickup+Label nicht entfernt.Ich habe an dem Code rumgewerkelt wie ein bekloppter, doch nix ist rausgekommen
/e: KillDealer (was geprintet wurde) war immer 0.
-
Ok. Dann habe ich noch das Problem, dass das Label und das Pickup nicht gekillt werden.
Dort das selbe wie bei dem laden? Dann versuch ich gleich beides zusammen.