Ich heiße nicht nur iceberq, sondern euch auch herzlich willkommen zu diesem Thread
Ich habe "versucht" ein Gangzone System einzubauen... hat nicht so geklappt wie erwartet..
Zunächst habe ich mit einem Enum begonnen:
enum gzEnum{
Float:min_x,
Float:min_y,
Float:max_x,
Float:max_y,
Float:gzp_x, <- Diese Floats(gzp_x etc.) sind für ein Pickup und ein 3DLabel, welche ich mitten im Gebiet erstellen möchte, die den Besitzer des Gebietes angeben. Den Namen des Gebietes (in diesem Fall "Flugzeugfriedhof" sollte auch rein)habe ich aber vergessen...
Float:gzp_y,
Float:gzp_z,
gz_name[MAX_PLAYER_NAME],
gz_besitzer,
gz_id,
gzid_x
}
Hier werden unter OnGameModeInit alle Gebiete geladen:
//GF Gebiete laden
new gzquery[128];
format(gzquery,sizeof(gzquery),"SELECT * FROM gz");
mysql_function_query(dbhandle,gzquery,true,"OnGzLoad","");
Mein Forward:
forward OnGzLoad();
der Public dazu:
public OnGzLoad()
{
new num_fields,num_rows,string[128];
cache_get_data(num_rows,num_fields,dbhandle);
if(!num_rows)return 1;
for(new i=0; i<num_rows;i++)
{
new id=getFreeGzID();
gzInfo[id][min_x] = cache_get_field_content_float(i,"min_x",dbhandle);
gzInfo[id][min_y] = cache_get_field_content_float(i,"min_y",dbhandle);
gzInfo[id][max_x] = cache_get_field_content_float(i,"max_x",dbhandle);
gzInfo[id][max_y] = cache_get_field_content_float(i,"max_y",dbhandle);
new tmp_name[MAX_PLAYER_NAME];
cache_get_field_content(i,"gz_name",tmp_name,dbhandle);
strmid(gzInfo[id][gz_name],tmp_name,0,sizeof(tmp_name),sizeof(tmp_name));
gzInfo[id][gz_besitzer] = cache_get_field_content_int(i,"gz_besitzer",dbhandle);
gzInfo[id][gz_id] = cache_get_field_content_int(i,"gz_id",dbhandle);
gzInfo[id][gzid_x] = GangZoneCreate(gzInfo[id][min_x],gzInfo[id][min_y],gzInfo[id][max_x],gzInfo[id][max_y]);
GangZoneShowForAll(gzInfo[id][gzid_x], fInfo[gzInfo[id][gz_besitzer]][f_gzcolor]);
CreatePickup(1239,1,gzInfo[id][gzp_x],gzInfo[id][gzp_y],gzInfo[id][gzp_z],0);
format(string,sizeof(string),"Gangzone der %s\nZum Erobern tippe /gf",fInfo[gzInfo[id][gz_besitzer]][f_name]);
Create3DTextLabel(string,Ak,gzInfo[id][gzp_x],gzInfo[id][gzp_y],gzInfo[id][gzp_z],15,0,1);
}
return 1;
}
getFreeGzID()
{
for(new i=0; i<sizeof(gzInfo);i++)
{
if(gzInfo[i][gz_id]==0) return i;
}
return 0;
}
Ich habe in der Mysql Datenbank schon ein Gebiet zum Test eingefügt, jedoch wird dieses nicht geladen und ich bekomme in der mysql log Datei folgenden Fehler
Die Datenbank:
gz_besitzer steht in dem Fall für die Gang/Mafia, der das Gebiet gehört, in diesem Fall die LCN: (ach ja und ak steht für weiß.)
//Fraktionen
new fInfo[][fraktEnum] = {
{"Zivilist", 1267.6949,1458.4530,10.8130,291.4855,0,0,Ak,Ak},
{"LVPD", 2281.9646,2424.5161,3.4692,356.6202,0,0,Ak,Ak},
{"La Cosa Nostra",937.8108,1733.3275,8.8516,271.5520,0,0,Ak,Dunkelblau},
{"FBI",1039.2556,1013.7105,11.0000,332.4610,0,0,Ak,Ak},
{"Da Nang Boys",2481.4900,1525.2753,11.7821,318.8811,0,0,Ak,Hellgrau},
{"Rote Guerilla",1105.7994,-299.8442,74.5391,81.3161,0,0,Ak,Ak},
{"Fahrschule",2199.4680,2719.3987,10.8203,16.0619,0,0,Ak,Ak},
{"SAMD",1603.6674,1815.5087,10.8203,351.9129,0,0,Ak,Ak},
{"Hitman",-932.7607,2026.6654,61.5907,222.0614,0,0,Ak,Ak}
};
Quellcode
Quellcode bearbeiten
- [21:27:42] [ERROR] CMySQLQuery::Execute[()] - (error #1064) 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 'WHERE id='1'' at line 1
Ich weiß, dass ich in letzter Zeit viel störe, jedoch möchte ich ein komplettes Selfmade auf die Beine stellen(bin auch schon gut dabei) und kann es nicht akzeptieren, einfach das, was ich nicht blicke, aus nem fremden GF zu kopieren.. Hoffentlich könnt ihr mir helfen..
MfG