Moin,
ich baue gerade mein Biz System ... Ich möchte allerdings mein System "Dynamisch" aufbauen. Ich habe angefangen mit der Unterscheidung ob es eine Tankstelle ist... Leider funktioniert es nicht so ganz...
Meine enums:
enum bizData{
db_id,
biz_id,
biz_typ,
biz_name[64],
biz_owner,
biz_sowner,
int_id,
biz_level,
Float:biz_kosten,
Float:biz_kasse,
Float:enter_x,
Float:enter_y,
Float:enter_z,
Float:int_x,
Float:int_y,
Float:int_z,
Float:i_x,
Float:i_y,
Float:i_z
}
new bInfo[][bizData];
enum tankData{
db_id,
t_typ,
Float:t_x,
Float:t_y,
Float:t_z,
t_range,
Float:benzin_vol,
Float:diesel_vol,
Float:gas_vol,
Float:kerosin_vol,
Float:benzin_preis,
Float:diesel_preis,
Float:gas_preis,
Float:kerosin_preis
}
new tankInfo[][tankData];
Alles anzeigen
OnGameModeInit:
//Lade Geschäfte
new query[2048];
mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte");
mysql_pquery(handle, query, "loadBizzes");
meine callbacks:
public loadBizzes(){
new rows;
cache_get_row_count(rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++){
new id = getFreeBizID();
cache_get_value_name_int(i, "id", bInfo[id][db_id]);
cache_get_value_name_int(i, "biz_typ", bInfo[id][biz_typ]);
cache_get_value_name(i, "biz_name", bInfo[id][biz_name], 128);
cache_get_value_name_int(i, "biz_owner", bInfo[id][biz_owner]);
cache_get_value_name_int(i, "biz_sowner", bInfo[id][biz_sowner]);
cache_get_value_name_int(i, "biz_level", bInfo[id][biz_level]);
cache_get_value_name_int(i, "int_id", bInfo[id][int_id]);
cache_get_value_name_float(i, "bizkosten", bInfo[id][biz_kosten]);
cache_get_value_name_float(i, "bizkasse", bInfo[id][biz_kasse]);
cache_get_value_name_float(i, "enter_x", bInfo[id][enter_x]);
cache_get_value_name_float(i, "enter_y", bInfo[id][enter_y]);
cache_get_value_name_float(i, "enter_z", bInfo[id][enter_z]);
cache_get_value_name_float(i, "int_x", bInfo[id][int_x]);
cache_get_value_name_float(i, "int_y", bInfo[id][int_y]);
cache_get_value_name_float(i, "int_z", bInfo[id][int_z]);
cache_get_value_name_float(i, "i_x", bInfo[id][i_x]);
cache_get_value_name_float(i, "i_y", bInfo[id][i_y]);
cache_get_value_name_float(i, "i_z", bInfo[id][i_z]);
bInfo[id][id_x] = bInfo[id][db_id];
if(bInfo[id][biz_typ] == 1){
new query[1024];
mysql_format(handle, query, sizeof(query), "SELECT * FROM new_tankstellen WHERE id = '%i'", bInfo[id][db_id]);
mysql_pquery(handle, query, "loadTanke", "i", i);
}
}
return 1;
}
public loadTanke(dbid){
new rows, tankeCount, string[128];
cache_get_row_count(rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++){
cache_get_value_name_int(i, "id", tankInfo[dbid][db_id]);
cache_get_value_name_int(i, "t_typ", tankInfo[dbid][t_typ]);
cache_get_value_name_float(i, "t_x", tankInfo[dbid][t_x]);
cache_get_value_name_float(i, "t_y", tankInfo[dbid][t_y]);
cache_get_value_name_float(i, "t_z", tankInfo[dbid][t_z]);
cache_get_value_name_int(i, "t_range", tankInfo[dbid][t_range]);
cache_get_value_name_float(i, "benzin_vol", tankInfo[dbid][benzin_vol]);
cache_get_value_name_float(i, "diesel_vol", tankInfo[dbid][diesel_vol]);
cache_get_value_name_float(i, "gas_vol", tankInfo[dbid][gas_vol]);
cache_get_value_name_float(i, "kerosin_vol", tankInfo[dbid][kerosin_vol]);
cache_get_value_name_float(i, "benzin_preis", tankInfo[dbid][benzin_preis]);
cache_get_value_name_float(i, "diesel_preis", tankInfo[dbid][diesel_preis]);
cache_get_value_name_float(i, "gas_preis", tankInfo[dbid][gas_preis]);
cache_get_value_name_float(i, "kerosin_preis", tankInfo[dbid][kerosin_preis]);
tankInfo[dbid][id_x] = tankInfo[dbid][db_id];
printf("Tankstelle: %s | X: %f | Y: %f | Z: %f | ID: %i geladen", bInfo[dbid][biz_name], bInfo[dbid][enter_x], bInfo[dbid][enter_y], bInfo[dbid][enter_z], tankInfo[dbid][id_x]);
format(string, sizeof(string), "%s", bInfo[i][biz_name]);
tankLabel[bInfo[i][id_x]] = Create3DTextLabel(string, COLOR_WHITE, bInfo[i][enter_x], bInfo[i][enter_y], bInfo[i][enter_z], 15, 0, 1);
tankeCount += 1;
}
print("|__________Tankstellen wurden geladen__________|");
printf("Es wurden %i Tankstellen geladen", tankeCount);
return 1;
}
Alles anzeigen
Die Forwards:
//Geschäfte
forward loadBizzes();
forward loadTanke(bizid);
Als ergebnis steht in der Konsole:
[14:23:45] Tankstelle: GS Tanke | X: 1928.579956 | Y: -1776.229980 | Z: 13.546899 | ID: 2 geladen
[14:23:45] |__________Tankstellen wurden geladen__________|
[14:23:45] Es wurden 1 Tankstellen geladen
[14:23:45] Tankstelle: BSN Tanke | X: 1000.590026 | Y: -919.880004 | Z: 42.328098 | ID: 1 geladen
[14:23:45] |__________Tankstellen wurden geladen__________|
[14:23:45] Es wurden 1 Tankstellen geladen
//EDIT Nachdem ich das erste Problem gelöst habe, habe ich nun ein weiteres kleines Problem^^
MfG
XonarZ