Hallo Community!
Ich brauche hilfe bei mein Business system.
Es klappt nicht ganz richtig.
Ich möchte das er beim /createbiz den name speichert das level auch usw bzw das soll er alles im 3DTextLabel alles anzeigen.
Und ich möchte noch das jeder der ins biz rein geht geld bezahlen muss, der ebsitzer muss das geld festlegen.
Dieses soll auf die Business kaste die auch im 3DTextLabel angezeigt wird.
Sollte so eig versteh bar sein.
enum business {
bname[40],
b_besitzer[50],
blevel,
bepreis,
bkaufpreis,
bkasse,
binterior,
bpickup,
Float:bx,
Float:by,
Float:bz
}
enum bizinterior{
Float:ix,
Float:iy,
Float:iz,
binterior
}
new bInfo[200][business];
new inBiz[MAX_PLAYERS] = -1;
new bInterior[][bizinterior] = {
{-2159.122802,641.517517,1052.381713,0},
{2169.461181,1618.798339,999.976562,1}
};
#define MAX_BIZ 200
for(new biz = 1; biz<MAX_BIZ; biz++)
{
LadeBiz(biz);
}
ocmd:createbiz(playerid,params[])
{
for(new biz = 1; biz<MAX_BIZ; biz++)
{
if(pInfo[playerid][padmin] >=1337)
{
new b_bname[40], level, preis, kasse, interior;
if(sscanf(params,"siiii",b_bname[39], level, preis, kasse, interior))return SendClientMessage(playerid,COLOR_GRAU,"Verwendung: /createbiz [bizname] [level] [kaufpreis] [kasse] [interiorid 0-1]");
b_bname = bInfo[biz][bname];
level = bInfo[biz][blevel];
preis = bInfo[biz][bkaufpreis];
kasse = bInfo[biz][bkasse];
interior = bInfo[biz][binterior];
new pfad[50];
format(pfad,50,"/Biz/%d,txt",biz);
dini_Set(pfad,"bizname",b_bname);
dini_IntSet(pfad,"level",level);
dini_IntSet(pfad,"preis",preis);
dini_IntSet(pfad,"kasse",kasse);
dini_IntSet(pfad,"interior",interior);
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateBiz(x,y,z,b_bname,"Keiner",level,preis,kasse,interior);
}
else
{
SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht befugt diesen befehl zu nutzen!");
}
return 1;
}
return 1;
}
ocmd:kaufen(playerid,params[])
{
for(new biz=1;biz<MAX_BIZ;biz++)
{
if(IsPlayerInRangeOfPoint(playerid,5,bInfo[biz][bx],bInfo[biz][by],bInfo[biz][bz]))
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof name);
if(strcmp(bInfo[biz][bname],name,false) == 0)return SendClientMessage(playerid,0x00FF00,"Dieses BIZ gehört dir bereits!");
if(strcmp(bInfo[biz][bname],"Keiner",false))return SendClientMessage(playerid,0x00FF00,"Dieses BIZ steht nicht zum Verkauf!");
if(GetPlayerMoney(playerid) < bInfo[biz][bkaufpreis])return SendClientMessage(playerid,0x00FF00,"Du hast nicht genug Geld!");
GivePlayerMoney(playerid,-bInfo[biz][bkaufpreis]);
new pfad[50];
format(pfad,50,"/Biz/%d.txt",biz);
dini_Set(pfad,"besitzer",name);
KillBiz(biz);
LadeBiz(biz);
}
}
return 1;
}
ocmd:enter(playerid,params[])
{
for(new biz=1;biz<MAX_BIZ;biz++)
{
if(IsPlayerInRangeOfPoint(playerid,5,bInfo[biz][bx],bInfo[biz][by],bInfo[biz][bz]))
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof name);
if(strcmp(bInfo[biz][b_besitzer],name,false) == 0)
{
new innenraum = bInfo[biz][binterior];
SetPlayerPos(playerid,bInterior[innenraum][ix],bInterior[innenraum][iy],bInterior[innenraum][iz]);
SetPlayerInterior(playerid,bInterior[innenraum][binterior]);
inBiz[playerid] = biz;
}
else SendClientMessage(playerid,0x00FF00,"Du bist nicht der Besitzer! Du darfst hier nicht rein!");
}
return 1;
}
return 1;
}
ocmd:exit(playerid,params[])
{
if(inBiz[playerid] == -1)return SendClientMessage(playerid,0x00FF00,"Du bist in keinem BIZ!");
new biz = inBiz[playerid];
new innenraum = bInfo[biz][binterior];
if(!IsPlayerInRangeOfPoint(playerid,5,bInterior[innenraum][ix],bInterior[innenraum][iy],bInterior[innenraum][iz]))return SendClientMessage(playerid,0x00FF00,"Du bist nicht am Ausgang!");
SetPlayerPos(playerid,bInfo[biz][bx],bInfo[biz][by],bInfo[biz][bz]);
SetPlayerInterior(playerid,0);
SendClientMessage(playerid,0x00FF00,"Du hast das Biz verlassen!");
inBiz[playerid] = -1;
return 1;
}
OnPlayerPickupPickup
for(new i=1;i<MAX_BIZ;i++)
{
if(bInfo[i][bpickup] == pickupid)
{
new string[128];
format(string,sizeof(string),"BusinessName: %s\nBesitzer: %s\nPreis: %d\nLevel: %d\nKasse: %d",bInfo[i][bname],bInfo[i][b_besitzer],bInfo[i][bkaufpreis],bInfo[i][blevel],bInfo[i][bkasse]);
Create3DTextLabel(string,COLOR_GRAU,bInfo[i][bx],bInfo[i][by],bInfo[i][bz],20.0,0,1);
}
return 1;
}
stock CreateBiz(Float:x,Float:y,Float:z,bizname[40],besitzer[50],level,kpreis,kasse,interior)
{
new pfad[64];
for(new biz; biz<MAX_BIZ; biz++)
{
format(pfad,sizeof(pfad),"/Biz/%d.txt",biz);
if(!fexist(pfad))
{
dini_Create(pfad);
dini_FloatSet(pfad,"x",x);
dini_FloatSet(pfad,"y",y);
dini_FloatSet(pfad,"z",z);
dini_Set(pfad,"bizname",bizname);
dini_Set(pfad,"besitzer",besitzer);
dini_IntSet(pfad,"level",level);
dini_IntSet(pfad,"preis",kpreis);
dini_IntSet(pfad,"kasse",kasse);
dini_IntSet(pfad,"interior",interior);
return LadeBiz(biz);
}
}
return 0;
}
stock LadeBiz(bizid)
{
new pfad[64];
format(pfad,50,"/Biz/%d.txt",bizid);
if(!fexist(pfad))return 0;
bInfo[bizid][bx] = dini_Float(pfad,"x");
bInfo[bizid][by] = dini_Float(pfad,"y");
bInfo[bizid][bz] = dini_Float(pfad,"z");
format(bInfo[bizid][bname],40,"%s",dini_Get(pfad,"bizname"));
format(bInfo[bizid][b_besitzer],50,"%s",dini_Get(pfad,"besitzer"));
bInfo[bizid][blevel] = dini_Int(pfad,"level");
bInfo[bizid][bkaufpreis] = dini_Int(pfad,"preis");
bInfo[bizid][bkasse] = dini_Int(pfad,"kasse");
bInfo[bizid][binterior] = dini_Int(pfad,"interior");
bInfo[bizid][bpickup] = CreatePickup(1272,1,bInfo[bizid][bx],bInfo[bizid][by],bInfo[bizid][bz],0);
return print("Das Business wurde erfolgreich geladen");
}
stock KillBiz(bizid)
{
return DestroyPickup(bInfo[bizid][bpickup]);
}