Beiträge von [NeS]Hartzer

    Also ich wiederhol mich zum letzten mal.


    Wenns es wirklich nur passiert, wenn ein Spieler den Server verlässt, muss der Fehler unter OnPlayerDisconnect seint.


    Ich würde dir raten, den Fehler zu beheben und nicht mit nem Bot zu umgehen. Bringt dir nur noch mehr Probleme....


    da kann man sehen, dass du noch sehr unerfahren bist in sachen maps. dafür gibt es einen streamer. dieser packt sowas locker und das nix mit dem rechner zu tun. ;)
    der streamer von inconito pack mit den richtigen einstellungen locker 1000 obkejte im umkreis. aber wie gesagt, man muss wissen wie man mit ihm arbeitet. dann ist das dann völlig egal was man für einen rechner hat.


    Der Streamer packt das - keine Frage.


    Die ganzen Holz PC's von den Usern auf nem Server (z.B. RP/RL Server) allerdings nicht.

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == repair)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    }
    }
    else if(pickupid == nitro)
    {
    AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
    }
    return 1;
    }

    Wenn du ein Pickup erstellt hast, kannst du mit OnPlayerPickUpPickup abfragen, ob der Spieler in einem Pickup steht:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == BSN)
    {
    //Restlicher Code
    }
    }
    Dein Befehl macht garkeinen Sinn :D Du hast rein return und führst danach noch ganz normal Code aus. Kann garnich gehn :)
    if(GetPlayerMoney(playerid)<2)return SendClientMessage(playerid,0xFFFFFFFF, "Du hast nicht genügend Geld um dir das zu kaufen!");
    GivePlayerMoney(playerid,-2);
    SetPlayerHealth(playerid,100.0);
    SendClientMessage(playerid,0xFFFFFFFF, "Du hast dir für 2€ einen Hamburger gekauft. Guten Appetit!");
    return 1;


    So bin dann mal offline. Gute nacht und viel Spaß noch ^^

    Zu deinem 1. Problem:
    Hast du auch GivePlayerMoney verwendet?
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]); //Gegenfalls abändern!


    Zu deinem 2. Problem:
    Du möchstest deinen Stats Befehl verschönern? Tus doch einfach :D Hast ja schon mit den benötigten Funktionen gearbeitet:
    if(strcmp(cmdtext,"/stats",true,10) == 0) {
    new string[128];
    format(string,sizeof(string),"------------------>> Die Statistiken von %s <<--------------------------------",SpielerInfo[playerid][pName]); SendClientMessage(playerid,BLAU,string);
    format(string, sizeof(string),"Geld: %d\nAdminlevel: %d\nLevel: %d",SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pLevel]); SendClientMessage(playerid,BLAU,string);
    return 1; }

    Erstellst du das TextLabel nach dem formatieren des Strings oder davor?
    Wenn du es davor erstellst musst du den Text mit Update3DTextLabelText ändern.
    Sieht dann so aus:

    new Text3D:ID = Create3DTextLabel("Hallo Bla Bla",Rot, 30.0, 40.0, 50.0, 40.0, 0);
    new stringText[128];
    format(stringText, sizeof(stringText), "%d.", GetPlayerID(PlayerName));
    Update3DTextLabelText(ID, Rot, stringText);

    Du musst zuerst einen String erstellen und mit format die entsprechenden Variablen einfügen.
    Sieht später so aus:

    new string[128];
    format(string, sizeof(string),"Name: %s\nLevel: %d\nAlter: %d",SpielerInfo[playerid][pName], SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAlter]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Stats",string,"Ok");

    Ich geb dir mal eine logische Hilfe. Dann solltest du eigentlich selbst damit fertig werden.



    // Variablen für die X,Y und Z Koordinate erstellen
    new Float:PlayerX[MAX_PLAYER];
    new Float:PlayerY[MAX_PLAYER];
    new Float:PlayerZ[MAX_PLAYER];


    OnPlayerConnect(playerid)
    {
    //Hier musst du für PlayerX,PlayerY,PlayerZ die Daten auslesen. Entweder per DINI oder über eine MySQL Datenbank
    SetPlayerPos(playerid,PlayerX[playerid],PlayerY[playerid],PlayerZ[playerid]); // Setzt den Spieler an die angegebenen Koordianten
    }


    OnPlayerDisconnect(playerid, reason)
    {
    GetPlayerPos(playerid,PlayerX[playerid],PlayerY[playerid],PlayerZ[playerid]); //Speichert die aktuelle Position in die entsprechende Variable
    //Hier musst du die Variablen PlayerX,PlayerY,PlayerZ abspeichern. Entweder per DINI oder über eine MySQL Datenbank
    }