Guten tag liebe Leute,
Nach reichlichem überlegen beschließe ich hiermit mein Werk (DBS.amx/DBS.pwn) [Dynamisches Business System] zu veröffentlichen.
Die Screens:
Bilder

Link: http://img7.imagebanana.com/img/g2ffaje8/bizzsystem.jpg

http://www.imagebanana.com/view/53rxioqj…ystemUPDATE.jpg
Die Funktionen sind:
/bizzkasse // Bizzkasse
/bizzkaufen und /bizzverkaufen // Das Ich dem Business icon stehe, 
vorraussetzung : Level , Geld und es darf nicht verkauft sein, man darf keins besitzen.
/cbizz // erstellt ein bizz -> /cbizz [NAME] [preis] [Score] -> Name = Name des Bizzes
/dbizz -> Löscht ein bizz , /dbizz [id] -> Die ID wird gelöscht
/bizzcredits -> Die credits
[ROT = RCON]
Ich hoffe ihr werdet das System gut benutzen , etc...
Wenn ich zeit habe werde ich dazu auch updates machen.
Der Code:
#define FILTERSCRIPT
#include <a_samp>
#include <ocmd>
#include <dini>
/* Credits: */
/*
	Die Credits gehen an : Myname1997
	Die Credits dürfen nicht entfernt werden.
*/
#define MAX_BIZZES 100
enum binfo
{
	bname[64],
	Float:bx,
	Float:by,
	Float:bz,
	bkasse,
	bpreis,
	blevel,
	bizz_pickup,
	Text3D:bizz_label,
	bBesitzt,
	bBesitzer[MAX_PLAYER_NAME],
	pProds
}
new BizzInfo[MAX_BIZZES][binfo];
new Produkte[MAX_PLAYERS];
new Key[MAX_PLAYERS];
public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print("Bizz-System by Myname1997\n");
	print("Bizzes Geladen...");
	print("--------------------------------------\n");
