Jetzt gibt es immer nur einen Shop, den ich als letztes mit /CreateShop erstellt habe (sieht man erst nach GMX)
Beiträge von Studs
-
-
Also das Ding ist einfach:
Es werden nicht alle Shops geladen, bzw vermutlich werden die Textdraws nicht richtig gesetzt,
wenn ich jetzt einen Shop erstelle passiert erstmal garnichts, erst nach einem Server Start sehe
ich jetzt das Pickup und den rest aber das nur bei einem shop.
Bei den anderen wird das pickup nicht angezeigt.
Aktuell sehe ich nur 2
Und labels die ich ein paar mal vorher erstellt habe sind auch weg,
and den tatsächlichen Shop Einträgen in der mysql db habe ich nichts mehr gelöscht
Finde ich sehr seltsam....
Code
Alles anzeigen//OnGameModeInit new query[128]; mysql_format(handle, query, sizeof(query), "SELECT * FROM `Houses`"); mysql_pquery(handle, query, "OnShopsLoad"); forward OnShopsLoad(); public OnShopsLoad() { new num_rows; cache_get_row_count(num_rows); if(!num_rows)return 1; for(new i; i<num_rows; i++) { new id=getFreeShopID(); cache_get_value_name_int(i, "shopid", ShopInfo[id][shopid]); cache_get_value_name_float(i, "h_enterx", ShopInfo[id][h_enterx]); cache_get_value_name_float(i, "h_entery", ShopInfo[id][h_entery]); cache_get_value_name_float(i, "h_enterz", ShopInfo[id][h_enterz]); cache_get_value_name_float(i, "h_exitx", ShopInfo[id][h_exitx]); cache_get_value_name_float(i, "h_exity", ShopInfo[id][h_exity]); cache_get_value_name_float(i, "h_exitz", ShopInfo[id][h_exitz]); cache_get_value_name_int(i, "robtime", ShopInfo[id][robtime]); cache_get_value_name_int(i, "owned", ShopInfo[id][owned]); cache_get_value_name_int(i, "interior", ShopInfo[id][interior]); // cache_get_value_name_int(i, "owned", ShopInfo[id][owned]); cache_get_value_name(i, "owner", ShopInfo[id][owner], MAX_PLAYER_NAME); updateHaus(id); } return 1; } ocmd:createshop(playerid,params[]) { new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); new id = getFreeShopID(); MakeShop[playerid] = id; ShopInfo[id][h_enterx]=xc; ShopInfo[id][h_entery]=yc; ShopInfo[id][h_enterz]=zc; ShopInfo[id][interior]=0; strmid(ShopInfo[id][owner], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME); format(query, sizeof(query),"INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('%f', '%f', '%f', '""', '1')", xc, yc, zc); mysql_pquery(handle, query, "OnHausCreated", "i", id); printf(query); return 1; } forward OnHausCreated(id); public OnHausCreated(id) { //hopInfo[id][shopid]=cache_insert_id(); ShopInfo[id][shopid]=cache_insert_id(); ABroadCast(-1,"Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang."); return 1; } ocmd:shopausgang(playerid,params[]) { //new id = pShopID; new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); ShopInfo[MakeShop[playerid]][h_exitx] = xc; ShopInfo[MakeShop[playerid]][h_exity] = yc; ShopInfo[MakeShop[playerid]][h_exitz] = zc; /* ShopInfo[id][h_exitx]=xc; ShopInfo[id][h_exity]=yc; ShopInfo[id][h_exitz]=zc;*/ ShopInfo[MakeShop[playerid]][interior] = GetPlayerInterior(playerid); //ShopInfo[id][interior]=GetPlayerInterior(playerid); //format(query, sizeof(query),"INSERT INTO `Houses` (h_exitx, h_exity, h_exitz, interior) VALUES ('%f', '%f', '%f', '%d')", xc, yc, zc,ShopInfo[id][interior]); //mysql_format(handle, query, sizeof(query), "UPDATE `Houses` SET `h_exitx` = '%f', `h_exity` = '%f', ´h_exitz´ = '%f',`interior` = '%d' WHERE ´shopid´ = '%d'", xc, yc, zc,ShopInfo[MakeShop[playerid]][interior],MakeShop[playerid]); mysql_format(handle, query, sizeof(query), "UPDATE Houses SET h_exitx = '%f', h_exity = '%f', h_exitz = '%f', interior = '%d' WHERE shopid = '%d'", xc, yc, zc,ShopInfo[MakeShop[playerid]][interior],ShopInfo[MakeShop[playerid]][shopid]); mysql_pquery(handle, query, "ShopFinished", "i", ShopInfo[MakeShop[playerid]][shopid]); printf(query); return 1; } forward ShopFinished(id); public ShopFinished(id) { ABroadCast(-1,"Der Shop wurde erfolgreich erstellt."); updateHaus(id); return 1; } updateHaus(id) { new string[128]; if(ShopInfo[id][spickup]) { DestroyPickup(ShopInfo[id][spickup]); } if(ShopInfo[id][stext]) { Delete3DTextLabel(ShopInfo[id][stext]); } if(!strlen(ShopInfo[id][owner])) { ShopInfo[id][spickup]=CreatePickup(1273, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], -1); format(string,sizeof(string), "24/7\nKosten: %i$\n/hauskaufen", ShopInfo[id][price]); ShopInfo[id][stext]=Create3DTextLabel(string, -1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } else { ShopInfo[id][spickup]=CreatePickup(1239, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], -1); format(string,sizeof(string), "Besitzer: %s\n/enter", ShopInfo[id][owner]); ShopInfo[id][stext]=Create3DTextLabel(string, -1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } return 1; } getFreeShopID() { for(new i=0; i<sizeof(ShopInfo); i++) { if(ShopInfo[i][shopid]==-1) return ABroadCast(0xFF0000FF, "Error: Maximale Anzahl an Shops erreicht."); } return 0; }
-
// query wird ausgeführt und koordinaten gespeichert
Danke schonmal,
das zweite war das hier
https://www.pic-upload.de/view-36008338/ROWS.png.html
Ist vermutlich ein einfacher Fehler irgendwo
-
(hier noch mal der aktuelle code im überblick)
Code
Alles anzeigenforward OnShopsLoad(); public OnShopsLoad() { new num_rows; cache_get_row_count(num_rows); if(!num_rows)return 1; for(new i; i<sizeof(ShopInfo); i++) { new id=getFreeShopID(); cache_get_value_name_int(i, "shopid", ShopInfo[id][shopid]); cache_get_value_name_float(i, "h_enterx", ShopInfo[id][h_enterx]); cache_get_value_name_float(i, "h_entery", ShopInfo[id][h_entery]); cache_get_value_name_float(i, "h_enterz", ShopInfo[id][h_enterz]); cache_get_value_name_float(i, "h_exitx", ShopInfo[id][h_exitx]); cache_get_value_name_float(i, "h_exity", ShopInfo[id][h_exity]); cache_get_value_name_float(i, "h_exitz", ShopInfo[id][h_exitz]); cache_get_value_name_int(i, "robtime", ShopInfo[id][robtime]); cache_get_value_name_int(i, "owned", ShopInfo[id][owned]); cache_get_value_name_int(i, "interior", ShopInfo[id][interior]); cache_get_value_name(i, "owner", ShopInfo[id][owner], MAX_PLAYER_NAME); updateHaus(id); } return 1; } ocmd:createshop(playerid,params[]) { new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); new id = getFreeShopID(); MakeShop[playerid] = id; ShopInfo[id][h_enterx]=xc; ShopInfo[id][h_entery]=yc; ShopInfo[id][h_enterz]=zc; ShopInfo[id][interior]=0; strmid(ShopInfo[id][owner], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME); format(query, sizeof(query),"INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('%f', '%f', '%f', '""', '1')", xc, yc, zc); mysql_pquery(handle, query, "OnHausCreated", "i", id); printf(query); return 1; } forward OnHausCreated(id); public OnHausCreated(id) { //hopInfo[id][shopid]=cache_insert_id(); ABroadCast(-1,"Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang."); return 1; } ocmd:shopausgang(playerid,params[]) { //new id = pShopID; new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); ShopInfo[MakeShop[playerid]][h_exitx] = xc; ShopInfo[MakeShop[playerid]][h_exity] = yc; ShopInfo[MakeShop[playerid]][h_exitz] = zc; /* ShopInfo[id][h_exitx]=xc; ShopInfo[id][h_exity]=yc; ShopInfo[id][h_exitz]=zc;*/ ShopInfo[MakeShop[playerid]][interior] = GetPlayerInterior(playerid); //ShopInfo[id][interior]=GetPlayerInterior(playerid); //format(query, sizeof(query),"INSERT INTO `Houses` (h_exitx, h_exity, h_exitz, interior) VALUES ('%f', '%f', '%f', '%d')", xc, yc, zc,ShopInfo[id][interior]); //mysql_format(handle, query, sizeof(query), "UPDATE `Houses` SET `h_exitx` = '%f', `h_exity` = '%f', ´h_exitz´ = '%f',`interior` = '%d' WHERE ´shopid´ = '%d'", xc, yc, zc,ShopInfo[MakeShop[playerid]][interior],MakeShop[playerid]); mysql_format(handle, query, sizeof(query), "UPDATE Houses SET h_exitx = '%f', h_exity = '%f', h_exitz = '%f', interior = '%d' WHERE shopid = '%d'", xc, yc, zc,ShopInfo[MakeShop[playerid]][interior],ShopInfo[MakeShop[playerid]][shopid]); mysql_pquery(handle, query, "ShopFinished", "i", MakeShop[playerid]); printf(query); return 1; } forward ShopFinished(id); public ShopFinished(id) { ABroadCast(-1,"Der Shop wurde erfolgreich erstellt."); ShopInfo[id][shopid]=cache_insert_id(); updateHaus(id); return 1; } updateHaus(id) { new string[128]; if(ShopInfo[id][spickup]) { DestroyPickup(ShopInfo[id][spickup]); } if(ShopInfo[id][stext]) { Delete3DTextLabel(ShopInfo[id][stext]); } if(!strlen(ShopInfo[id][owner])) { ShopInfo[id][spickup]=CreatePickup(1273, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_entery], -1); format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", ShopInfo[id][price]); ShopInfo[id][stext]=Create3DTextLabel(string, -1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } else { ShopInfo[id][spickup]=CreatePickup(1239, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], -1); format(string,sizeof(string), "Besitzer: %s\n/enter", ShopInfo[id][owner]); ShopInfo[id][stext]=Create3DTextLabel(string, -1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } return 1; } getFreeShopID() { for(new i=0; i<sizeof(ShopInfo); i++) { if(ShopInfo[i][shopid]==-1) return ABroadCast(0xFF0000FF, "Error: Maximale Anzahl an Shops erreicht."); } return 0; }
Jetzt wird ShopFinished nicht mehr aufgerufen
-
Hab beide geloggt
CodeBlank Gamemode by your name here ---------------------------------- Number of vehicle models: 4 ADMIN: Admin Pulsii(1) logged in (level 10) INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('2098.123779', '2073.649658', '10.820312', '', '1') Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang. UPDATE `Houses` SET `h_exitx` = '2096.150391', `h_exity` = '2063.400391', ´h_exitz´ = '10.820313',`interior` = '0' WHERE ´shopid´ = '0'
Hab das jetzt mal Simuliert,
da kam raus, das h_exit und shopid beides angeblich unbekannte Felder sind, hab die beiden auf rechtschreibfehler geprüft aber keine
gefunden, hab dann das `` weggemacht bei den beiden, so geht es und der shop wird erstellt, jedoch werden die dinge nicht gespeichert,
ist vermutlich nicht die richtige lösung.
Alles:
Code
Alles anzeigenBlank Gamemode by your name here ---------------------------------- Number of vehicle models: 4 ADMIN: Admin Pulsii(1) logged in (level 10) Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang. UPDATE `Houses` SET `h_exitx` = '2105.106445', `h_exity` = '2092.912842', ´h_exitz´ = '10.820313',`interior` = '0' WHERE ´shopid´ = '0' gmx [MySQL] Verbindungsaufbau... [MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: 1 ---------------------------------- Blank Gamemode by your name here ---------------------------------- Number of vehicle models: 4 ADMIN: Admin Pulsii(1) logged in (level 10) INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('2098.123779', '2073.649658', '10.820312', '', '1') Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang. UPDATE `Houses` SET `h_exitx` = '2096.150391', `h_exity` = '2063.400391', ´h_exitz´ = '10.820313',`interior` = '0' WHERE ´shopid´ = '0' gmx [MySQL] Verbindungsaufbau... [MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: 1 ---------------------------------- Blank Gamemode by your name here ---------------------------------- Number of vehicle models: 4 ADMIN: Admin Pulsii(1) logged in (level 10) INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('2096.955078', '2086.385009', '10.820312', '', '1') Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang. UPDATE `Houses` SET `h_exitx` = '2096.400879', `h_exity` = '2075.045898', h_exitz = '10.820313',`interior` = '0' WHERE shopid = '0' Der Shop wurde erfolgreich erstellt. INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('2098.700195', '2079.051757', '10.820312', '', '1') Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang. UPDATE `Houses` SET `h_exitx` = '2097.198730', `h_exity` = '2096.686279', h_exitz = '10.820313',`interior` = '0' WHERE shopid = '0' Der Shop wurde erfolgreich erstellt.
//Edit wie mir gerade auffällt, shopid = 0
Wie kann das sein ?
-
pShopID soll einfach den Wert von "id" abspeichern und quasy in den Befehl "ocmd:shopasugang(playerid,params[])" mitnehmen,
so das ich genau diese Shop ID auch bearbeiten kann.
2. Nein, ändere ich jetzt malWie genau kann ich das mit per Printf bewerkstelligen?
-
Code
Alles anzeigenocmd:shopasugang(playerid,params[]) { new id = pShopID; new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); ShopInfo[id][h_exitx]=xc; ShopInfo[id][h_exity]=yc; ShopInfo[id][h_exitz]=zc; ShopInfo[id][interior]=GetPlayerInterior(playerid); mysql_format(handle, query, sizeof(query), "UPDATE `Houses` SET `h_exitx` = '%f', `h_exity` = '%f', ´h_exitz´ = '%f',`interior` = '%d' WHERE ´shopid´ = '%d'", xc, yc, zc,ShopInfo[id][interior],id); mysql_pquery(handle, query, "ShopFinished", "i", id); return 1; }
X mal alles überprüft und ausgebessert, jedoch wird ShopFinished nicht aufgerufen, in der mysql log steht nichts darüber.
und 2. https://www.pic-upload.de/view-36006351/mysql.png.html
-
Code
Alles anzeigenforward JailTimeProof(); public JailTimeProof() { new string[128]; for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerInfo[i][pJailed] == 0) return 1; if(PlayerInfo[i][pLoggedIn] == false) return 1; if(PlayerInfo[i][pJailTime] <=1) { PlayerInfo[i][pJailed] = 0; PlayerInfo[i][pJailTime] = 0; SpawnPlayer(i); SendClientMessage(i,COLOR_LIGHTBLUE,"* You have been Freed!"); return 1; } else { PlayerInfo[i][pJailTime] = PlayerInfo[i][pJailTime]-1; format(string, sizeof(string), "> ...JailTime %d... <",PlayerInfo[i][pJailTime]); GameTextForPlayer(i,string,1000,6); return 1; } } return 1; }
for(new i = 0; i < MAX_PLAYERS; i++)
funktioniert nur für die id die hier angegeben ist, kann also auch i=2 schreiben dann geht es nur für den spieler mit der playerid 2
der public wird jede sekunde ausgeführt
-
Code
Alles anzeigennew pShopID; //public forward OnShopsLoad(); public OnShopsLoad() { new num_rows; cache_get_row_count(num_rows); if(!num_rows)return 1; for(new i; i<sizeof(ShopInfo); i++) { new id=getFreeShopID(); cache_get_value_name_int(i, "shopid", ShopInfo[id][shopid]); cache_get_value_name_float(i, "h_enterx", ShopInfo[id][h_enterx]); cache_get_value_name_float(i, "h_entery", ShopInfo[id][h_entery]); cache_get_value_name_float(i, "h_enterz", ShopInfo[id][h_enterz]); cache_get_value_name_float(i, "h_exitx", ShopInfo[id][h_exitx]); cache_get_value_name_float(i, "h_exity", ShopInfo[id][h_exity]); cache_get_value_name_float(i, "h_exitz", ShopInfo[id][h_exitz]); cache_get_value_name_int(i, "robtime", ShopInfo[id][robtime]); cache_get_value_name_int(i, "owned", ShopInfo[id][owned]); cache_get_value_name_int(i, "interior", ShopInfo[id][interior]); cache_get_value_name(i, "owner", ShopInfo[id][owner], MAX_PLAYER_NAME); updateHaus(id); } return 1; } ocmd:createshop(playerid,params[]) { new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); new id = getFreeShopID(); ShopInfo[id][h_enterx]=xc; ShopInfo[id][h_entery]=yc; ShopInfo[id][h_enterz]=zc; ShopInfo[id][interior]=0; strmid(ShopInfo[id][owner], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME); format(query, sizeof(query),"INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('%f', '%f', '%f', '""', '1')", xc, yc, zc); mysql_pquery(handle, query, "OnHausCreated", "i", id); return 1; } forward OnHausCreated(id); public OnHausCreated(id) { ShopInfo[id][shopid]=cache_insert_id(); ABroadCast(-1,"Sehr gut, bitte gehe nun zum Ausgang und mache /shopasugang."); pShopID = id; return 1; } ocmd:shopasugang(playerid,params[]) { new id = pShopID; new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); ShopInfo[id][h_exitx]=xc; ShopInfo[id][h_exity]=yc; ShopInfo[id][h_exitz]=zc; ShopInfo[id][interior]=GetPlayerInterior(playerid); format(query, sizeof(query),"INSERT INTO `Houses` (h_exitx, h_exity, h_exitz, interior) VALUES ('%f', '%f', '%f', '%d')", xc, yc, zc,ShopInfo[id][interior]); mysql_pquery(handle, query, "ShopFinished", "i", id); return 1; } forward ShopFinished(id); public ShopFinished(id) { ABroadCast(-1,"Der Shop wurde erfolgreich erstellt."); updateHaus(id); return 1; } updateHaus(id) { new string[128]; if(ShopInfo[id][spickup]) { DestroyPickup(ShopInfo[id][spickup]); } if(ShopInfo[id][stext]) { Delete3DTextLabel(ShopInfo[id][stext]); } if(!strlen(ShopInfo[id][owner])) { ShopInfo[id][spickup]=CreatePickup(1273, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_entery], -1); format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", ShopInfo[id][price]); ShopInfo[id][stext]=Create3DTextLabel(string, -1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } else { ShopInfo[id][spickup]=CreatePickup(1239, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], -1); format(string,sizeof(string), "Besitzer: %s\n/enter", ShopInfo[id][owner]); ShopInfo[id][stext]=Create3DTextLabel(string, -1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } return 1; } getFreeShopID() { for(new i=0; i<sizeof(ShopInfo); i++) { if(ShopInfo[i][shopid]==-1) return ABroadCast(0xFF0000FF, "Error: Maximale Anzahl an Shops erreicht."); } return 0; }
Hi, also jetzt wird der Ausgang einfach in eine neue ShopID eingetragen,
möchte ja die ID des shops mitnehmen wie man am code erkennen kann.
-
Hi,
habs jetzt mal per MySQL gemacht.
Problem ist jetzt, dass einfach 200 Shops erstellt werden (in der mysql db)
Also das Maximum was von mir festgelegt wurde.
An sich wird aber alles gespeichert
Hier der Code:
Code
Alles anzeigenOnGameModeInit(); { mysql_format(handle, query, sizeof(query), "SELECT * FROM `Houses`"); mysql_pquery(handle, query, "OnShopsLoad"); return 1; } forward OnShopsLoad(); public OnShopsLoad() { new num_rows; cache_get_row_count(num_rows); if(!num_rows)return 1; for(new i; i<sizeof(ShopInfo); i++) { cache_get_value_name_int(0, "shopid", ShopInfo[i][shopid]); cache_get_value_name_float(0, "h_enterx", ShopInfo[i][h_enterx]); cache_get_value_name_float(0, "h_entery", ShopInfo[i][h_entery]); cache_get_value_name_float(0, "h_enterz", ShopInfo[i][h_enterz]); cache_get_value_name_float(0, "h_exitx", ShopInfo[i][h_exitx]); cache_get_value_name_float(0, "h_exity", ShopInfo[i][h_exity]); cache_get_value_name_float(0, "h_exitz", ShopInfo[i][h_exitz]); cache_get_value_name_int(0, "robtime", ShopInfo[i][robtime]); cache_get_value_name_int(0, "owned", ShopInfo[i][owned]); cache_get_value_name_int(0, "interior", ShopInfo[i][interior]); cache_get_value_name(0, "owner", ShopInfo[i][owner], MAX_PLAYER_NAME); } return 1; } ocmd:createshop(playerid,params[]) { for(new i; i<sizeof(ShopInfo); i++) { new Float:xc, Float:yc, Float:zc,query[256]; GetPlayerPos(playerid, xc, yc, zc); new id = getFreeShopID(); ShopInfo[id][h_enterx]=xc; ShopInfo[id][h_entery]=yc; ShopInfo[id][h_enterz]=zc; ShopInfo[id][interior]=0; updateHaus(id); strmid(ShopInfo[id][owner], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME); format(query, sizeof(query),"INSERT INTO `Houses` (h_enterx, h_entery, h_enterz, owner, interior) VALUES ('%f', '%f', '%f', '0', '1')", xc, yc, zc); mysql_pquery(handle, query, "OnHausCreated", "i", id); } } forward OnHausCreated(id); public OnHausCreated(id) { ShopInfo[id][shopid]=cache_insert_id(); return 1; } updateHaus(id) { new string[128]; if(ShopInfo[id][spickup]) { DestroyPickup(ShopInfo[id][spickup]); } if(ShopInfo[id][stext]) { Delete3DTextLabel(ShopInfo[id][stext]); } if(!strlen(ShopInfo[id][owner])) { ShopInfo[id][spickup]=CreatePickup(1273, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_entery], -1); format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", ShopInfo[id][price]); ShopInfo[id][stext]=Create3DTextLabel(string, COLOR_RED, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } else { ShopInfo[id][spickup]=CreatePickup(1239, 1, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], -1); format(string,sizeof(string), "Besitzer: %s\n/enter", ShopInfo[id][owner]); ShopInfo[id][stext]=Create3DTextLabel(string, COLOR_BLUE, ShopInfo[id][h_enterx], ShopInfo[id][h_entery], ShopInfo[id][h_enterz], 10, 0, 1); } return 1; } getFreeShopID() { for(new i=0; i<sizeof(ShopInfo); i++) { if(ShopInfo[i][shopid]==0)return i; } return 0; }
-
Ja wie genau?
Hab RobTime als Enum
Dann mit einer for new schleife? Aber woher soll das script dann wissen was für einen shop ich meine...
xD
Das sind halt alles sachen womit ich total durcheinander komme bei solchen dingen
-
Wenn ichs für jeden Shop möchte dann für jeden einzelnen Shop eine Globale Variable? Oder gehts auch einfacher
-
Code
Alles anzeigenif(IsPlayerInRangeOfPoint(playerid,6.0,-10.3508,-178.2570,1003.5469)) { new x; x = gettime(); if(x > gettime()) { SendClientMessage(playerid,-1,"Die eine Minute ist noch nicht rum, Bank kann noch nicht ausgeraubt werden"); return 1; } else { TogglePlayerControllable(playerid,false); ApplyAnimation(playerid,"SHOP","SHP_Gun_Aim",4.1,0,1,1,1,1); Rob(playerid,"24/7 Pershing Squere"); x = gettime() + 60; return 1; } } else return SendClientMessage(playerid,-1,"You are not at a shop.");
Hab jetzt einfach mal dein Beispiel übernommen, tatsächlich klappt das aber nicht so,
ich kann immer noch einfach jede Sekunde die "bank" ausrauben
-
Hi,
also ich möchte eigentlich nur ein ganz einfaches Shop System haben,
jedoch komme ich jedes mal durcheinander, ich habe schon etliche vorgefertigte Scripts dafür angeschaut,
aber wenn ich Scripte brauche ich nunmal eine feste Struktur und ich muss die dinge auch größtmöglich verstehen können,
was da natürlich nicht der Fall ist da es keine Tutorials sind, wenn man dann welche findet sind diese für Dini. (Ich benutze Mysql R41-4)
Hätte jemand vielleicht Zeit / Lust mir einfach mal ein kleines Tutorial dafür ein erklärtes tutorial zu machen, ähnlich wie hier? [jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)
Und bitte keine Codes aus irgendwelchen House System Filterscripts kopieren, das bringt mir nämlich gar nichts.
Das was ich halt so brauche wäre Laden / Speichern / Erstellen / Löschen (nur die Grundsätze heißt nicht das man das für alle enums machen muss)
Und falls jemand diesen Shop ausraubt, dass dann die RobTime gesetzt wird bis es wieder ausraubar ist.
Meine Enums sind hier: https://pastebin.com/BCxpuKnJ
Und wie gesagt ich brauche dabei einfach Struktur und ein Grundgerüst
-
Naja einzigartig ist es nicht, aber trotzdem cool!
-
// edit
Ok jetzt gehts habe zwei zeilen abgeändert, jetzt wird der name auch korrekt angezeigt, sowie die ID
und das adminlevel wird gesetzt
Nur das mit dem gametextforplayer geht noch nicht da gucke ich mal kurz
-
Okay folgende Probleme:
Erstmal wird die Nachricht nicht gesendet, wenn ich nicht alles richtig gemacht habe
if(sscanf(params,"dd", number, level)) return GameTextForPlayer(playerid,"~g~/setadmin ~w~[AccountID] [Level]",2500,1);
(Könnte zur fehlerbehebung beitragen)
Und egal welche Acc id ich eingebe, es steht immer da "AccID nicht gefunden"
// Edit
Zum besseren Verständnis, möchte das Adminlevel eines Spielers ÜBER eine AccountID setzen
-
Passiert nichts wenn ich den ausführe, wenn das admlevel z.B 22 crasht das Spiel sonst einfach nix
-
new plrIP[40];GetPlayerIp(playerid, plrIP, sizeof(plrIP));format(PlayerInfo[playerid][PlayerIP], 40, "%s", plrIP);
warning 213: tag mismatch
-
Kurze Frage:
Float:PlayerIP
new plrIP[40];
GetPlayerIp(playerid, plrIP, sizeof(plrIP));
PlayerInfo[playerid][PlayerIP] = strval(plrIP);
mysql_format(handle, query, sizeof(query), "UPDATE user SET score = '%d', money = '%d', kills = '%d', deaths = '%d',playerip = '%f' WHERE id = '%d'",Hier wird nur "127" gespeichert, wie genau mache ich das richtig?
(Bei OnPlayerConnect)