Beiträge von Kaliber

    Und zwar wie im Titel schon beschrieben möchte ich gewisse Objecte mit Objecten schießen lassen.


    Du meinst wohl eher, dass Objekte sich auf Spieler zu bewegen und es so aussieht, als ob sie abgeschossen wurden?! :huh:


    Das machst du einfach mit der Funktion: MoveObject


    Und dann brauchst du halt eine Schleife...die die Spieler durchgeht und dann Positionen ermitteln...Objekt zu Spieler "schießen" (bewegen) lassen...fertig.


    mfg. :thumbup:


    Also, mal so nebenbei als Tipp, kannst du das alles auch noch viel einfacher schreiben:


    stock const Commands[][] = {
    "/ls","/skate","/bank1","/bank2","/transls","/sc","/market","/film","/lsmc",
    "/lsa","/ammuls","/beach","/sf","/sfa","/bank3","/ammusf","/sfm","/ct","/mh","/jizzy","/pier",
    "/golfsf","/lv","/satellite","/aa","/chilliad","/gfarm","/gl","/pine"
    };


    public OnPlayerCommandPerformed(playerid, cmdtext[], success)
    {
    for(new i; i<sizeof Commands; i++) if(!strcmp(cmdtext, Commands[i], true)) return TeleportMessages(playerid, cmdtext);
    return 1;
    }


    mfg. :thumbup:

    Ach mit dir zu diskutieren macht genau soviel Sinn , wie wenn ich das jetzt mit einer Wasserflasche auf meinem Schreibtisch tun würde.
    Ich sag nur soviel dazu mehrere NPCs => höhere Serverauslastung und abgesehen davon man möchte doch kein 500 Bots nur für solch eine Sequenz nutzen
    und die Bots auch anderweitig einsetzen.


    Sei nicht so patzig...


    NPCs werden vom Server genauso wie normale Spieler gehandhabt..also ist die Server-Auslastung wie bei normalen Spielern...


    Und wie gesagt, man kann es ja mit SetVehicleVelocity machen, nur...dadurch sieht man halt den Spieler nicht...nur ein Fahrendes Auto...


    Kann ja jeder machen wie er will... :rolleyes:

    Kaliber: TogglePlayerSpectating + PlayerSpectateVehicle + SetVehicleVelocity
    Das einzige dabei ist das man den Spieler nicht sieht, aber das ist ja nicht so gravierend man könnte die Camera auch dahinter fixxieren


    Darum geht es doch aber, dass man den Spieler sieht.


    Und wie gesagt, es ist viel einfacher kurz einen NPC zu machen und den dann zu spectaten, da der dann auch wirklich gut fährt und man einfach durch eine ChatBubble dem den Namen von dem Spieler geben könnte, somit vermittelt man das Gefühl, dass man selbst gerade fährt ;)


    mfg. :thumbup:

    Oder verstehe ich es gerade komplett falsch?


    Nein, natürlich muss man schon wissen, welche Strecke man den Spieler laufen lässt :wacko:


    Du machst doch auch keine InterpolateCamera, die dann irgendwo in der Wand hängt :rolleyes:


    Deshalb steht ja auch in meinem Text:


    Zitat von Kaliber

    Sprich, er läuft immer gerade aus, sollte das Ziel nicht auf der geraden Linie des Spielers sein, rennt er endlos (oder bis er vor ein Objekt läuft).


    mfg. :rolleyes:

    Okay bitte. :thumbup:


    Also, das ist keine gute Idee.


    Weil, wenn man es mit SetVehicleVelocity löst, dann muss man den Spieler freezen, sonst kann er sich ja bewegen, dadurch kann er aber die Kamera nicht mehr bewegen und das verfehlt einfach die Sache, die das bezwecken soll.


    Wenn man das mit einem Fahrzeug machen will, dann muss man halt eben einen NPC aufnehmen (das ist eh schöner und einfacher) :)


    mfg. :thumbup:

    Diese "Bedingung" ist doch recht eigenartig.
    Wäre es nicht effektiver 3 "Steps" zu haben ?


    0 -> Walk
    1 -> normal laufen
    2 -> Sprint


    Sollte man meinen...aber Walk = normal laufen...und Sprint ist halt sprinten. Es gäbe irgendwie noch run...aber sprint ist eigentlich schon schnell genug...


    Bei run müsste man wieder den Timer Tick runter setzen, sonst registriert der das ja nicht...hmm habe halt jetzt nur 2 gemacht, finde das reicht :S


    Man kann natürlich das auch gerne für seine Zwecke bearbeiten :)


    mfg. :thumbup:

    Hallo Brotfische :)


    Tut mir Leid, wenn ich mal wieder mit meiner Langeweile nerve :rolleyes:


    Also, es handelt sich hierbei darum, den Spieler zu bewegen, ohne dass er Tasten drücken muss ;)


    Die Include bietet folgende Funktion:


    MovePlayer(playerid,Float:x,Float:y,Float:z,bool:speed);
    /*
    playerid = spielerid von dem Spieler der bewegt werden soll
    x,y,z = Ziel Koordinaten, wenn der Spieler da angekommen ist, hört er auf sich zu bewegen.
    speed = Wenn ihr da false eingebt, läuft er und auf true rennt er.
    */


    UpdateMovement(playerid,Float:angle,Float:x,Float:y,Float:z);
    /*
    playerid = spielerid von dem Spieler der bewegt werden soll
    angle = Neue Richtung, wo der Spieler hinrennen soll
    x,y,z = Neuen Ziel Koordinaten
    */


    StopMovement(playerid); //Beendet das Laufen des Spielers



    forward OnPlayerMovementEnd(playerid);
    //Das hier wird aufgerufen, sobald der Spieler an den Zielkoordinaten angekommen ist.


    //<< Bitte Beispielskript mal durchlesen! >>


    Sehr Wichtig:
    Also, so funktioniert die Include:
    Der Spieler rennt bzw läuft zu den Ziel-Koordinaten und das ist abhängig von seiner FacingAngle wo er lang läuft, denn in die Richtung von dem Winkel bewegt der Spieler sich.
    Sprich, er läuft immer gerade aus, sollte das Ziel nicht auf der geraden Linie des Spielers sein, rennt er endlos (oder bis er vor ein Objekt läuft).
    Wenn man auch Kurven o.ä. laufen möchte, dann muss man das so:


    Richtungswechsel Beispiel:
    //Unter OnPlayerSpawn
    SetPlayerFacingAngle(playerid,90.0); //Die Richtung wo der Spieler hinlaufen soll
    MovePlayer(playerid,300.0,200.0,10.0,false); //Jaja ich weiß komische Koordinaten :D

    Richtungswechsel Beispiel:
    //Hier wichtig StopMovement verwenden!!
    //Das mit a ist nur ein Beispiel, man kann natürlich auch mit Spieler-Variablen o.ä. arbeiten :)
    public OnPlayerMovementEnd(playerid) {
    new Float:a;
    GetPlayerFacingAngle(playerid,a);
    if(89 <= a <= 91) //Kleiner Toleranzbereich
    {
    return UpdateMovement(playerid,180.0,692.6395,-1866.9785,5.2367);
    }
    return StopMovement(playerid); //das ist wichtig, sonst stoppt er niemals
    }


    Download:
    Source-Code: Pastebin
    Direkter-Download: Mediafire


    Schlusswort:
    Wenn man es richtig macht, läuft er die ganze Zeit flüssig auch in Kurven :)
    Und er läuft nicht durch Objekte! Sondern wie ein normaler Spieler!
    Während er läuft, kann er keine Tasten drücken, aber die Kamera bewegen.


    Würde mich über ein kleines Feedback freuen :)


    PS: Eigentlich wollte ich ein Video reinstellen...aber meine Upload-Rate ist einfach zu scheiße dafür, dass hätte jetzt ewig gedauert :D Er rennt bzw läuft einfach wie ein normaler Spieler, als ob ihr laufen würdet..nur ihr tut es halt nicht ^^


    mfg. :thumbup:


    //Edit: Einen Fehler gefixxt, damit keine leeren Funktionen entstehen.

    Nummer 1:
    Eine Bong oder eine Pfeife zum rauchen ( Am liebsten aber eine Bong )


    Gibt leider kein direkts Objekt dafür...kann man aber so grob zusammen bauen, mit den beiden Modelids:


    2726 & 1945


    Ist dann zwar eine Shisha...aber besser als nichts:



    Eine Spritze


    Das Objekt gibt es leider nicht & kann man sich auch nicht so zusammensetzen...


    Allerdings wurden Vorschläge dafür gemacht, als neue modelids...aber denke nicht, dass das umgesetzt wird :S


    mfg. :thumbup:

    Es wird nie das % zeichen angezeigt!


    Ja, wahrscheinlich willst du das % Zeichen in einer SendClientMessage ausgeben? :)


    Weißt du, dass wurde etwas dumm gemacht, aber so funktioniert es:


    Um in einer SendClientMessage ein % Zeichen auszugeben, muss man %% schreiben.
    In einem format aber, wird aus einem %% ein % gemacht, sprich man brauch das 2x, also muss der Code so aussehen:


    format(string,sizeof string,"Test 5%%%%");


    mfg. :thumbup: