Finde den BG unpassend !
Bf3 BG und SA-MP Logo
Aber sonst gut
Finde den BG unpassend !
Bf3 BG und SA-MP Logo
Aber sonst gut
Ja^^
Ich habe oben #define BIZ_FILES 5
und im Biz ordner ist immer 1 Datei
Ausserdem kommt wenn ich zB /bizkasse mache so oft die Nachricht , wie ich oben BIZ_FILES definiert hab!
So , neues Problem
Also , wenn ich /createbiz [Name] [Preis] mache , wird das biz erstellt und geladen.
In dem Scriptfiles ordner steht auch die Datei Biz1.txt.
Doch wenn ich dann nochmal /createbiz mache , passiert rein garnichts.
Es wird also keine neue Datei namens Biz2.txt erstellt.
Wenn ich nun Biz1.txt lösche , kann ich ingame wieder ein neues biz erstellen !
Code:
stock LoadBizz(bizid)
{
new Biz[64];
format(Biz,sizeof(Biz),"Biz/biz%d.txt",bizid);
if(dini_Exists(Biz))
{
bInfo[bizid][PossX] = dini_Float(Biz,"PosX");
bInfo[bizid][PossY] = dini_Float(Biz,"PosY");
bInfo[bizid][PossZ] = dini_Float(Biz,"PosZ");
format(bInfo[bizid][Namme],64,"%s",dini_Get(Biz,"Name"));
bInfo[bizid][Preis] = dini_Int(Biz,"Preis");
bInfo[bizid][Besetzt] = dini_Int(Biz,"Besetzt");
format(bInfo[bizid][Besitzer],64,"%s",dini_Get(Biz,"Besitzer"));
if(bInfo[bizid][Besetzt] == 0)
{
bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0);
new string[196];
format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: Staat\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Preis]);
bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0);
return print("Das Biz wurde erfolgreich geladen");
}
if(bInfo[bizid][Besetzt] == 1)
{
bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0);
new string[196];
format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: %s\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Besitzer],bInfo[bizid][Preis]);
bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0);
return print("Das Biz wurde erfolgreich geladen");
}
}
else
{
return 0;
}
return 1;
}
stock CreateBizz(Float:x,Float:y,Float:z,namme[64],besitzer[64],preis)
{
new Biz[64];
//new name[26],
// preis;
//new Float:X,Float:Y,Float:Z;
for(new b = 1; b <BIZ_FILES; b++)
{
format(Biz,64,"/Biz/biz%d.txt",b);
if(!dini_Exists(Biz))
{
dini_Create(Biz);
dini_FloatSet(Biz,"PosX",x);
dini_FloatSet(Biz,"PosY",y);
dini_FloatSet(Biz,"PosZ",z);
dini_Set(Biz,"Name",namme);
dini_IntSet(Biz,"Preis",preis);
dini_IntSet(Biz,"Besetzt",0);
dini_Set(Biz,"Besitzer",besitzer);
return LoadBizz(b);
}
else
{
return 0;
}
}
return 1;
}
ocmd:createbiz(playerid,params[])
{
new Float:x,Float:y,Float:z,preis;
new namme[64];
if(sscanf(params,"s[64]d",namme,preis))return SendClientMessage(playerid,Rot,"Fehler: /createbiz [Name] [Preis]");
{
GetPlayerPos(playerid,x,y,z);
CreateBizz(x,y,z,namme,"Staat",preis);
}
return 1;
}
Das mit der Schleife ist mir klar , nur ich weiß nicht wie ich die dini dateien öffne!
Ich muss ja
format(Biz,sizeof(Biz),"/Biz/%s.txt",name);//Bei Name weiß ichs ja nicht!
Und das Script soll halt automatisch den Namen rausfinden , damit der Spieler auch das richtige Biz kauft!
Hi^^
Wie kann ich eine Abfrage durch alle dini Dateien machen ? Ich Brauchs nähmlich für mein bizzsystem. Also wenn Spieler XY /bizzkasse eingibt , soll das bizz von SpielerXY gesucht werden !
Sagen wir du hast für jedes Biz eine Datei in einem Ordner.
Dann liest du jede Datei in einer Schleife aus.
In der Schleife erstellst du 4 Variablen.
Eine für den Namen und drei für die Koordinaten X, Y und Z.
Dann liest du alle Informationen in die Variable ein.
Wenn der Spieler nun in Reichweite des aktuellen Biz' ist, das gerade durchläuft, dann brichst du die Schleife ab und hast deinen Biz-Namen.
Wie mach ich denn eine Schleife , die durch alle Dateien geht ?
irgendwas mit for(new i=0; i<...) ?
Ich blick da grade einfach nicht durch :\
Ich muss ja abfragen , ob der Spieler in einem Biz steht.
Dafür brauche ich aber den "string" Biz[64];
Allerdings brauch ich für Biz[64]; ja auch den Namen des Bizzes , bzw allen bizzes!
Hast du vllt. Teamviewer ?
Mit einem if statement abfragen ob der Spieler in der nähe eines Punktes (InRangeOfPoint) ist.
Danach mit vielen else if statements die anderen Möglichkeiten abfragen.
Das war mir schon klar , aber ich brauch ja irgendwie den Namen des bizzes!
Also das steht ja
new Biz[64];
format(Biz,sizeof(Biz),"Biz/%s.txt",name); // Hier muss ja abgefragt werden , in welchem Biz der Spieler steht !
if(IsPlayerInRangeOfPoint(playerid,3.0,dini_Float(Biz,"X"),dini_Float(Biz,"Y"),dini_Float(Biz,"Z"))
Alles anzeigenHilft das eigentlich gegen Moneycheat ?
Also wenn ich statt GivePlayerMoney aGivePlayerMoney verwende ?
stock aGivePlayerMoney(playerid,amount)
{
GivePlayerMoney(playerid,amount);
return 1;
}
Hallo
Ich arbeite grade an einem Bizsystem.
Nun weiß ich allerdings nicht mehr weiter , wie ich abfragen soll , ob der Spieler in einem Bizpunkt steht!
Sprich wenn der Spieler in Biz3 steht , soll dem Spieler das Geld von Biz3 abgezogen werden!
Und wenn er in Biz19 steht , das Geld von Biz19 usw!
ocmd:buybiz(playerid,params[])
{
new Biz[64];
format(Biz,sizeof(Biz),"Biz/%s.txt",name);
if(IsPlayerInRangeOfPoint(playerid,3.0,dini_Float(Biz,"X"),dini_Float(Biz,"Y"),dini_Float(Biz,"Z")) //Hier weiß ich nciht weiter!
{
GivePlayerMoney(playerid,-dini_Int(Biz,"Preis")); //Hier auch nicht!
}
return 1;
}
ocmd:createbiz(playerid,params[])
{
new name[26],
preis;
if(sscanf(params,"si",name,preis))return SendClientMessage(playerid,Rot,"Fehler: /createbiz [Name] [Preis]");
{
new Biz[64];
format(Biz,sizeof(Biz),"Biz/%s.txt",name);
if(!dini_Exists(Biz))
{
dini_Create(Biz);
dini_Set(Biz,"Name",name);
dini_IntSet(Biz,"Preis",preis);
dini_Set(Biz,"Besitzer","Staat");
dini_IntSet(Biz,"Frei",1);
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
dini_FloatSet(Biz,"X",X);
dini_FloatSet(Biz,"Y",Y);
dini_FloatSet(Biz,"Z",Z);
new string[256];
format(string,sizeof(string),"Ein Biz mit dem Namen %s und dem Preis von %i$ wurde erstellt.",name,preis);
SendClientMessage(playerid,Gruen,string);
}
else
{
SendClientMessage(playerid,Rot,"Das Biz existiert bereits!");
}
}
return 1;
}
ocmd:delbiz(playerid,params[])
{
new name[26];
if(sscanf(params,"si",name))return SendClientMessage(playerid,Rot,"Fehler: /delbiz [Name]");
{
new Biz[64];
format(Biz,sizeof(Biz),"Biz/%s.txt",name);
if(!dini_Exists(Biz))
{
SendClientMessage(playerid,Rot,"Das Biz existiert nicht!");
}
else
{
dini_Remove(Biz);
SendClientMessage(playerid,Rot,"Das Biz wurde erfolgreich gelöscht!");
}
}
return 1;
}
Heyho !
Ich würde gerne wissen , wie ich machen kann , dass die Zeit in Sekunden ausgegeben wird !
Sprich wenn man 3 Minuten und 30 Sekunden sitzt , soll dort nicht 3 Minuten stehen , sondern 210 Sekunden!
ocmd:knastzeit(playerid,params[])
{
new string[256];
new zeit;
new Spieler[64];
format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
zeit=dini_Int(Spieler,"Knastzeit")-pSinceArrested[playerid];
format(string,sizeof(string),"Du sitzt noch %i Minuten im Knast!",zeit);
SendClientMessage(playerid,Gelb,string);
return 1;
}
Hey
Also , ich habe mit SendAudioStreamForPlayer gemacht , dass wenn der Spieler mit der Deagle schiesst , ein Schussgeräusch kommt.
Nun hört man aber noch den Sound der normalen Deagle , und wenn man in den Optionen den Sound runter macht , hört man ja garnichts mehr :O
Ist es irgendwie möglich den Sound der Deagle per Script auszuschalten ?
Hey
Hab ein paar Fragen zu diesen Streamern
1. Was bringen sie , bzw was haben sie für Vorteile ?
2. Muss ich im Script etwas ändern ?
3. Welcher ist der beste / Wo kann ich den Streamer downloaden ?
Okay es geht , danke
Ich habs jetzt so , aber es geht immernoch nicht , sprich die Nachricht wird immernoch 4x ausgegeben!
ocmd:schluesseldienst(playerid,params[])
{
new rand=random(3);
for(new i=0; i<sizeof(schluesseldienstcar);i++)
{
if(IsPlayerInVehicle(playerid,schluesseldienstcar[0])||IsPlayerInVehicle(playerid,schluesseldienstcar[1])||IsPlayerInVehicle(playerid,schluesseldienstcar[2])||IsPlayerInVehicle(playerid,schluesseldienstcar[3]))
{
if(schluesseldienstbool[playerid]==false)
{
if(rand==0)
{
SendClientMessage(playerid,Gelb,"***Job gestartet***");
SendClientMessage(playerid,Gelb,"Fahre die Checkpoints ab , um Geld zu erhalten!");
Schluesseldienstvar[playerid]=1;
schluesseldienstbool[playerid]=true;
SetPlayerCheckpoint(playerid,1906.0430,-1112.9438,26.6641,5.0);
Schluesselcheckpoint[playerid] = 1;
}
if(rand==1)
{
SendClientMessage(playerid,Gelb,"***Job gestartet***");
SendClientMessage(playerid,Gelb,"Fahre die Checkpoints ab , um Geld zu erhalten!");
Schluesseldienstvar[playerid]=2;
schluesseldienstbool[playerid]=true;
SetPlayerCheckpoint(playerid,295.2440,-1764.6034,4.2865,5.0);
Schluesselcheckpoint[playerid] = 1;
}
if(rand==2)
{
SendClientMessage(playerid,Gelb,"***Job gestartet***");
SendClientMessage(playerid,Gelb,"Fahre die Checkpoints ab , um Geld zu erhalten!");
Schluesseldienstvar[playerid]=3;
schluesseldienstbool[playerid]=true;
SetPlayerCheckpoint(playerid,1142.4746,-1093.3439,27.7645,5.0);
Schluesselcheckpoint[playerid] = 1;
}
}
else
{
SendClientMessage(playerid,Rot,"Du machst bereits deinen Job!");
}
}
else
{
SendClientMessage(playerid,Rot,"Du bist in keinem Schlüsseldienst-Auto !");
}
}
return 1;
}
Hallo
Also , mein Problem ist , wenn ich /schluesseldienst mache , und in keinem Schluesseldienst Auto bin , wird die Nachricht 4x geschickt.
Und wenn ich /schluesseldienst mache , wird 1x die Nachricht geschickt , dass ich den Job gestartet habe , und 3x das ich bereits in einem Job bin !
Screens:
Code:
ocmd:schluesseldienst(playerid,params[])
{
for(new i=0; i<sizeof(schluesseldienstcar);i++)
{
if(IsPlayerInVehicle(playerid,schluesseldienstcar[0])||IsPlayerInVehicle(playerid,schluesseldienstcar[1])||IsPlayerInVehicle(playerid,schluesseldienstcar[2])||IsPlayerInVehicle(playerid,schluesseldienstcar[3]))
{
new rand=random(3);
if(schluesseldienstbool[playerid]==false)
{
if(rand==1)
{
SendClientMessage(playerid,Gelb,"***Job gestartet***");
SendClientMessage(playerid,Gelb,"Fahre die Checkpoints ab , um Geld zu erhalten!");
Schluesseldienstvar[playerid]=1;
schluesseldienstbool[playerid]=true;
SetPlayerCheckpoint(playerid,1906.0430,-1112.9438,26.6641,5.0);
Schluesselcheckpoint[playerid] = 1;
}
if(rand==2)
{
SendClientMessage(playerid,Gelb,"***Job gestartet***");
SendClientMessage(playerid,Gelb,"Fahre die Checkpoints ab , um Geld zu erhalten!");
Schluesseldienstvar[playerid]=2;
schluesseldienstbool[playerid]=true;
SetPlayerCheckpoint(playerid,295.2440,-1764.6034,4.2865,5.0);
Schluesselcheckpoint[playerid] = 1;
}
if(rand==3)
{
SendClientMessage(playerid,Gelb,"***Job gestartet***");
SendClientMessage(playerid,Gelb,"Fahre die Checkpoints ab , um Geld zu erhalten!");
Schluesseldienstvar[playerid]=3;
schluesseldienstbool[playerid]=true;
SetPlayerCheckpoint(playerid,1142.4746,-1093.3439,27.7645,5.0);
Schluesselcheckpoint[playerid] = 1;
}
}
else
{
SendClientMessage(playerid,Rot,"Du machst bereits deinen Job!");
}
}
else
{
SendClientMessage(playerid,Rot,"Du bist in keinem Schlüsseldienst-Auto !");
}
}
return 1;
}
Hilft das eigentlich gegen Moneycheat ?
Also wenn ich statt GivePlayerMoney aGivePlayerMoney verwende ?
stock aGivePlayerMoney(playerid,amount)
{
GivePlayerMoney(playerid,amount);
return 1;
}
Vielleicht fragst du ab ob >i< Wanteds hat??
if(GetPlayerWantedLevel(i) >= 1)
Ist doch
Btw , habe richtig gefailt
Habe beim /su befehl vergessen das Wantedlevel des Players zu ändern xD
#closerequest