Beiträge von ReborN

    nur #define Nagelband ?
    Sonst nichts :o
    Wenn ja kann das ja nicht klappen.


    Mach das mal so:
    #define MAX_Nagelband MAX.Anzahl.Die.erstellt.werden.darf


    das ganze mit deinem NagelbandX in ein Enum:


    enum InfoNagelband
    {
    nErstellt,
    Float:NagelBandX,
    Float:NagelBandY,
    Float:NagelBandZ
    }


    dann das Nagelband erstellen:


    new NagelBand[MAX_NagelBand][InfoNagelband]


    aus deinen Stock dann dies machen:


    stock AddNagelBand(playerid) {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid, a);
    for(new i = 0; i <MAX_Nagelband; i++) {
    if(NagelBand[i][nErstellt] == 0) {
    NagelBand[i][NagelBandX] = x;
    NagelBand[i][NagelBandY] = y;
    NagelBand[i][NagelBandZ] = z - 0.7;
    NagelBand[i][nErstellt] = 1;
    NagelBand[i][ID] = CreateDynamicObject(2899,NagelBand[i][NagelBandX],NagelBand[i][NagelBandY],NagelBand[i][NagelBandZ]-0.7,0.0,0.0,a+90.0);
    return i;
    }
    }
    return 1;
    }


    So wenn ich jetzt nichts falsch habe, sollte es dann funktionieren.
    Einrücken darfst aber selbst xD


    //edit Fehler entfernt im enum
    //edit 2 Nochmal Fehler entfernt -.-

    NagelBand[i][ID] = CreateDynamicObject(2899, x, y, z - 0.7, 0.0, 0.0, a - 90.0);




    Wieso so? :o
    Das gehört doch in deinem Fall so:
    NagelBand[i][ID] = CreateDynamicObject(2899,NagelBand[i][NagelBandX],NagelBand[i][NagelBandY],NagelBand[i][NagelBandZ]-0.7,0.0,0.0,a+90.0);


    Du hast doch bei NagelBand[i][NagelBandX] nur die Positionen abgefragt, kannst doch nicht im gleichen wiederum die Nagelbänder so erstellen, wenn du z.b. schon z als NagelBand[i][NagelBandZ]

    Wenn du mit Bots arbeites verwende RNPC bzw. ARNPC (Fortsetzung)
    Dann erstellst du einfach einen Bot, den du danach wieder löscht und setzt den Spieler In die Virtual-World der playerid ^^
    (Falls es das war, was du meintest).


    L.G.
    heyho

    Ne RNPC & ARNPC benötige ich ja nicht.
    Das erstellen & löschen kann ich ja auch mit dem normalen Bot System.
    Auf das einfachste bin ich nicht gekommen, mit else if zu arbeiten.
    Danke [DT]midomen

    Hallo zusammen,
    ich muss jetzt eben mal nachfragen, da ich nicht weiter komme.
    Ich brauche eine Warteschleife für eine Art "Filmsequenz".
    Bisher habe ich folgendes:


    new InVideo;


    Zuordnen mit:
    InVideo++;
    Entfernen mit:
    InVideo--;


    Befehl sieht so aus:
    if(InVideo == 3)
    {
    Hier wird die Sequenz abgespielt
    }
    else
    {
    An die anderen Spieler eine Nachricht, dass es noch dauert
    }


    Wie mache ich es jetzt, dass ich sagen kann, macht gerade nur 1 Spieler die Filmsequenzen, dass es dann trotzdem abspielt.
    Es wäre ja ziemlich doof, wenn er warten müsste, bis weitere 2 Spieler dazu kommen.
    Hänge da ein wenig fest :/
    Hoffe mir kann jemand nen Tipp oder irgendwas anderes geben.
    Danke schon einmal für die Antworten.

    Ist die aber nicht drin..

    Ingame den Filterscript geladen?
    Wenn ja, hast du /vrecord NAME (auch eingeben ? )
    bzw. /ofrecord für Bots zu Fuss,
    hast du dann auch /stoprecord benutzt?
    Wenn ja, befindet sich die .rec Datei im Scriptfiles Ordner bei dir, mit dem Namen denn du eingeben hast.



    //edit
    @Azuru


    Wie du dann den Bot auf den Server bekommst,
    musst du folgendes machen:


    1. Nimm die .rec Datei verschiebe sie in Ordner -> npcmodes -> recordings
    2. Wenn du im Script beispiel: ConnectNPC("Bot1","BotTest"); geschrieben hast, musst du auch die .rec Datei in "BotTest" umbenennen, oder änderst den Namen "BotTest" in den Namen der .rec Datei um
    3. Die Datei die im Anhang von meinen Beitrag musst du bei "BOTNAME" den Namen von der .rec Datei eintragen, dann compilen und die .amx Datei unter Ordner -> npcmodes verschieben.
    In dieser Datei musst du ebenfalls bei Recording_Type ändern in 1 (Im Fahrzeug aufgenommener Bot) oder in 2 (zu Fuß aufgenommener Bot).

    Atomfisch


    Du hast da bißchen was vergessen.


    Wenn er einen Bot erstellt, welcher in ein Fahrzeug sitzt,
    muss er diesen auch eintragen im Script.
    oben:


    new autobot;



    Außerdem ist es unnötig die Bots bei OnPlayerDisconnect disconnecten zu lassen ...
    Bringt gar nichts, wenn er einen normalen Bot erstellt, welcher bis zum Server Shutdown connectet bleiben soll.



    Außerdem wenn er den Bot erstellt bei OnPlayerSpawn solltest du ebenfalls dazu sagen, dass er auch Scheine geben soll,
    ansonsten hüpft der Bot direkt wieder raus, dein OnPlayerSpawn ist ebenfalls unlogisch:


    if(IsPlayerNPC(playerid))
    {
    if(!strcmp(SpielerName(playerid),"BotName",true))
    {
    //Scheine zuweisen beispiel mit Spieler[playerid][SCHEINNAME] = 1;
    //Bot ins Auto bringen mit: PutPlayerInVehicle(playerid,BOTNAME,0);
    //Skin zuweisen
    }
    }
    //dadurch du oben ein if mit IsPlayerNPC erstellt hast, brauchst du das nicht bei jeden Bot abfragen sondern kannst mit if(!strcmp weiter arbeiten am schluss eben mit } beenden



    Zudem wieso lässt du den Bot bei OnPlayerConnect connecten?
    Mach es doch einfacher bei OnGameModeInit ?
    Unnötige Sachen. ...

    Naja das er jetzt die Animation ausführt wäre nicht einmal so wichtig xD
    Nach der Animation soll er den Spieler eine Art "schlüssel" für den Tresor geben.
    Jedoch kann ich den Bot anvisieren solange ich lustig bin, wenn er lachen könnte, würde er es über mich, da
    beim anvisieren rein gar nichts passiert.


    Also geht es mir eher darum, wieso ich den nicht anvisieren kann xD

    Hallo zusammen,


    ich habe hier eine Frage und verstehe nicht wirklich, wo mein Fehler liegt.


    Ich lasse hier auslesen, ob die ID der Bot ist:
    if(GetPlayerTargetPlayer(i) == GetPlayerIDBot("[BOT]Direktor"))



    Hier wiederum soll er die Animation ausführen:
    ApplyAnimation(GetPlayerIDBot("[BOT]Direktor"),"ped","handsup",2.1,0,1,1,1,1,1);



    Passieren tut nicht wirklich etwas :/


    Der Stock dazu lautet:
    stock GetPlayerIDBot(playername[])
    {
    new GetPlayerID_Name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    GetPlayerName(i,GetPlayerID_Name,MAX_PLAYER_NAME);


    if(!strcmp(GetPlayerID_Name,playername,true))
    {
    return i;
    }
    }
    return INVALID_PLAYER_ID;
    }


    Sieht jemand meinen Fehler?
    Die Ausführung des Bots ist in einem Timer, der jede paar millisekunden durchläuft.