Guten Morgen Breadfish
Ich habe versucht mich an ein kleines Firmensystem dran gesetzt und bin bis jetzt nur soweit gekommen:
Code
enum Firmengebiet
{
Float:F_MinX,
Float:F_MinY,
Float:F_MaxX,
Float:F_MaxY,
Float:F_KaufX,
Float:F_KaufY,
Float:F_KaufZ,
F_Price,
F_Object,
Text3D:F_Label,
F_Besitzer[MAX_PLAYER_NAME]
}
Gelände-vergabe:
new Firma[2][Firmengebiet] =
{
{647.8892,-1384.1666,786.2288,-1329.5417,777.5681,-1379.9337,13.6566,5},
{930.1262,-1308.1982,807.7534,-1158.5909,912.7548,-1235.4043,17.2109,5}
};
Firma laden lassen:
public LoadFirmaDaten()
{
new num_fields, num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows > 0)
{
for(new i = 0; i<num_rows; i++)
{
Firma = cache_get_field_content_float(0,"Firmengebiete[i][Firmengeleande]", dbhandle); //Falls du dbhandle nutzt lassen ansonsten anpassen!
new query[56];
format(query, sizeof(query),"SELECT * FROM firma"); // *firma* musst du anpassen wie du deine Datenbankname benannt hast
mysql_function_query(dbhandle, query, false, "LoadFirmaDaten", "");
}
}
return 1;
}
Verbinden so wie Speichern und Laden des Spielers:
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
new nachricht[128];
format(nachricht,sizeof(nachricht),"Du bist mit der ID %i verbunden.",playerid);
SendClientMessage(playerid,rot,nachricht);
//Login/Register:
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT id FROM user WHERE username='%s' ",name);
mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
SendClientMessage(playerid,grün,"Willkommen auf Reallife Version 0.1.4! Wir wünschen euch ein angenehmen Spiel spaß bei uns!");
//textdraws anzeigen:
TextDrawShowForPlayer(playerid,Text:uhrzeitLabel);
TextDrawShowForPlayer(playerid, Jahr);
SetPlayerColor(playerid,weiß);
sInfo[playerid][level]=1;
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][firma]=-1;
loadPlayerCars(playerid);
return 1;
}
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;
//Speichern level,money
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
resetPlayer(playerid)
{
for(new i=0; i<sizeof(sInfo[]); i++)
{
sInfo[playerid][playerInfo:i]=0;
}
return 1;
}
Kaufbefehl für Firmengebiet:
ocmd:kaufefirmengelaende(playerid,params[])
{
if(sInfo[playerid][firma] != -1)return SendClientMessage(playerid,rot,"Fehler: Du Besitzt bereits eine Firma!");
for(new i;i<sizeof(Firma);i++)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, Firma[i][F_KaufX], Firma[i][F_KaufY], Firma[i][F_KaufZ]))
{
if(strlen(Firma[i][F_Besitzer]) > 2) return SendClientMessage(playerid, rot, "Error: Diese Firma gehört bereits jemandem.");
GetPlayerName(playerid, Firma[i][F_Besitzer], MAX_PLAYER_NAME);
//Hier das Label aktualisieren.
sInfo[playerid][firma]= i;
GivePlayerMoney(playerid,-5000000);
return SendClientMessage(playerid, grün, "Gekauft.");
}
}
return SendClientMessage(playerid, rot, "Du bist nich am Kaufpunkt des Firmengelhaändes!");
}
Alles anzeigen