Hallo,
so ich habe jetzt nen Wert eingrtragen (Verkaufspreis von 10)
Und wenn ich nun den befehl /fcarsell eingebe steht das ich 0$ bekommen habe...
Lg
J0a9
Hallo,
so ich habe jetzt nen Wert eingrtragen (Verkaufspreis von 10)
Und wenn ich nun den befehl /fcarsell eingebe steht das ich 0$ bekommen habe...
Lg
J0a9
Zeig uns mal
fPrice
und
FactionCars[fc]
FractionsCars habe ich so deffiniert:
new FactionCars[MAX_FACTION_CARS][fCar];
Und das hier ist auch fPrice, wenn man es gekauft hat:
forward FRAC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
public FRAC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
if(dialogid == DIALOG_FACTION_CAR_BUY){
if(response){
new Float:pPos[3];
GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
TogglePlayerControllable(playerid,true);
}
if(!response){
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
if(IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
if(GetFactioncarsOfFaction(GetPlayerLeader(playerid)) < MAX_BUY){
new Carid1 = GetPlayerVehicleID(playerid);
for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
if(Carid1 == FactionBuylist[fbl][fbCarid]){
new fraktion = 0;
if(PlayerInfo[playerid][pLeader] > 0) fraktion = PlayerInfo[playerid][pLeader] - 1;
if(FraktionsKasse[fraktion] >= FactionBuylist[fbl][fbPrice]){
//if(GetPlayerMoney(playerid) >= FactionBuylist[fbl][fbPrice]){
//if(CallRemoteFunction("Script_GetPlayerMoney","i",playerid) >= FactionBuylist[fbl][fbPrice]){
for(new fc;fc<sizeof(FactionCars);fc++){
if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611){
FactionCars[fc][fVehid] = FactionBuylist[fbl][fbVehid];
FactionCars[fc][fPos][0] = FactionBuySpawn[0];
FactionCars[fc][fPos][1] = FactionBuySpawn[1];
FactionCars[fc][fPos][2] = FactionBuySpawn[2];
FactionCars[fc][fPos][3] = FactionBuySpawn[3];
new Color[2];
GetDefaultCarColorOfFaction(GetPlayerLeader(playerid),Color[0],Color[1]);
FactionCars[fc][fCol][0] = Color[0];
FactionCars[fc][fCol][1] = Color[1];
FactionCars[fc][fPrice] = FactionBuylist[fbl][fbPrice];
for(new slot;slot<14;slot++)
FactionCars[fc][fTuning][slot] = 0;
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
print(">>> Nach dem Autoerstellen!");
#if defined FACTION_CARS_LOCKABLE
fLockCar(FactionCars[fc][fCarid]);
FactionCars[fc][fLock] = true;
#endif
for(new f;f<5;f++)
{
FactionCars[fc][fFaction][f] = -255;
}
FactionCars[fc][fFaction][0] = GetPlayerLeader(playerid);
PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
// GivePlayerMoney(playerid, -FactionBuylist[fbl][fbPrice]);
FraktionsKasse[fraktion] -= FactionBuylist[fbl][fbPrice];
SaveFraktionsKassen();
//CallRemoteFunction("Script_SetPlayerMoney","id",playerid,(CallRemoteFunction("Script_GetPlayerMoney","i",playerid)-FactionBuylist[fbl][fbPrice]));
new Float:pPos[3];
GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
TogglePlayerControllable(playerid,true);
SendClientMessage(playerid,FACTION_COL_YELLOW,"Glückwunsch zum neuen Fahrzeug.");
SendClientMessage(playerid,FACTION_COL_YELLOW,"Bitte vergesse nicht das Fahrzeug mit: '/fpark' umzuparken.");
SendClientMessage(playerid,FACTION_COL_YELLOW,"Das Fahrzeug steht am Ausgabepunkt bereit!");
return 1;
}
}SendClientMessage(playerid,FACTION_COL_GREY,"Die maximale Anzahl von Fraktionsfahrzeugen ist bereits erreicht.");
}else SendClientMessage(playerid,FACTION_COL_GREY,"Du hast nicht genügend Geld auf der Fraktionskasse!");
break;
}
}
}else SendClientMessage(playerid,FACTION_COL_GREY,"Deine Fraktion hat das Limit von Fahrzeugen bereits erreicht.");
}else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
new Float:pPos[3];
GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
TogglePlayerControllable(playerid,true);
}
}return 1;
}return 0;
}
Lg
J0a9
Hallo,
sry falscherbefehl
Dieses soltle es sein:
if(strcmp(cmdtext,"/fcarsell",true)==0){
if(GetPlayerLeader(playerid)){
if(IsAllowedFactionToBuy(GetPlayerFaction(playerid))){
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
new Carid1 = GetPlayerVehicleID(playerid);
for(new fc;fc<sizeof(FactionCars);fc++){
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
if(Carid1 == FactionCars[fc][fCarid]){
if(FactionCars[fc][fFaction][0] == GetPlayerLeader(playerid)){
FactionCars[fc][fVehid] = -255;
if(DestroyVehicle(FactionCars[fc][fCarid]))
FactionCars[fc][fCarid] = -255;
new fText[178];
format(fText,sizeof(fText),"Du hast das Fraktionsfahrzeug erfolgreich für $%d(50%% vom Kaufpreis) verkauft.",(FactionCars[fc][fPrice]/2));
SendClientMessage(playerid,FACTION_COL_YELLOW,fText);
GivePlayerMoney(playerid,(FactionCars[fc][fPrice]/2));
}
else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht der besitzer dieses Fahrzeuges.");
return true;
}
}
}SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
}else SendClientMessage(playerid,FACTION_COL_GREY,"Du musst der Fahrer eines Fahrzeuges sein.");
}else SendClientMessage(playerid,FACTION_COL_GREY,"Deine Fraktion ist dazu nicht berechtigt.");
}else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
return true;
}
Hallo Breadfish-Communty,
ich habe ein folgendes Problem und zwar hatte ich vor einen Fraktionsautohaus zu scripten und ich habe dabei ein folgendes Problem, das wenn ich es verkaufen (mit /fcarsell) verschwindet das Auto es ist auch in der Datenbank dann gespeichert man bekommt aber nicht die Hälfte des Preises...
Der Befehl lautet:
if(strcmp(cmdtext,"/lfa",true)==0){
if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL){
for(new fc;fc<sizeof(FactionCars);fc++){
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
new Float:fX,Float:fY,Float:fZ;
GetVehiclePos(FactionCars[fc][fCarid],fX,fY,fZ);
if(IsPlayerInRangeOfPoint(playerid,4.0,fX,fY,fZ)){
FactionCars[fc][fVehid] = -255;
if(DestroyVehicle(FactionCars[fc][fCarid])){
FactionCars[fc][fCarid] = -255;
}return SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug entfernt.");
}
}
}
}else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
return true;
}
das dazugehöriges Enum:
enum fCar
{
fCarid,
fVehid,
Float:fPos[4],
fCol[2],
fFaction[5],
fTuning[14],
fPrice,
fCarArrest,
#if defined FACTION_CARS_LOCKABLE
bool:fLock
#endif
};
Forwards zum Abspeichern:
forward LoadFactionCars();
forward SaveFactionCars(bool:destroy);
forward LockFactionCarDoors();
forward DestroyAndCreateFactionCar(fc);
Hier die Speicherfunktion:
public LoadFactionCars(){
if(!fexist(FACTION_CAR_FILE)){
new File:tfFile=fopen(FACTION_CAR_FILE,io_write);
fclose(tfFile);
}
new File:fFile=fopen(FACTION_CAR_FILE,io_read),Content[1024],fc;
while(fread(fFile,Content) && fc<sizeof(FactionCars)){
StripNewLine(Content);
sscanf(Content,"dffffdddddddddddddddddddddd",
FactionCars[fc][fVehid],
FactionCars[fc][fPos][0],
FactionCars[fc][fPos][1],
FactionCars[fc][fPos][2],
FactionCars[fc][fPos][3],
FactionCars[fc][fCol][0],
FactionCars[fc][fCol][1],
FactionCars[fc][fFaction][0],
FactionCars[fc][fFaction][1],
FactionCars[fc][fFaction][2],
FactionCars[fc][fFaction][3],
FactionCars[fc][fFaction][4],
FactionCars[fc][fTuning][0],
FactionCars[fc][fTuning][1],
FactionCars[fc][fTuning][2],
FactionCars[fc][fTuning][3],
FactionCars[fc][fTuning][4],
FactionCars[fc][fTuning][5],
FactionCars[fc][fTuning][6],
FactionCars[fc][fTuning][7],
FactionCars[fc][fTuning][8],
FactionCars[fc][fTuning][9],
FactionCars[fc][fTuning][10],
FactionCars[fc][fTuning][11],
FactionCars[fc][fTuning][12],
FactionCars[fc][fTuning][13],
FactionCars[fc][fPrice]);
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
#if defined FACTION_CARS_LOCKABLE
fLockCar(FactionCars[fc][fCarid]);
FactionCars[fc][fLock] = true;
#endif
#if defined FACTION_CARS_TUNEABLE
if(IsAllowedFactionToTune(FactionCars[fc][fFaction][0])){
if(FactionCars[fc][fTuning][0] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][0]); }
if(FactionCars[fc][fTuning][1] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][1]); }
if(FactionCars[fc][fTuning][2] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][2]); }
if(FactionCars[fc][fTuning][3] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][3]); }
if(FactionCars[fc][fTuning][4] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][4]); }
if(FactionCars[fc][fTuning][5] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][5]); }
if(FactionCars[fc][fTuning][6] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][6]); }
if(FactionCars[fc][fTuning][7] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][7]); }
if(FactionCars[fc][fTuning][8] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][8]); }
if(FactionCars[fc][fTuning][9] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][9]); }
if(FactionCars[fc][fTuning][10] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][10]); }
if(FactionCars[fc][fTuning][11] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][11]); }
if(FactionCars[fc][fTuning][12] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][12]); }
if(FactionCars[fc][fTuning][13] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][13]); }
}
#endif
fc++;
}
}fclose(fFile);
return printf(" '%d' Fraktionsfahrzeuge wurden geladen & erstellt.",fc);
}
public SaveFactionCars(bool:destroy){
if(fexist(FACTION_CAR_FILE)) fremove(FACTION_CAR_FILE);
new File:fFile=fopen(FACTION_CAR_FILE,io_append),Content[1024];
for(new fc;fc<sizeof(FactionCars);fc++){
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
format(Content,sizeof(Content),"%d %.3f %.3f %.3f %.3f %03d %03d %02d %02d %02d %02d %02d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\r\n",
FactionCars[fc][fVehid],
FactionCars[fc][fPos][0],
FactionCars[fc][fPos][1],
FactionCars[fc][fPos][2],
FactionCars[fc][fPos][3],
FactionCars[fc][fCol][0],
FactionCars[fc][fCol][1],
FactionCars[fc][fFaction][0],
FactionCars[fc][fFaction][1],
FactionCars[fc][fFaction][2],
FactionCars[fc][fFaction][3],
FactionCars[fc][fFaction][4],
FactionCars[fc][fTuning][0],
FactionCars[fc][fTuning][1],
FactionCars[fc][fTuning][2],
FactionCars[fc][fTuning][3],
FactionCars[fc][fTuning][4],
FactionCars[fc][fTuning][5],
FactionCars[fc][fTuning][6],
FactionCars[fc][fTuning][7],
FactionCars[fc][fTuning][8],
FactionCars[fc][fTuning][9],
FactionCars[fc][fTuning][10],
FactionCars[fc][fTuning][11],
FactionCars[fc][fTuning][12],
FactionCars[fc][fTuning][13],
FactionCars[fc][fPrice]);
fwrite(fFile,Content);
if(destroy == true){
if(DestroyVehicle(FactionCars[fc][fCarid]))
FactionCars[fc][fCarid] = -255;
}
}
}fclose(fFile);
return true;
}#
Ich bitte um Hilfe, wiegesagt ich möchte nur einstellen das man die hälfte zurückbekommt
Vielen Dank vorraus
Hallo,
ja kann man´s auch so machen...
jedoch je mehr PVars man nimmt desto mehr ressourcen verbraucht man...
Kann man jedoch machen wenn man genug ressourcen hat
Lg
J0a9
Hallo Icy. ,
oh stimmt
ist mir erst jetzt aufgefallen
aufjedenfall beide gehen
Lg
J0a9
Hallo,
hast du auch den BOTS ne "Spielerdatei" gemacht?
weil ohne Account werden die auch nicht connecten können allerdings ohne Passwirt!
Lg
J0a9
Welchen meinst du?
von welchen Developer ist denn der Streamer?
Hallo,
der Stremaer ist von Incognito...
Am Anfang fand ich sein Streamer toll aber so langsam naja nicht mehr so...
Gibt es da ne möglichkeit oder so?
Lg
J0a9
Hallo Breadfish-Community,
ich wollte euch fragen ob es möglich ist den Streamer (Version 2.7.4) etwas umzustellen?
Also von der Distanz her und von der Anzahl der geladenen Objecte?
Weil ich hab das erneute Problem das die Objecte total langsam laden...
Könnt ihr mir weiterhelfen?
Lg
J0a9
Hallo,
was hast du denn als letztes gescriptet ?
Gabs da Errors bzw Warnings?
Lg
J0a9
Haste mal versucht deine Plugins zu Updaten?
und/oder auf deinem serverlog jenachdem ob du Windows(mit.dll)/Linux(.so) Server hast einzustellen?
Lg
J0a9
Hallo SniperShot,
ich hab hier mal ein kleines Startbonus Befehl wie du es eventuell haben möchtest also das man es nur einmal verwenden kann/darf:
Das setzt du da wo du deine Befehle eingibst sprich OnPlayerComandText:
//Startbonus
if(strcmp(cmd, "/startbonus", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,X,Y,Z)) //Da wo man es eingeben kann
{
if(PlayerInfo[playerid][pStartbonus] == 1) //Falls in seinem Account eine 1 steht darf er es verwenden
{
format(string, sizeof(string), "* Du hast den {14A6C3}Startbonus{FFFFFF} bekommen. (Geld: +$3.000).");
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* Wir wünschen dir weiterhin viel Spaß beim Spielen auf {14A6C3}DEIN SERVERNAME{FFFFFF}!",sendername);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
GivePlayerMoney(playerid, 3000); /// Geld was der Spieler bekommt
PlayerInfo[playerid][pStartbonus] = 0; //Wird auf 0 gesetzt es heißt er darf das nicht mehr nutzen
//PlayerInfo[playerid][pLevel] = 3; // Level was der Spieler bekommt
}
else {
SendClientMessage(playerid, COLOR_RED, "** Du bist kein Anfänger (Level 1/2) mehr!");
return 1;
}
}
else
{
SendClientMessage(playerid, RED, "** Du bist nicht am Zivibahnhof!");
}
return 1;
}
Unter deinem Spielerenum gibst du:
pStartbonus
oder wie du´s nennen möchtest...
Unter OnPlayerConnect:
PlayerInfo[playerid][pStartbonus] = 0; //PlayerInfo ändern wenn du bei deinem Spielerenum etwas anderes definiert hast
Und das fügst du ein wenn man sich registriert hat und gespawnt wird oder nach deinem Tutorial kannst du es da auch einfügen:
PlayerInfo[i][pStartbonus] = 1;
ich hoffe ich konnte dir etwas weiterhelfen
P.S.: Schreibe diesen Thread bitte beim nächsten mal unter Script Base
Lg
J0a9
Alles anzeigen
Zitat von »J0a9«
Vl könnt ihr mir jetzt weiter helfen
Da ich ja knapp zwei Wochen fort war frage ich erst nach, bevor ich mir die Mühe mache deinen Code zu studieren:
Besteht das Problem noch, oder konntest du es bereits lösen?
Hallo,
ja das problem besteht immernoch...
Ich hab alles mögliche versucht aber nicht geklappt...
Habs auch versucht die bestehenden codes dafür zu entfernen dann falle ich immernoch aus der welt...
Kannst du mir weiterhelfen?
Lg
J0a9
Auf meinem Homerserver (einem Blank Gamemode) connected der NPC ja und alles läuft
Was ist denn jetzt das problem auf deinem Homeserver funktioniert es hast du ja gesagt wo funktioniert es denn nicht?
oder was genau meinst du?
Lg
J0a9
Hast du auch alles auf deinem Server hochgeladen?
Sprich auf deinem Rootserver oder da wo du es gehostet bekommst?
Schick ma bitte hier was in deinem Serverlog steht...
Also du hast in deiner Server.cfg die maxnpc auf ca 2 eingestellt und auch schon aufgenommen?
Du hast auch geschrieben das du den Recording Datein in npcmodes eingefügt hast du aber vor dem "recordings" ordner auch ne pwn datei?
Sollte so beinhaltet sein:
#include "a_npc"//Baut die Include "a_npc" ein
#define RECORDING "DEINBOTNAME"
main()
{
}
public OnRecordingPlaybackEnd()
{
StartRecordingPlayback(1, RECORDING);//1 = Aufnahmetyp - Fahrzeug, Recording = Der oben definierte Aufnahmename
}
public OnNPCEnterVehicle(vehicleid, seatid)
{
StartRecordingPlayback(1, RECORDING);//1 = Aufnahmetyp - Fahrzeug, Recording = Der oben definierte Aufnahmename
}
public OnNPCExitVehicle()
{
StopRecordingPlayback();
}
Weil das ist jetzt ne Abfrage das er das auch abspielt
Lg
J0a9
Hall TheChickenFighters,
hast du auch unter OnPlayerConnect ne Abfrage erstellt?
Also so:
if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid,botname,sizeof(botname));
if(!strcmp(botname,"DEINBOTNAME",true))
{
SetPlayerInterior(playerid,ID);
SetPlayerVirtualWorld(playerid,ID);
SetPlayerSkin(playerid,ID);
LoopingAnim(playerid,"PED","IDLE_CHAT",4.0,1,0,0,1,1); //Falls du ne Animation brauchst
}
}
Und Unter OnPlayerSpawn:
if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
if(!strcmp(botname, "DEINBOTNAME", true))
{
SetPlayerSkin(playerid, 165);
}
}
Weil sonst können die nich Connecten bzw nicht erscheinen...
Lg
J0a9
Hallo Beavis,
Da muss man schon etwas trixxen um das sauber hinzubekommen
nur die geschwindigkeit allein reicht nicht aus...
Hab da mal was gemacht gehabt um sowas einfach zu gestalten
[ INCLUDE ] B_Schranke 2.0 - Lass Schranken sanft rotieren >> Jetzt auch mit Türen <<
viielen viielen Dank!
Echt sauuu geiels Plugin
Du sag mal könnte ich falls ich eventuell mehr als 300 Schranken brauche im Include die Zahl ändern oder würde es Probleme geben?
Lg
J0a9
Hallo Breadfish-Community,
ich bäruchte Hilfe und zwar wie bekommt man es hin das eine Schranke flüssig sich öffnet?
Hier der Befehl:
if(strcmp(cmdtext,"/fetor", true) == 0)
{
if(PlayerInfo[playerid][pLeader] == 25||PlayerInfo[playerid][pMember] == 25)
{
if(FeuerDuty[playerid] == 1)
{
if(FwTorOpen[playerid] == 0)
{
if(IsPlayerInRangeOfPoint(playerid,10,1763.35669, -1142.40723, 23.82650))
{
MoveObject(fetor7,1763.35669, -1142.40723, 23.82650,3, 0.0000, 4.0000, 180.0000);
SendClientMessage(playerid, COLOR_YELLOW,"Das Tor von der LS-Feuerwehr REP-Punkt ist offen und schließt in 15 Sekunden");
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du bist nicht im Dienst!!!!!!");
}
}
return 1;
}
Dies geht derzeitig wenn man den Befehl eingibt sofort hoch und sofort runter...
Ich würds gern aber das es flüssiger läuft und nicht so zack hoch und zack unten ist...
Kann mir da einer weiterhelfen?
Vielen Dank im Vorraus
Lg
J0a9