Schönen Abend,
ich bin gerade dabei mein System umzuschreiben. Nur weiß ich gerade nicht wie ich vorgehen soll. Das Speichern hab ich schonmal gemacht. Nun wie könnte ich es beim laden machen? Benutze die MySQL Version R39-2.
So sieht zurzeit mein Save aus:
stock SaveGZ()
{
for(new i, query[500]; i <MAX_GZ; i++)
{
format(query, sizeof(query), "UPDATE Gangfight SET owner='%s', maxX='%f', maxY='%f', minX='%f', minY='%f', flaggeX='%f', flaggeY='%f', flaggeZ='%f', erstellt='%d', WHERE id='%d'",
GZ[i][owner], GZ[i][max_x], GZ[i][max_y], GZ[i][min_x], GZ[i][min_y], GZ[i][flagge_x], GZ[i][flagge_y], GZ[i][flagge_z], GZ[i][erstellt]);
mysql_pquery(handle, query);
}
return 1;
}
stock SaveGZ_(zoneid)
{
new query[500];
format(query, sizeof(query), "INSERT INTO Gangfight (id, owner, maxX, maxY, minX, minY, flaggeX, flaggeY, flaggeZ, erstellt) VALUES ('%d', '%s', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d')",
zoneid, GZ[zoneid][owner], GZ[zoneid][max_x], GZ[zoneid][max_y], GZ[zoneid][min_x], GZ[zoneid][min_y], GZ[zoneid][flagge_x], GZ[zoneid][flagge_y], GZ[zoneid][flagge_z], GZ[zoneid][erstellt]);
mysql_pquery(handle, query);
return 1;
}
So nun hier das Laden:
stock LoadGZ()
{
new i,gz[32],str[64],counter = 0; format(gz,32,G_FILE);
for(; i<MAX_GZ; i++)
{
GZ[i][zid] = i;
format(str,64,"Zone%d_owner",i); GZ[i][owner] = dini_Int(gz,str);
format(str,64,"Zone%d_maxX",i); GZ[i][max_x] = dini_Float(gz,str);
format(str,64,"Zone%d_maxY",i); GZ[i][max_y] = dini_Float(gz,str);
format(str,64,"Zone%d_minX",i); GZ[i][min_x] = dini_Float(gz,str);
format(str,64,"Zone%d_minY",i); GZ[i][min_y] = dini_Float(gz,str);
format(str,64,"Zone%d_flaggeX",i); GZ[i][flagge_x] = dini_Float(gz,str);
format(str,64,"Zone%d_flaggeY",i); GZ[i][flagge_y] = dini_Float(gz,str);
format(str,64,"Zone%d_flaggeZ",i); GZ[i][flagge_z] = dini_Float(gz,str);
format(str,64,"Zone%d_erstellt",i); GZ[i][erstellt] = dini_Int(gz,str);
format(str,64,"%d |Besitzer: '%s'",i,FrakName(GZ[i][owner]));
if(GZ[i][erstellt] != 1)continue;
M_CreateZone(GZ[i][min_x],GZ[i][min_y],GZ[i][max_x],GZ[i][max_y],FrakColor(GZ[i][owner]),str,FrakColor(GZ[i][owner]));
GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
GZ[i][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge' | Y/Z, um die Flagge zu erobern.",Rot,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],20,0);
counter ++;
break;
}
return printf(" '%d' Gangzone(n) wurde(n) erfolgreich erstellt und geladen.",counter);
}
stock LoadGZ_(zoneid)
{
new gz[32],str[64]; format(gz,sizeof(gz),G_FILE);
GZ[zoneid][zid] = zoneid;
format(str,64,"Zone%d_owner",zoneid); GZ[zoneid][owner] = dini_Int(gz,str);
format(str,64,"Zone%d_maxX",zoneid); GZ[zoneid][max_x] = dini_Float(gz,str);
format(str,64,"Zone%d_maxY",zoneid); GZ[zoneid][max_y] = dini_Float(gz,str);
format(str,64,"Zone%d_minX",zoneid); GZ[zoneid][min_x] = dini_Float(gz,str);
format(str,64,"Zone%d_minY",zoneid); GZ[zoneid][min_y] = dini_Float(gz,str);
format(str,64,"Zone%d_flaggeX",zoneid); GZ[zoneid][flagge_x] = dini_Float(gz,str);
format(str,64,"Zone%d_flaggeY",zoneid); GZ[zoneid][flagge_y] = dini_Float(gz,str);
format(str,64,"Zone%d_flaggeZ",zoneid); GZ[zoneid][flagge_z] = dini_Float(gz,str);
format(str,64,"Zone%d_erstellt",zoneid); GZ[zoneid][erstellt] = dini_Int(gz,str);
format(str,64,"%d |Besitzer: '%s'",zoneid,FrakName(GZ[zoneid][owner]));
M_CreateZone(GZ[zoneid][min_x],GZ[zoneid][min_y],GZ[zoneid][max_x],GZ[zoneid][max_y],FrakColor(GZ[zoneid][owner]),str,FrakColor(GZ[zoneid][owner]));
GZ[zoneid][pickup] = CreatePickup(1314,1,GZ[zoneid][flagge_x],GZ[zoneid][flagge_y],GZ[zoneid][flagge_z],0);
GZ[zoneid][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge' | Y/Z, um die Flagge zu erobern.",Rot,GZ[zoneid][flagge_x],GZ[zoneid][flagge_y],GZ[zoneid][flagge_z],20,0);
return 1;
}
Würde dies hier funktionieren?
GZ[zoneid][max_x] = cache_get_field_content_int(0, "maxX", handle);
Hoffe ihr könnt mir weiterhelfen
Mit freundlichen Grüßen
Grapefruit