Beiträge von 123marvin123
-
-
Danke, ich hab noch ein kleines Video hinzugefügt.
Silverdark: Ja, Eclipse Luna kann glaube ich auch Java 8
Ich persönlich verwende immer IntelliJ IDEA. -
Du könntest einen EventHandler für den Spieler erstellen:
Code
Alles anzeigeneventManager.registerHandler(PlayerDeathEvent.class, (e) -> { Player killer = e.getKiller(); Player player = e.getPlayer(); if(killer != null) { EventManagerNode node = eventManagerNode.createChildNode(); node.registerHandler(PlayerSpawnEvent.class, HandlerPriority.NORMAL, Attentions.create().object(player), (e2) -> { player.sendMessage(Color.RED, "* Du bist eben gestorben und wurdest vom Spieler " + killer.getName() + " getötet."); player.sendMessage(Color.RED, "* Aber jetzt lebst du ja wieder :)"); node.destroy(); }); } });
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:
Code
Alles anzeigenpublic class GamePlayer extends PlayerLifecycleObject { private int adminLevel; public GamePlayer(EventManager manager, Player p) { super(manager, p); } public int getAdminLevel() { return adminLevel; } public void setAdminLevel(int level) { this.adminLevel = level; } @Override protected void onInit() { //Create objects, 3dtextlabels etc. } @Override protected void onDestroy() { //Destroy objects etc. } }
Gehe dabei sicher, dass deine Klasse das PlayerLifecycleObject erweitert. Da du nun eine Klasse hast, kannst du den PlayerLifecycleHolder anlegen.
Bei onEnable() z.B:CodePlayerLifecycleHolder 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:Alternativ kannst du dir auch alle Instanzen in eine Collection holen:
Wenn du eine GamePlayer-Instanz hast, bekommst du so deinen Spieler zurück:
-
Kein Problem
Es freut mich das es nun mehr Leute gibt die dieses Projekt interessieren. -
Alf21: Du überprüfst nicht ob killer null ist:
Codeif (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:
-
Ich habe für die Leute die es nicht ohne Hilfe schaffen einen Server aufzusetzen ein Video gemacht:
Externer Inhalt www.youtube.comInhalte 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();
-
Kannst du mir den vollen Sourcecode bereitstellen? So kann ich noch nichts erkennen.
-
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.
-
Das freut mich zu hören! Wenn du Fragen oder Probleme hast stehe ich dir gerne zu Verfügung.
Diese Woche kommt Update 1.1, welches ermöglicht gleichzeitig Shoebill und einen normalen Pawn Gamemode zu verwenden. Das ermöglicht einem, dass man seinen Gamemode nicht neu schreiben muss.
-
Man kann die neuen Funktionen des Updates aber nicht verwenden, da das alles Hardcoded ist.
z.B. die Callbacks. Wenn dort etwas an den Argumenten verändert wird (wie es z.B in Version 0.3z R2-4 der Fall war), dann kann man sie entweder gar nicht nutzen oder man bekommt die falschen Werte überreicht vom Plugin.
Ganz neue Callbacks kann man so also gar nicht verwenden.
https://github.com/Lapayo/SAMP…rc/bindings_callbacks.hpp -
Ich glaube nicht, da der Autor in seinem Post schrieb:
ZitatAt the moment nearly all official 0.3x functions are supported in PHP.
-
Ihr müsst euch aber bewusst sein, dass wenn ein SAMP Update veröffentlicht wird, ihr darauf warten müsst das der Ersteller des Plugins den Support dafür anbietet.
Es gibt auch die Möglichkeit Gamemodes mit Java zu schreiben. http://forum.sa-mp.com/showthread.php?t=397735 -
Ok, vielleicht kannst du die Zeile 732 - 736 in der Include testweise mal auskommentieren.
-
Hmm, komisch. In dem Crashlog steht das der Crash von der Funktion 'CheckIPFromList' ausgelöst wurde.
Kannst du diese Funktion aus der M_Bot.inc Datei hier mal posten (Sollten in der Nähe der Zeile 502 liegen). -
[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:5044Weißt darauf hin, dass der Crash von der Include 'M_Bot.inc' kommt.
Was steht den in der Datei 'NRL.pwn' in Zeile 5044? -
SetVehicleParamsEx hat nichts mit dem Streamer zu tun. Das ist eine Funktion die bei SA-MP schon dabei ist:
http://wiki.sa-mp.com/wiki/SetVehicleParamsEx_DE -
Ok, der Streamer in meinem Post ist nur für Objekte, es gibt aber auch eine modifizierte Version davon mit Vehicle Streaming:
https://github.com/zilberman-r…-vehicles-plugin/releases
http://forum.sa-mp.com/showthread.php?t=529389