Guten Abend Breadfish
Ich habe weiß nicht wie ich das anfangen soll das meine Firmengeländepickups nach dem Kauf/Verkauf zurück gesetzt werden.
Desweiteren möchte ich auch das man den Namen des Firmengeländes selbst eintippen kann über ein Textdraw aber ich weiß nicht so ganz wie das gehen soll.
Mein Code sieht bis jetzt dank Jeffry so aus:
forward LadeFirma();
forward LoadFirmaDaten();
enum Firmengeleande
{
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]
}
new Firmengebiete[][Firmengeleande] =
{
{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}
};
public OnGameModeInit()
{
AddPlayerClass(115,329.0244,-1513.3033,36.0391,225.8344,0,0,0,0,0,0); // spawn
SetGameModeText("Reallife Version 0.1.4");
DisableInteriorEnterExits();
EnableStuntBonusForAll(0);
ManualVehicleEngineAndLights();
SendRconCommand("mapname <Las Santos>");
//mysql verbindung:
dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
print("Mysql wurde verbunden!");
mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);
for(new i;i<sizeof(Firmengebiete);i++)
{
CreatePickup(1239,1,777.0361,-1383.3553,13.7019);
Create3DTextLabel("Firmengelände Kaufen ja nein?",grün,777.0361,-1383.3553,13.7019,10,0,1);
CreatePickup(1239,1,912.7548,-1235.4043,17.2109);
Create3DTextLabel("Firmengelände Kaufen ja nein?",grün,912.7548,-1235.4043,17.2109,10,0,1);
return 1;
}
LadeFirma();
return 1;
}
public LadeFirma()
{
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;
}
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++)
{
Firmengebiete = cache_get_field_content_float(0,"Firmengebiete[i][Firmengeleande]", dbhandle); //Falls du dbhandle nutzt lassen ansonsten anpassen!
/*
und so musst du die weiteren Sachen laden, so sollte eigentlich ein LadeSystem aussehen!
Kannst aber von mir aus auch das auf Breadfish Teilen und Jeffry fragen
ob du das so nehmen kannst ;)
Ich schreibe so meine Lade Systeme und ich glaub das ist auch ganz einfach ;)
*/
}
}
return 1;
}
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;
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;
}
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
resetPlayer(playerid);
loadPlayerCars(playerid);
return 1;
}
Befehl:
ocmd:kaufefirmengelaende(playerid,params[])
{
if(sInfo[playerid][firma] != -1)return SendClientMessage(playerid,rot,"Fehler: Du Besitzt bereits eine Firma!");
for(new i;i<sizeof(Firmengebiete);i++)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, Firmengebiete[i][F_KaufX], Firmengebiete[i][F_KaufY], Firmengebiete[i][F_KaufZ]))
{
if(strlen(Firmengebiete[i][F_Besitzer]) > 2) return SendClientMessage(playerid, 0xFF0000FF, "Error: Diese Firma gehört bereits jemandem.");
GetPlayerName(playerid, Firmengebiete[i][F_Besitzer], MAX_PLAYER_NAME);
//Hier das Label aktualisieren.
sInfo[playerid][firma]= i;
GivePlayerMoney(playerid,-5000000);
return SendClientMessage(playerid, 0xFFFFFFFF, "Gekauft.");
}
}
return SendClientMessage(playerid, 0xFF0000FF, "Du bist nich am Kaufpunkt des Firmengelhaändes!");
}
public OnPasswordResponse(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//passwort Richtig
sInfo[playerid][eingeloggt] = 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
sInfo[playerid][firma] =cache_get_field_content_int(0,"firma",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
loadPlayerCars(playerid);
}
else
{
//Passwort Falsch
SendClientMessage(playerid,grün,"Du hast dein Passwort falsch eingetippt. Versuche es nochmal!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
return 1;
}
if(dialogid==DIALOG_LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
//Keine Eingabe
SendClientMessage(playerid,grün,"Gibt bitte dein Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
}
else
{
Kick(playerid);
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>5)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username, passwort, level, firma) VALUES ('%s',MD5('%s'), '1', '-1')",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
sInfo[playerid][level]=1;
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][firma]= -1;
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,helblau,"Dein Passwort muss mindestens 6 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Account Erstellung","Gebe bitte nun dein gewünschtes Passwort ein!","Erstellen","Abbrechen");
}
}
else
{
Kick(playerid);
}
}
Wenn ich was vergessen haben sollte Jeffry bitte melden.