Gibt es ein Biz System also kein Dynamisches wo man einfach die Cords,
Namen, Preis, Max Artikel angibt? Finde nämlich keins im Forum...
// bzw. gibt es ein Tutorial wie man das erstellt?
Bizsystem
- xFreeze
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Du findest so eins im Standart Godfather SoL Script.
Greetz
-
Ich will aber aus keinem GF raus kopieren o.o
-
Hier das habe ich eben in Forum gefunden ist zwar [DYNAMISCH]
aber ich finde es sehr schön
#define FILTERSCRIPT#include <a_samp>
#include <ocmd>
#include <dini>#define MAX_BIZZES 500
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()
{
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,"/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,"{FFD200}Benutzung:{FEFEFE} /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,"{FFD200}Benutzung:{FEFEFE} /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,"{FFD200}Benutzung:{FEFEFE} /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:bizzerstellen(playerid,params[])
{
new name[32],preis,level;
if(sscanf(params,"sii",name,preis,level)) return SendClientMessage(playerid,0xffff0000,"{FFD200}Benutzung:{FEFEFE} /bizzerstellen [Name] [Preis] [Level(score)]");
if(preis == 0 || level == 0) return SendClientMessage(playerid,0xffff0000,"{FFD200}Benutzung:{FEFEFE} /bizzerstellen [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:bizzloeschen(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return 1;
new id;
if(sscanf(params,"i",id)) return SendClientMessage(playerid,0xff000ff,"{FFD200}Benutzung:{FEFEFE} /bizzloeschen [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;
} -
Gibt es ein Biz System also kein Dynamisches wo man einfach die Cords,
Namen, Preis, Max Artikel angibt? Finde nämlich keins im Forum... -
@-iClouD Habe doch geschrieben kein Dynamisches aber ok, trotzdem danke
-
breadfish.de
Hat das Thema geschlossen.