CreatePickup(1279,1,0,0,0,-1);
	for(new i=0;i<MAX_BIZZES;i++)
	{
		LB(i);
	}
	return 1;
}
public OnFilterScriptExit()
{
	for(new i=0;i<MAX_BIZZES;i++)
	{
		SB(i);
		KB(i);
	}
	return 1;
}
public OnPlayerConnect(playerid)
{
	LP(playerid);
	return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
	SP(playerid);
	return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
	if(strcmp(cmdtext,"/bhelp",true)==0)
	{
		SendClientMessage(playerid,0xff554455,"Kommand's: /bizzcredits , /bizzkaufen , /bizzverkaufen , /bizzkasse");
		if(IsPlayerAdmin(playerid))
		{
			SendClientMessage(playerid,0xff5444,"/cbizz , /dbizz");
		}
		return 1;
	}
	if (strcmp("/bizzcredits", cmdtext, true) == 0)
	{
		SendClientMessage(playerid,0xfff00ff,"Credits gehen an: Myname1997");
		return 1;
	}
	if(strcmp(cmdtext,"/produkte",true)==0)
	{
		new string[256];
		format(string,sizeof(string),"Produkte: %d",Produkte[playerid]);
		SendClientMessage(playerid,0xfffffffff,string);
		return 1;
	}
	return 1;
}
ocmd:beliefern(playerid,params[])
{
	for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
	{
		if(IsPlayerInRangeOfPoint(playerid,1,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz]))
		{
			new anzahl;
			if(Produkte[playerid] == 0) return SendClientMessage(playerid,0xffff0000,"keine Produkte bei ihnen!");
			if(BizzInfo[bizzid][pProds] == 500) return SendClientMessage(playerid,0xffff0000,"Diese Bizz hat volle Prods");
			if(sscanf(params,"i",anzahl)) return SendClientMessage(playerid,0xffff0000,"Benutzung: /beliefern [Prods]");
			if(anzahl > Produkte[playerid]) return SendClientMessage(playerid,0xffff0000,"nicht genug Produkte dabei");
			new string[256];
			format(string,sizeof(string),"Die Bizz kann nur 500Produkte lagern\n Derzeit: %d/500",BizzInfo[bizzid][pProds]);
			if(anzahl + BizzInfo[bizzid][pProds] > 500) return SendClientMessage(playerid,0xffffffff,string);
			BizzInfo[bizzid][pProds] += anzahl;
			Produkte[playerid] -= anzahl;
			SB(bizzid);
			KB(bizzid);
			LB(bizzid);
		}
	}
	return 1;
}
ocmd:prodsholen(playerid,params[])
{
	if(IsPlayerInRangeOfPoint(playerid,1,749.6315,-1333.1493,12.9859)) // coords müssen geändert werden (Abholpunkt für Produkte!)
	{
		new anzahl;
		if(Produkte[playerid] == 500) return SendClientMessage(playerid,0xffff0000,"du kannst keine Produkte mehr bei dir führen!");
		if(sscanf(params,"i",anzahl)) return SendClientMessage(playerid,0xffff0000,"Benutzung: /prodsholen [Prods]");
		if(GetPlayerMoney(playerid) < anzahl*50) return SendClientMessage(playerid,0xffffff,"Nicht genug Geld!! , Kosten pro Prod: 50$");
		new Geld = anzahl*50;
		new string[256];
		format(string,sizeof(string),"Zu Viele Produkte! , Derzeit: %d/500",Produkte[playerid]);
		if(anzahl + Produkte[playerid] > 500) return SendClientMessage(playerid,0xffffffff,string);
		Produkte[playerid] += anzahl;
		GivePlayerMoney(playerid,-Geld);
	}
	return 1;
}
ocmd:bizzkasse(playerid,params[])
{
	for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
	{
		if(IsPlayerInRangeOfPoint(playerid,1,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz]))
		{
			new name[MAX_PLAYER_NAME],aktion,geld;
			GetPlayerName(playerid,name,sizeof name);
			if(strcmp(BizzInfo[bizzid][bBesitzer],name,false) == 1)return SendClientMessage(playerid,0x00FF00,"Dieses Bizz gehört dir nicht!");
			if(sscanf(params,"ii",aktion,geld)) return SendClientMessage(playerid,0xffff0000,"Benutzung: /bizzkasse [Aktion] [Geld]   --->>>  1 = Auszahlen , 2 = Einzahlen");
        	new Kassengeld = BizzInfo[bizzid][bkasse];
			new string[256];
			if(aktion == 1) // Auszahlen
			{
				if(Kassengeld < geld) return SendClientMessage(playerid,0xfffff,"Soviel Geld haben sie nicht in ihrer Kasse");
				if(geld > 1000000 || geld <= 0) return SendClientMessage(playerid,0xfffff,"Bitte Summen von 1$ bis 1Mio$");
				GivePlayerMoney(playerid,geld);
				BizzInfo[bizzid][bkasse] -= geld;
				format(string,sizeof(string),"Geld Ausgezahlt\nGeld in der Kasse: $%d",BizzInfo[bizzid][bkasse]);
				SendClientMessage(playerid,0xffffff,string);
				SB(bizzid);
				KB(bizzid);
				LB(bizzid);
				return 1;
			}
			else if(aktion == 2) // Einzahlen
			{
				if(GetPlayerMoney(playerid) < geld) return SendClientMessage(playerid,0xfffff,"Soviel Geld haben sie nicht auf ihrer Hand");
				if(geld > 1000000 || geld <= 0) return SendClientMessage(playerid,0xfffff,"Bitte Summen von 1$ bis 1Mio$");
				GivePlayerMoney(playerid,-geld);
				BizzInfo[bizzid][bkasse] += geld;
				format(string,sizeof(string),"Geld Eingezahlt\nGeld in der Kasse: $%d",BizzInfo[bizzid][bkasse]);
				SendClientMessage(playerid,0xffffff,string);
				SB(bizzid);
				KB(bizzid);
				LB(bizzid);
				return 1;
			}
		}
	}
	return 1;
}
ocmd:bizzkaufen(playerid,params[])
{
	for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
	{
		if(IsPlayerInRangeOfPoint(playerid,1,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz]))
		{
			new name[MAX_PLAYER_NAME];
			GetPlayerName(playerid,name,sizeof name);
			if(BizzInfo[bizzid][bBesitzt] == 1)return SendClientMessage(playerid,0x00FF00,"Dieses Bizz steht nicht zum Verkauf!");
			if(Key[playerid] == 1) return SendClientMessage(playerid,0xfffff00,"Sie haben bereits ein Bizz");
			if(GetPlayerMoney(playerid) < BizzInfo[bizzid][bpreis]) return SendClientMessage(playerid,0xff00ff00,"Du hast nicht genug Geld für dieses Bizz");
			if(GetPlayerScore(playerid) < BizzInfo[bizzid][blevel]) return SendClientMessage(playerid,0xff00ff00,"Du hast nicht genug Score für dieses Bizz");
			GivePlayerMoney(playerid,-BizzInfo[bizzid][bpreis]);
			new BDatei[64];
			format(BDatei,50,"/bizzs/%d.txt",bizzid);
			dini_Set(BDatei,"Besitzer",name);
			dini_IntSet(BDatei,"Besitzt",1);
			BizzInfo[bizzid][bBesitzer] = name;
			BizzInfo[bizzid][bBesitzt] = 1;
			Key[playerid] = 1;
			SP(playerid);
			SB(bizzid);
			KB(bizzid);
			LB(bizzid);
		}
	}
	return 1;
}
ocmd:bizzverkaufen(playerid,params[])
{
	for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
	{
		if(IsPlayerInRangeOfPoint(playerid,1,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz]))
		{
			new name[MAX_PLAYER_NAME];
			GetPlayerName(playerid,name,sizeof name);
			if(strcmp(BizzInfo[bizzid][bBesitzer],name,false) == 1)return SendClientMessage(playerid,0x00FF00,"Dieses Bizz gehört dir nicht!");
			if(Key[playerid] == 0) return SendClientMessage(playerid,0xfffff00,"Sie haben kein Bizz");
			new Geld = BizzInfo[bizzid][bkasse];
			new BDatei[64];
			format(BDatei,50,"/bizzs/%d.txt",bizzid);
			dini_Set(BDatei,"Besitzer","Zu Verkaufen");
			BizzInfo[bizzid][bBesitzt] = 0;
			format(BizzInfo[bizzid][bBesitzer],32,"Zu Verkaufen");
			new string[256];
			format(string,sizeof(string),"Bizz für $%d verkauft",Geld);
			GivePlayerMoney(playerid,Geld);
			SendClientMessage(playerid,0xffff0000,string);
			Key[playerid] = 0;
			SP(playerid);
			SB(bizzid);
			KB(bizzid);
			LB(bizzid);
		}
	}
	return 1;
}
ocmd:cbizz(playerid,params[])
{
	new name[32],preis,level;
	if(sscanf(params,"sii",name,preis,level)) return SendClientMessage(playerid,0xffff0000,"Benutzung: /cbizz [Name] [Preis] [Level(score)]");
	if(preis == 0 || level == 0) return SendClientMessage(playerid,0xffff0000,"Benutzung: /cbizz [Name] [Preis] [Level(score)]");
	if(!IsPlayerAdmin(playerid)) return 1;
	new Float:x,Float:y,Float:z;
	GetPlayerPos(playerid,x,y,z);
	CB(x,y,z,name,level,preis);
	return 1;
}
ocmd:dbizz(playerid,params[])
{
	if(!IsPlayerAdmin(playerid)) return 1;
	new id;
	if(sscanf(params,"i",id)) return SendClientMessage(playerid,0xff000ff,"Benutzung: /dbizz [ID] -> Löscht ein bizz");
	DB(id);
	return 1;
}
stock KB(bizzid)
{
	SB(bizzid);
	DestroyPickup(BizzInfo[bizzid][bizz_pickup]);
	Delete3DTextLabel(BizzInfo[bizzid][bizz_label]);
	return 1;
}
stock SB(bizzid) /* Speichert ein Bizz */
{
	new BDatei[64];
	format(BDatei,50,"/bizzs/%d.txt",bizzid);
	dini_Set(BDatei,"Name",BizzInfo[bizzid][bname]);
	dini_Set(BDatei,"Besitzer",BizzInfo[bizzid][bBesitzer]);
	dini_IntSet(BDatei,"Besitzt",BizzInfo[bizzid][bBesitzt]);
	dini_FloatSet(BDatei,"X",BizzInfo[bizzid][bx]);
	dini_FloatSet(BDatei,"Y",BizzInfo[bizzid][by]);
	dini_FloatSet(BDatei,"Z",BizzInfo[bizzid][bz]);
	dini_IntSet(BDatei,"Level",BizzInfo[bizzid][blevel]);
	dini_IntSet(BDatei,"Preis",BizzInfo[bizzid][bpreis]);
	dini_IntSet(BDatei,"Kasse",BizzInfo[bizzid][bkasse]);
	dini_IntSet(BDatei,"Produkte",BizzInfo[bizzid][pProds]);
	return 1;
}
stock DB(bizzid) /* Löscht ein Bizz */
{
	new pfad[256];
	format(pfad,50,"/bizzs/%d.txt",bizzid);
	DestroyPickup(BizzInfo[bizzid][bizz_pickup]);
	Delete3DTextLabel(BizzInfo[bizzid][bizz_label]);
	new string[256];
	format(string,sizeof(string),"Bizz: %d wurde gelöscht",bizzid);
	print(string);
	dini_Remove(pfad);
	return 1;
}
stock CB(Float:x,Float:y,Float:z,name[],level,preis) /* Erstellt ein Bizz */
{
	new BDatei[64];
	for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
	{
		format(BDatei,50,"/bizzs/%d.txt",bizzid);
		if(!fexist(BDatei))
		{
			dini_Create(BDatei);
			dini_Set(BDatei,"Name",name);
			dini_Set(BDatei,"Besitzer","Zu Verkaufen");
			dini_IntSet(BDatei,"Besitzt",0);
			dini_FloatSet(BDatei,"X",x);
			dini_FloatSet(BDatei,"Y",y);
			dini_FloatSet(BDatei,"Z",z);
			dini_IntSet(BDatei,"Level",level);
			dini_IntSet(BDatei,"Preis",preis);
			dini_IntSet(BDatei,"Kasse",0);
			dini_IntSet(BDatei,"Produkte",300);
			return LB(bizzid);
		}
	}
	return 1;
}
stock LB(bizzid) /* Läd ein Bizz */
{
	new BDatei[64];
	format(BDatei,50,"/bizzs/%d.txt",bizzid);
	if(!fexist(BDatei))return 0;
	format(BizzInfo[bizzid][bname],32,"%s",dini_Get(BDatei,"Name"));
	format(BizzInfo[bizzid][bBesitzer],32,"%s",dini_Get(BDatei,"Besitzer"));
	BizzInfo[bizzid][bx] = dini_Float(BDatei,"X");
	BizzInfo[bizzid][by] = dini_Float(BDatei,"Y");
	BizzInfo[bizzid][bz] = dini_Float(BDatei,"Z");
	BizzInfo[bizzid][blevel] = dini_Int(BDatei,"Level");
	BizzInfo[bizzid][bpreis] = dini_Int(BDatei,"Preis");
	BizzInfo[bizzid][bkasse] = dini_Int(BDatei,"Kasse");
	BizzInfo[bizzid][bBesitzt] = dini_Int(BDatei,"Besitzt");
	BizzInfo[bizzid][pProds] = dini_Int(BDatei,"Produkte");
	BizzInfo[bizzid][bizz_pickup] = CreatePickup(1273 ,23,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz],0);
	new s[128];
	if(BizzInfo[bizzid][bBesitzt] == 0)
	{
		format(s,128,"****[%s]****\nBesitzer: %s\nPreis: %d$\nLevel: %d\nProdukte: %d/500",BizzInfo[bizzid][bname],BizzInfo[bizzid][bBesitzer],BizzInfo[bizzid][bpreis],BizzInfo[bizzid][blevel],BizzInfo[bizzid][pProds]);
    	//BizzInfo[bizzid][bizz_pickup] = CreatePickup(1273 ,23,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz],0);
	}
	else
	{
		format(s,128,"****[%s]****\nBesitzer: %s\nProdukte: %d/500",BizzInfo[bizzid][bname],BizzInfo[bizzid][bBesitzer],BizzInfo[bizzid][pProds]);
		//BizzInfo[bizzid][bizz_pickup] = CreatePickup(1239 ,23,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz],0);
	}
	BizzInfo[bizzid][bizz_label] = Create3DTextLabel(s,0xFF00FF,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz],20,0,1);
	return 1;
}
stock SP(playerid)
{
	new SDatei[64],name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
	format(SDatei,50,"/bizzs/player/%s.txt",name);
	if(fexist(SDatei))
	{
		if(Key[playerid] == 1)
		{
	    	dini_IntSet(SDatei,"Key",1);
		}
		else
		{
	    	dini_IntSet(SDatei,"Key",0);
		}
	}
	else
	{
		dini_Create(SDatei);
		if(Key[playerid] == 1)
		{
	    	dini_IntSet(SDatei,"Key",1);
		}
		else
		{
	    	dini_IntSet(SDatei,"Key",0);
		}
	}
	return 1;
}
stock LP(playerid)
{
	new SDatei[64],name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
	format(SDatei,50,"/bizzs/player/%s.txt",name);
	if(fexist(SDatei))
	{
		Key[playerid] = dini_Int(SDatei,"Key");
	}
	else
	{
		SP(playerid);
	}
	return 1;
}
stock sscanf(sstring[], format[], {Float,_}:...)
{
	#if defined isnull
		if (isnull(sstring))
	#else
		if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
	#endif
		{
			return format[0];
		}
	#pragma tabsize 4
	new
		formatPos = 0,
		sstringPos = 0,
		paramPos = 2,
		paramCount = numargs(),
		delim = ' ';
	while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
	{
		sstringPos++;
	}
	while (paramPos < paramCount && sstring[sstringPos])
	{
		switch (format[formatPos++])
		{
			case '\0':
			{
				return 0;
			}
			case 'i', 'd':
			{
				new
					neg = 1,
					num = 0,
					ch = sstring[sstringPos];
				if (ch == '-')
				{
					neg = -1;
					ch = sstring[++sstringPos];
				}
				do
				{
					sstringPos++;
					if ('0' <= ch <= '9')
					{
						num = (num * 10) + (ch - '0');
					}
					else
					{
						return -1;
					}
				}
				while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num * neg);
			}
			case 'h', 'x':
			{
				new
					num = 0,
					ch = sstring[sstringPos];
				do
				{
					sstringPos++;
					switch (ch)
					{
						case 'x', 'X':
						{
							num = 0;
							continue;
						}
						case '0' .. '9':
						{
							num = (num << 4) | (ch - '0');
						}
						case 'a' .. 'f':
						{
							num = (num << 4) | (ch - ('a' - 10));
						}
						case 'A' .. 'F':
						{
							num = (num << 4) | (ch - ('A' - 10));
						}
						default:
						{
							return -1;
						}
					}
				}
				while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num);
			}
			case 'c':
			{
				setarg(paramPos, 0, sstring[sstringPos++]);
			}
			case 'f':
			{
				new changestr[16], changepos = 0, strpos = sstringPos;
				while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
				{
					changestr[changepos++] = sstring[strpos++];
					}
				changestr[changepos] = '\0';
				setarg(paramPos,0,_:floatstr(changestr));
			}
			case 'p':
			{
				delim = format[formatPos++];
				continue;
			}
			case '\'':
			{
				new
					end = formatPos - 1,
					ch;
				while ((ch = format[++end]) && ch != '\'') {}
				if (!ch)
				{
					return -1;
				}
				format[end] = '\0';
				if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
				{
					if (format[end + 1])
					{
						return -1;
					}
					return 0;
				}
				format[end] = '\'';
				sstringPos = ch + (end - formatPos);
				formatPos = end + 1;
			}
			case 'u':
			{
				new
					end = sstringPos - 1,
					id = 0,
					bool:num = true,
					ch;
				while ((ch = sstring[++end]) && ch != delim)
				{
					if (num)
					{
						if ('0' <= ch <= '9')
						{
							id = (id * 10) + (ch - '0');
						}
						else
						{
							num = false;
						}
					}
				}
				if (num && IsPlayerConnected(id))
				{
					setarg(paramPos, 0, id);
				}
				else
				{
					#if !defined foreach
						#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
						#define __SSCANF_FOREACH__
					#endif
					sstring[end] = '\0';
					num = false;
					new
						name[MAX_PLAYER_NAME];
					id = end - sstringPos;
					foreach (Player, playerid)
					{
						GetPlayerName(playerid, name, sizeof (name));
						if (!strcmp(name, sstring[sstringPos], true, id))
						{
							setarg(paramPos, 0, playerid);
							num = true;
							break;
						}
					}
					if (!num)
					{
						setarg(paramPos, 0, INVALID_PLAYER_ID);
					}
					sstring[end] = ch;
					#if defined __SSCANF_FOREACH__
						#undef foreach
						#undef __SSCANF_FOREACH__
					#endif
				}
				sstringPos = end;
			}
			case 's', 'z':
			{
				new
					i = 0,
					ch;
				if (format[formatPos])
				{
					while ((ch = sstring[sstringPos++]) && ch != delim)
					{
						setarg(paramPos, i++, ch);
					}
					if (!i)
					{
						return -1;
					}
				}
				else
				{
					while ((ch = sstring[sstringPos++]))
					{
						setarg(paramPos, i++, ch);
					}
				}
				sstringPos--;
				setarg(paramPos, i, '\0');
			}
			default:
			{
				continue;
			}
		}
		while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
		{
			sstringPos++;
		}
		while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
		{
			sstringPos++;
		}
		paramPos++;
	}
	do
	{
		if ((delim = format[formatPos++]) > ' ')
		{
			if (delim == '\'')
			{
				while ((delim = format[formatPos++]) && delim != '\'') {}
			}
			else if (delim != 'z')
			{
				return delim;
			}
		}
	}
	while (delim > ' ');
	return 0;
}
Folgende Ordner müssen erstellt werden:
- Bizzs
- bizzs -> player (unterordner)
Nun Hoffe ich ihr genißt es dieses System zu benutzen,
Support per PN, ob ich es beantworte ne andere sache (:P)
MFG