GT-MP => RageMP Bridge

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Morgen,
    ich bin gerade dabei ein kleines Script, nach RageMP zu portieren (mithilfe der C# Bridge).


    Ich habe aktuell folgende Funktion:

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


    und benutze diese wiefolgt beim Ressourcen Start:



    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ß,

  • https://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
    public static void CreateNewMainPed(Client player, string Pedname, Vector3 pos, Vector3 rot, string Labelname)
            {
                //Ped p = NAPI.Ped.CreatePed(NAPI.Util.PedNameToModel(Pedname), pos, 0);
                //NAPI.Entity.SetEntityRotation(p, rot);
                NAPI.ClientEvent.TriggerClientEvent(player, "mainped", Pedname, pos.X, pos.Y, pos.Z, rot.X, rot.Y, rot.Z);
            }


    und dann clientseitig:

    C
    mp.events.add("mainped", (client) => {
        mp.game.ped.createPed(4, Pedname, pos.X, pos.Y, pos.Z, 0, true, true);
    });

    Habe dies probiert funktioniert jedoch nicht wie gewollt.