Beiträge von sLy

    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!

    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<...) ?

    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"))

    Hallo :P


    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 :P


    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 :P


    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 ?

    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;
    }