Suche spawn Script.

  • gujo schrieb:

    Schau mal hier im Forum da findest du bestimmt das richtige für dich.
    Hier....
    Ansonsten kann ich dir auch das Englische SA-MP Forum empfehlen, da du so oder so Englisch benötigst bei der Programmiersprache
    würde ich dir das Forum auch ans Herz legen.

    MfG

    BlackSpider schrieb:

    Hey leute bin in der Gt mp szene ganz neu.
    Führst ihn zum falschen Multiplayer

    B2t:
    Falls du die notwendigen Programmiersprachen schon kannst, dann schau dir mal das Wiki an (hier). Versuche dich eher an kleinen Sachen (Fahrzeug spawner, etc.) und arbeite dich langsam hoch. Fang nicht sofort mit einem server an, wenn du noch nicht einmal weißt wie man die Position ausliest und speichert




    Mein Name ist TheOneBehindYou1 (Meinen richtigen Namen kann man nicht aus meinem Nicknamen herauslesen) und ich bin 17 Jahre alt.
    Ich komme aus Österreich (genauer: Niederösterreich) und Ich bin ein großer T.S.-Fan aber ich glaube das bekommt man nicht so mit


    Ich scripte sehr gerne jedoch nicht gerne für Server sondern einfach nur so zu Spaß und um nicht aus der Übung zu kommen


    [Umfrage]
    Ist das Sinnvoll?
    Ja
    Nein
    Banane

    Ergebnis zeigen


    Dodge Challenger Demon

    (vs. Bugatti Veyron based on ¼-mile time.)

  • gujo schrieb:

    Schau mal hier im Forum da findest du bestimmt das richtige für dich.
    Hier....
    Ansonsten kann ich dir auch das Englische SA-MP Forum empfehlen, da du so oder so Englisch benötigst bei der Programmiersprache
    würde ich dir das Forum auch ans Herz legen.

    MfG
    @gujo falscher Multiplayer

    @BlackSpider hast du bereits eine Basis oder soll sich nun jemand für dich in die Bresche werfen?
    Hier ein Konzept (nicht mehr und auch nicht weniger) wie sich das mit C# realisieren lässt,
    Voraussetzung ist eine Datenbank in welcher Form auch immer (MySQL, MariaDB, SQLite oder wenn du ein Fan von Textdateien / JSON bist, bitte).

    Es lässt sich auch leicht ausschließlich serverseitig realisieren, da die Server API die dementsprechenden Methoden / Events liefert
    und zudem den Spieler von A nach B setzen kann. Eine Überlegung wäre es, clientseitig den Spieler auf den Boden zu setzen, da serverseitig nicht berechnet werden kann
    wo der Boden anfängt (klassische Aufgabe eines Clienten).

    Du baust deinen GameMode mit einer using Klausel zu der Biblothek zu GT:MP auf, registriert dir für ein Spawnsystem die beiden Events / Methoden
    • onPlayerDisconnectHandler
    • onPlayerConnectedHandler
    In den registrierten ActionHandlern sicherst du nun die Vector3 Coordinaten beim Verlassen des Servers mit dem Benutzernamen (oder besser: dem SocialClub Benutzernamen),
    wenn er wieder auftaucht prüfst du ab, existiert ein Datensatz zu Benutzername XY? Falls ja, setzt du Ihm (am besten clientseitig) an die Position.

    Java-Quellcode

    1. using GrandTheftMultiplayer.Server.API;
    2. namespace ServerGameMode {
    3. class Database {
    4. /* your database config */
    5. }
    6. class GameMode : Script {
    7. public GameMode()
    8. {
    9. API.onPlayerDisconnected += OnPlayerDisconnectedHandler;
    10. API.onPlayerConnected += OnPlayerConnectedHandler;
    11. }
    12. private void OnPlayerConnectedHandler(Client player)
    13. {
    14. API.sendChatMessageToPlayer(player, "Willkommen bei uns, ~g~" + player.name);
    15. API.sendChatMessageToAll(player, playerName + " ist gekommen :o");
    16. /* for example only, dont build your SQLCommands inside of Methods */
    17. MySqlCommand command = new MySqlCommand("Select posX, posY, posZ from player where playerName = @playerName", con);
    18. command.Parameters.Add(new MySqlParameter("@playerName", player.name));
    19. MySQLDataReader dataReader = command.ExecuteReader();
    20. if(dataReader.HasRows == true) {
    21. /* player exists and should have a posX, posY, posZ */
    22. Double posX = dataReader.getDouble(0);
    23. Double posY = dataReader.getDouble(1);
    24. Double posZ = dataReader.getDouble(2);
    25. API.setEntityPosition(player, new Vector3(posX, posY, posZ), true);
    26. }
    27. }
    28. private void OnPlayerDisconnectedHandler(Client player, string reason)
    29. {
    30. String playerName = API.getPlayerName(player);
    31. Vector3 playerPos = API.getEntityPosition(player);
    32. /* u should ofc do this in a method Mysql::class
    33. just for demonstration */
    34. command = Database::getConnection().CreateCommand();
    35. command.CommandText = "UPDATE player SET posX = @posX, posY = @posY, posZ = @posZ WHERE playerName = @playerName";
    36. /* now update the user coordinates, required is the table "player" and ofc a row with the playerName */
    37. command.Parameters.AddWithValue("@posX", playerPos.X);
    38. command.Parameters.AddWithValue("@posY", playerPos.Y);
    39. command.Parameters.AddWithValue("@posZ", playerPos.Z);
    40. command.Parameters.AddWithValue("@playerName", playerName);
    41. /* send parameterized query for saving the position */
    42. int updatedRows = Convert.ToInt32(command.ExecuteScalar());
    43. API.sendChatMessageToAll(playerName + " ist verschwunden :o (" + reason + ")");
    44. }
    45. }
    46. }
    Alles anzeigen

    Mta Script Editor - Work in Progress