Beiträge von InternetInk aka Benjamin

    Es gibt aber nur diesen Editor für SA-MP, mit MTA kann man 0.3c/d Objekte nicht mappen und auch nicht die Standard Objekte Removen.
    Man kann sich ne Objekt-Favoriten Liste anlegen dann hat man die wichtigesten zur Hand.


    //Edit
    Da ist ne anleitung bevor du auf Start drückst...


    Rechte Maustaste gedrückthalten+WASD

    http://wiki.sa-mp.com/wiki/SetPlayerCheckpoint


    Weil du Checkpoints keiner ID zuweisen kannst musste selbst eine mitlaufen lassen.
    Mit
    SetPVarInt(playerid,"TruckerCP",1);

    Unter OnPlayerEnterCeckpoint fragste dann ab ob er diese Variable auf 1 hat.
    if(GetPVarInt(playerid,"TruckerCP") == 1)
    Wenn ja sollten danach noch ein paar Abfragen kommen, ob er in einem Truck ist und ob er den Anhänger noch dran hat.
    Danach kannste den CP deaktivieren mit http://wiki.sa-mp.com/wiki/DisablePlayerCheckpoint
    Die Variable + 1 rechnen für den nächsten und den nächsten setzen, dann wenn er in dem nächsten ist einfach wieder abfragen ob die Variable 2 ist wenn ja dann alten ausblebend, variable +1 und den nächsten.
    usw usw

    magnus hat recht, das Godfather Script ist Open Source, das RGR Script ist ein Edit davon.
    Und die Leute denen das RGR Script "gehört" sind selbst schuld wenn es in umlauf kommt.


    Er kann dir also nichts, ganz sicher.


    Außerdem, Rechtsfragen werden hier nicht beantwortet.
    //Closed

    jou kannst es doch, was war daran nun so schwer?
    Am besten nach diese Abfrage:
    if(!IsPlayerConnected(pID))


    Also

    //
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_GRAD1,"Kein Spieler mit angegebener ID online");
    }
    if(PlayerInfo[pID][pAdmin] >= 1337)
    {
    return SendClientMessage(playerid,COLOR_GRAD1,"Das ist ein Admin den kannste nicht kicken!");
    }

    Wie gesagt, er nimmt die anderen Biz auchnoch mit rein obwohl die dir ja garnicht gehören.
    Das er nur Na anzeigt liegt daran das der teilstring den du nutzt grade groß genug dafür ist.


    Nimm den größeren string,den kleinen kannste dann löschen.
    Außerdem erstelle mal so viele biz wie in MAX_BIZZES vergeben.
    Als Inhalt einfach die Variablen mit Werten wie "Niemand" 0 0 oder sowas

    Er führt den Code in der Schleife aus, also wird auch der Befehl ausgeführt.
    Bzw fällt mir grade auf, die ShowPlayerDialog Zeile müsste so lauten:
    ShowPlayerDialog(playerid,0, DIALOG_STYLE_MSGBOX, "Firmen Infomationen", gesamterstring, "Schließen", "");
    Erst die DIALOG ID und dann den Style.
    Aber das hat mit dem eigentlichen Problem jetzt eher weniger zu tun.


    Wie liest du den Besitzernamen aus? Denn er dürfte dir eigentlich nur 1 Zeile ausgeben

    Entweder in meinem Code liegt ein Fehler oder du hast nicht richtig aus der Datei gelesen.
    Setz mal über die "//Erste Teil" Zeile das hier:


    printf("DEBUG: ID: %d Name: %s Einnahmen: %d Produkte: %d",i,BSystem[i][Biz_Name],BSystem[i][Biz_einahmen],BSystem[i][Biz_Produkte]);
    Ist nur ne Debug Zeile um zu sehen ob Werte in den Variablen stehen (und was für welche)


    Versuchs nochmal und Poste dann die Log stelle/n

    Du machst das sehr durcheinander und nicht ganz Nachvollziehbar.
    Unter der vorraussetzung das die Werte Korrekt gelesen werden:


    Also ich reflektiere mal, du willst die BizStatistik von dem User anzeigenlassen der diesen Befehl eingibt.
    Und er soll die Statistik seines Biz sehen.


    Dazu gehst du, oder bzw. willst du alle Dateien durchgehen und prüfen ob der User Besitzer von einem Biz ist.
    Gute Idee, aber wozu brauchst du den Dateipfad wenn do sowieso nicht aus der Datei liest?
    Du vergleichst mit dem Array, da brauchst du keinen Pfad.


    Die Zeile
    if(strcmp(BSystem[i][Biz_Besitzer],name) != 0) return SendClientMessage(playerid,ROT,"Du hast noch keine Firma");
    Ist unsinnig, warum? Wenn dem Spieler das erste Biz nicht gehört brichst du die Schleife ab mit der Nachricht "Du hast noch keine Firma"
    Ihm könnte aber Biz ID 2 gehören. Das return rausnehmen ist ebenfalls keine Lösung, für jedes Biz das ihm nicht gehört würde er diese Nachricht bekommen = Spam.


    So nun zum eigentlich Teil dem formatieren, wieso so komisch? string in einen neuen string formatieren?
    Besser wäre es einen kleinen zu haben, den immer neu zu formatieren und ihn dann in einen größeren zu packen.
    Das ergebniss wird erst am ende der Schleife ausgegeben, könnte ja sein das jemand mehrere Biz hat, so werden dann alle anzeigt.
    Achja ich habs mal zu einer MSGBOX gemacht.



    ocmd:bizstats(playerid,params[])
    {
    #pragma unused params
    new gesamterstring[128],teilstring[20],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    for(new i=0;i<MAX_BIZZES;i++)
    {
    if(strcmp(BSystem[i][Biz_Besitzer],name) == 0)
    {
    //Erste Teil
    format(teilstring,sizeof(teilstring),"Name: %s\n\n",BSystem[i][Biz_Name]);
    strins(gesamterstring,teilstring,strlen(gesamterstring));
    //Zweiter Teil
    format(teilstring,sizeof(teilstring),"Einahmen: %i\n",BSystem[i][Biz_einahmen]);
    strins(gesamterstring,teilstring,strlen(gesamterstring));
    //Dritter Teil
    format(teilstring,sizeof(teilstring),"Produkte: %i\n",BSystem[i][Biz_Produkte]);
    strins(gesamterstring,teilstring,strlen(gesamterstring));
    }
    }
    //Ergebniss
    ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Firmen Infomationen", gesamterstring, "Schließen", "");
    return 1;
    }


    Nicht getestet.
    //edit
    ShowPlayerDialog korrigiert

    @ Threadersteller


    Du solltest dich mal stark damit beschäftigen was du da eigentlich schreibst. Viele Funktionen haben garnicht so viele Parameter wie du angegeben hast.
    sscanf und andere Funktionen wurden falsch genutzt, du solltest dir vllt jemanden suchen der dir das erklärt.
    Du kannst sämtliche normalen funktionen auch in der Wiki-Suchleiste eingeben, dann bekommst du eine Übersicht aller Möglichen Parameter und immer ein Beispiel.



    ocmd:veh(playerid,params[])
    {
    new vID,Float:X, Float:Y, Float:Z, vC1, vC2, nschild[32];
    if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid,0xFFFFFFFF,"You don´t have permissons!");
    if(sscanf(params,"ddds[32]",vID,vC1, vC2, nschild)) return SendClientMessage(playerid,0xFFFFFFFF,"Benutzung: /veh [vID] [Color1] [Color2] [Nummernschild]");
    GetPlayerPos(playerid,X,Y,Z);
    new myveh = CreateVehicle(vID,X+2.0,Y+2.0,Z,0.0,vC1,vC2,-1);
    SetVehicleNumberPlate(myveh,nschild);
    LinkVehicleToInterior(myveh,GetPlayerInterior(playerid));
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast ein Vehicle gespawnt!");
    return 1;
    }