Beiträge von Kaliber

    Nein NEin, das meine ich nicht. Ich meine den Schreibstyle. z.B mit den Klammern das man diese nicht in die nächste Zeile schreibt sondern direct neben z.B der Abfrage....
    Dies mach es meiner meinung nur unleserlich.


    Das hat immernoch nichts mit java zu tun...und ich finde es irgendwie besser...


    Kaliber
    Ich hab 3 punkte hintereinander bewegen lassen und das mit einer endlos schleife. Aber da gibt es ein Problem: ich hab bei allen drei punkten geschwindigkeit 5.0 eingetragen aber die bewegen sich manchmal unterschiedlich schnell


    Also, ich habe das gerade getestet, also bei mir funktioniert es einwandfrei und die beiden MapIcons sind zu 100% äquivalent :)


    Wie sieht denn dein Code aus (denn du brauchst eigentlich keine Endlosschleife ^^) ? :)


    mfg. :thumbup:

    Was ist ein callback?


    Also...du erstellst als erstes mit SetPlayerMapIcon das Icon für den Spieler.


    Dann fragst du irgendwann ab, ab wann es sich für den Spieler bewegen soll...da nutzt du dann:


    MovePlayerMapIcon...so und wenn das dann da an dem Ziel angekommen ist, wird folgendes aufgerufen:


    public OnPlayerMapIconMoved(playerid,iconid,Float:x,Float:y,Float:z) //Musst du bei dir iwo ins Skript halt schreiben
    {
    //Und hier prüftst du dann, ob der Spieler sich noch in der Nähe befindet...
    //Wenn ja dann setzt du mit SetPlayerMapIcon, das Icon wieder an die alte Positon und mit MovePlayerMapIcon...bewegst du es wieder dahin...
    }


    Sollte doch nicht soo schwer sein :rolleyes:


    mfg. :thumbup:

    Kaliber
    Eine Frage: wenn ich jetzt ein Mapicon bewegen lass bewegt sich das dann auf den punkt und bleibt dann dort oder erstellt sich das dann neu und bewegt sich dann wieder da hin?


    Das bewegt sich dahin, und bleibt dann dort.


    Aber, dafür habe ich ja den Callback gemacht, damit kannst du das dann einfach für den Spieler wieder auf die alte Position setzen und nochmal neu moven lassen ;)


    mfg. :thumbup:

    Habe Punkt 2 gemacht, aber das crasht ja auch, wenn ich eine float eingebe.


    case 1:
    {
    new Float:RadioMHz = floatstr(inputtext);


    Das hast du ja da stehen, schreibe das so:


    case 1:
    {
    printf("%s | %.02f",inputtext,floatstr(inputtext));
    new Float:RadioMHz = floatstr(inputtext);


    und dann zeig mal, was der ausgibt...


    mfg. :thumbup:

    "Teleportiert" sich das Icon von A nach B oder "fliegt" es (flüssig) von A nach B ?


    Wenn man das wollen würde, wäre das doch völlig nutzlos die Include, da man einfach das neu setzen könnte :rolleyes:


    Natürlich bewegt es sich "flüssig" dahin :)


    Wäre ganz lustig mal ein Video davon zu sehen


    Na...man kann sich doch denken wie das aussieht, wenn sich ein Map-Icon bewegt :D


    Ach noch eins - wenn ein Spieler sich auf der Karte befindet (im Hauptmenü von GTA) kann er sehen wie sich das Icon bewegt ?


    Leider nein, da OnPlayerUpdate nicht aufgerufen wird und somit de-synchronisiert ist in diesem Moment.


    mfg. :thumbup:


    //Edit: Habe einen Denkfehler gehabt, downloadet euch die neuen Includes ^^

    Hallo liebe Brotfische,


    Aufgrund der Idee eines Users, habe ich eine Include erstellt mit der es möglich ist, MapIcons & Checkpoints zu bewegen.


    Also, hier diese Funktionen bietet die Include:


    //Für MapIcons:
    MovePlayerMapIcon(playerid,iconid,Float:x,Float:y,Float:z,Float:speed);
    forward OnPlayerMapIconMoved(playerid,iconid,Float:x,Float:y,Float:z); //Callback wird aufgerufen, sobald MapIcon sich fertig bewegt hat


    //Für Checkpoints:
    MovePlayerCheckpoint(playerid,Float:x,Float:y,Float:z,Float:speed);
    forward OnPlayerCheckpointMoved(playerid,Float:x,Float:y,Float:z); //Callback wird aufgerufen, sobald Checkpoint sich fertig bewegt hat


    Was soll ich groß noch dazu sagen, das ist eigentlich alles selbsterklärend :D


    Falls Fragen bestehen, könnt ihr ja gerne sie in dem Thread stellen :)


    Ressourcen:
    Um euch selbst Ressourcen einzusparen gibt es folgende Möglichkeiten:
    #include <a_samp>
    #undef MAX_PLAYERS
    #define MAX_PLAYERS 100 //Oder eure entsprechende Slot-Anzahl!
    #include <mapIcon>


    Das wäre ein 1. Schritt nur MAX_PLAYERS auf 100 zu definieren.


    Wenn ihr nur eins von den Systemen nutzt, schreibt es so:


    #define _use_mapIcon //Jetzt würdet ihr nur die MapIcon Funktionen nutzen
    #include <mapIcon>


    //Oder wenn ihr nur Checkpoints nutzen wollt
    #define _use_CheckPoint
    #include <mapIcon>


    //Wenn ihr beides nutzt, schreibt es so:
    #define _use_BOTH
    #include <mapIcon>


    Download:
    Pastebin: http://pastebin.com/txsiidFf
    Mediafire: https://www.mediafire.com/?ozkhb9uv9kzcq7w


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


    mfg. :thumbup:


    //Edit: Fehler verbessert.
    //Edit²: Video
    //Edit³: Neue Version

    In so einem Fall könnte man natürlich die Fahrzeuge für den Cheater abgeschlossen erscheinen lassen.
    Sollte er sich dennoch rein buggen, müsste man einfach die Verbindung schließen. (Optional einfach aufs Auto porten)


    Was bringt das bitte, wenn der Spieler sie teleportiert, er setzt sich ja nicht rein...


    Da der Spieler ja nicht geupdated wird, sollte die Position und die Handlung des Spielers/Fahrzeuges nicht mit updaten wenn man auf wirklich alles achtet.


    Wie gesagt, das ist nicht 100%ig :rolleyes:

    1. Schreibe anstatt format(vRadio[vehicleid], 64," "); folgendes: strdel(vRadio[vehicleid],0,strlen(vRadio[vehicleid]));


    2. floatstr(inputtext) ... du solltest erstmal prüfen ob das überhaupt ein float ist, also inputtext, also an dieser Stelle mach mal einen print-Debug.


    3. else if(i == sizeof(vRadios)), diese Bedingung wird niemals eintreten, da i ja immer < sizeof(vRadios) sein muss :rolleyes:


    Punkt 2 ist am wichtigsten.


    mfg. :thumbup: