Beiträge von 123marvin123

    Du könntest einen EventHandler für den Spieler erstellen:



    Ich bin mir nicht sicher ob es funktioniert, es ist aber einen Versuch wert. Mit den Attentions kannst du ein Event für einen bestimmten Spieler/Fahrzeug/etc. filtern.
    Es wird also nur für den einen Spieler aufgerufen ;)

    Alf21: Wenn du Informationen über einen Spieler speichern möchtest hast du mehre Möglichkeiten. Du kannst das PVar-System von Pawn benutzen, was aber nicht zu empfehlen ist.
    Besser ist der PlayerLifecycleHolder aus dem shoebill-common Paket. Diesen verwendest du so:



    Als erstes brauchst du eine Klasse die deine Variablen und Methoden zum Spieler enthalten soll. Die erstellst du so:


    Gehe dabei sicher, dass deine Klasse das PlayerLifecycleObject erweitert. Da du nun eine Klasse hast, kannst du den PlayerLifecycleHolder anlegen.
    Bei onEnable() z.B:


    Code
    PlayerLifecycleHolder playerLifecycleHolder = new PlayerLifecycleHolder(getEventManager()); 
    playerLifecycleHolder.registerClass(GamePlayer.class, (eventManager, p) -> new GamePlayer(eventManager, p));


    Wichtig ist, dass du .registerClass() aufrufst. Der LifecylceHolder legt nun automatisch eine Instanz deiner Klasse an, wenn der Spieler den Server betritt, und zerstört diese wieder, wenn er den Server verlässt.
    Hier ein Beispiel wie du deine GamePlayer-Klasse bekommst, wenn du nur eine Player-Instanz hast:


    Code
    GamePlayer playerClass = playerLifecycleHolder.getObject(event.getPlayer(), GamePlayer.class);


    Alternativ kannst du dir auch alle Instanzen in eine Collection holen:


    Code
    Collection<GamePlayer> players = playerLifecycleHolder.getObjects(GamePlayer.class);


    Wenn du eine GamePlayer-Instanz hast, bekommst du so deinen Spieler zurück:

    Code
    Player player = gamePlayer.getPlayer();

    Alf21: Du überprüfst nicht ob killer null ist:

    Code
    if (killer != null) {
    				killer.giveMoney(player.getMoney());
    			}
    
    			if(killer.getName() != player.getName()) {
    				LvdmGamemode.queue.addPoints(killer, "GEGNER ELIMINIERT", 100, DynamicActionLabel.DynamicItem.TYPE_BIG);
    			}/* else {
    				LvdmGamemode.queue.addPoints(player, "SELBSTMORD", -100, DynamicActionLabel.DynamicItem.TYPE_BIG);
    			}*/


    Mach es so:

    Code
    if(killer != null && killer.getName() != player.getName()) {
    				LvdmGamemode.queue.addPoints(killer, "GEGNER ELIMINIERT", 100, DynamicActionLabel.DynamicItem.TYPE_BIG);
    			}

    Ich habe für die Leute die es nicht ohne Hilfe schaffen einen Server aufzusetzen ein Video gemacht:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    https://www.youtube.com/watch?v=FLlFeNXPPN8

    Firefox: Nein, dein Script müsstest du nicht ganz wegwerfen. Wir werden versuchen das Plugin stets auf dem aktuellsten Stand zu halten.
    Es ist keine große Mühe die neuen Funktionen zu unterstützen. Die Wiki wird in den nächsten Tagen mit dem Release von Version 1.1 erweitert. Außerdem werden wahrscheinlich auch Video-Anleitungen folgen.


    Alf21: So wie ich deinen Sourcecode verstehe versuchst du SAMP Funktionen aus einem anderen Thread aufzurufen. Verwende bitte dafür die Funktion .runOnSampThread();


    Code
    Shoebill.get().runOnSampThread(() -> {
    Textdraw.create();
    });

    Danke, wir müssen mal sehen wie wir das mit der Webseite regeln. Das neue Update wird wahrscheinlich noch diese Woche erscheinen. Danach werde ich zusehen das ich ein paar Tutorials und Anleitungen verfasse.
    Wir werden uns bemühen den Einstieg in Shoebill so leicht wie möglich zu gestallten. Deswegen habe ich auch einen kleinen Updater geschrieben, der den Launcher, den Dependency-Manager und das Plugin aktualisieren kann.
    Alles andere aktualisiert sich automatisch :)

    Alf21: Danke, es gibt eigentlich keine Grenzen. Dir steht die volle Macht einer Java Maschine zur Verfügung. Du kannst deinen Server z.B über einen TcpListener steuern.
    Du kannst dir eine Android Applikation schreiben die dann mithilfe des TCP-Protokolls mit deinem Server kommuniziert. Es wird momentan am Update 1.1 gearbeitet, dass die Verwendung mit PAWN-Gamemodes und Shoebill Gamemodes ermöglicht.
    Du musst dann deine bereits vorhandenen Pawn-Gamemodes nicht mehr neu schreiben, sondern kannst sie einfach weiter benutzen. Man wird dann auch Funktionen von Shoebill zu Pawn aufrufen können.
    Es ist geplant ein volles Tutorial und Beispielcode bereitzustellen.


    Viel Spaß noch mit Shoebill :) Wenn du fragen hast kannst du dich an mich oder Zito & Spikes wenden.

    [19:55:22] [debug] #1 00005ba0 in public CheckIPFromList (playerid=0) at C:\Users\Crossfaderz\Desktop\NexusReallife\pawno\include\M_Bot.inc:502
    [19:55:22] [debug] #2 00007290 in M_OnPlayerConnect (playerid=0) at C:\Users\Crossfaderz\Desktop\NexusReallife\pawno\include\M_Bot.inc:726
    [19:55:22] [debug] #3 00019ea4 in public OnPlayerConnect (playerid=0) at C:\Users\Crossfaderz\Desktop\NexusReallife\gamemodes\NRL.pwn:5044


    Weißt darauf hin, dass der Crash von der Include 'M_Bot.inc' kommt.
    Was steht den in der Datei 'NRL.pwn' in Zeile 5044?