GT-MP => RageMP Bridge

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • GT-MP => RageMP Bridge

    Guten Morgen,
    ich bin gerade dabei ein kleines Script, nach RageMP zu portieren (mithilfe der C# Bridge).

    Ich habe aktuell folgende Funktion:

    C-Quellcode

    1. public static void CreateNewMainPed(string Pedname, Vector3 pos, Vector3 rot, string Labelname)
    2. {
    3. Ped p = NAPI.Ped.CreatePed(NAPI.Util.PedNameToModel(Pedname), pos, 0);
    4. NAPI.Entity.SetEntityRotation(p, rot);
    5. Color color1 = new Color(255, 102, 0);
    6. TextLabel label = NAPI.TextLabel.CreateTextLabel(Labelname, new Vector3(pos.X, pos.Y, pos.Z + 1), 10f, 1f, 2, color1);
    7. }


    und benutze diese wiefolgt beim Ressourcen Start:

    C-Quellcode

    1. [ServerEvent(Event.ResourceStart)] //OnResourceStart Event
    2. public void ResourceStart()
    3. {
    4. NAPI.Util.ConsoleOutput("Testserver gestartet..."); //Konsolenausgabe
    5. NAPI.World.SetTime(20, 15, 0); //Uhrzeit setzen
    6. //Baustellen Main-Peds
    7. CreateNewMainPed("Construct01SMY", new Vector3(-975.7557, 389.4647, 74.73041), new Vector3(0, 0, -68.42673), "Baustellen Max");
    8. CreateNewMainPed("Construct01SMY", new Vector3(-939.6711, 159.911, 65.97938), new Vector3(0, 0, -1.903647), "Baustellen Franko");
    9. CreateNewMainPed("Construct01SMY", new Vector3(36.48218, 6549.404, 31.42559), new Vector3(0, 0, -47.55606), "Baustellen John");
    10. CreateNewMainPed("Construct01SMY", new Vector3(1129.275, 2125.183, 55.54771), new Vector3(0, 0, -94.26735), "Baustellen Marcel");
    11. CreateNewMainPed("Construct01SMY", new Vector3(141.423, -379.5425, 43.25702), new Vector3(0, 0, 72.66428), "Baustellen Lucas");
    12. }
    Alles anzeigen


    Das Problem daran ist nun, dass die GTA:Network / RageMP Bridge, die serverseitige PED API noch nicht implementiert hat und die Konsole mir ausgibt, ich muss auf die client-seitige Ped API zurueckgreifen.
    Da ich absolut unvertraut mit dieser Materie, und auch mit NodeJS / JavaScript bin, frage ich hier um Hilfe. Wie kann ich das Ganze am besten lösen, dass ich das Ped clientseitig erstelle und dementsprechend die Rotation setze? Natuerlich sollte jeder Spieler das Ped sehen und es sollte nicht doppelt erstellt werden.

    Gruß,
  • MyU schrieb:

    wiki.rage.mp/index.php?title=Events::call
    Du erstellst auf dem Client ein Event der dieses tut, und rufst diesen vom Server aus für jeden Client der connected aus.
    Sprich könnte ich meine Funktion wiefolgt umbauen:

    C-Quellcode

    1. public static void CreateNewMainPed(Client player, string Pedname, Vector3 pos, Vector3 rot, string Labelname)
    2. {
    3. //Ped p = NAPI.Ped.CreatePed(NAPI.Util.PedNameToModel(Pedname), pos, 0);
    4. //NAPI.Entity.SetEntityRotation(p, rot);
    5. NAPI.ClientEvent.TriggerClientEvent(player, "mainped", Pedname, pos.X, pos.Y, pos.Z, rot.X, rot.Y, rot.Z);
    6. }

    und dann clientseitig:

    C-Quellcode

    1. mp.events.add("mainped", (client) => {
    2. mp.game.ped.createPed(4, Pedname, pos.X, pos.Y, pos.Z, 0, true, true);
    3. });
    Habe dies probiert funktioniert jedoch nicht wie gewollt.