Waffensystem by Alf21 & 123marvin123

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

    • Waffensystem by Alf21 & 123marvin123


      weapon-system v4.0

      Was ist das besondere an diesem Waffensystem?

      Dieses Waffensystem ist sehr speziell, da man bei jeder Pistole 5 Munitionsarten zur Auswahl hat.
      Munitionsarten:

      Munitionsnamen
      • Normale Munition
      • Brandmunitionent
      • Explosivmunition
      • panzerbrechende Munition
      • Spezialmunition
      Kleines Intro:

      Man kann die Munition in jeder Pistole mit der Taste [N] (kurz gedrückt) wechseln.
      Sobald man die Taste [N] ungefähr 1sek gedrückt hält, gelangt man in das Waffeninventar bzw. den integrierten Waffenshop.
      Dort kann man alle Waffen auswählen bzw. kaufen und auch die Munition nachladen / kaufen.
      Die gekauften Waffen muss man nicht mehr bezahlen, nur noch die Munition.
      Zudem gibt es Animationen beim Nachladen oder wechseln der Waffen, sodass man eine kleine Nachladedauer hat und nicht iwie SAMP Bugs ausnutzen kann.


      youtu.be/v36qQqOUJIE
      by BloodAngelHD


      Andere Infos:
      Speicherart: MySQL (wird selbst erstellt)
      Programmiersprache: Java (Shoebill)
      Art des Systems: Plugin für das Shoebill Plugin
      -> Warum Shoebill / Java?
      • Shoebill bzw. Java hat bessere Performance, da es Daten schneller verarbeitet als Pawn. Das war mir sehr wichtig, da nach / bei jedem Schuss etwas berechnet wird!
      • Java ist "kommende" Programmiersprache, zB Android Applikationen (Apps) sind auf Java geschrieben.
      • Java bietet für mich mehr Möglichkeiten und besseren Support
      • Und ich kann meine Lieblings-IDE / meinen Lieblings-Editor Eclipse nutzen, schöne Autovervollständigung ^^
      Der Schaden der Explosionen, die durch Waffen mit Explosivmunition ausgelöst wurden, wurde auch angepasst.
      Zudem ist der Schaden / Preis jeder Munitionsart unterschiedlich
      Schaden und Preise



      Effekt
      kein Effekt
      zündet den Gegner und lässt ihn für 7sek brennen
      explodiert beim Aufprall und schadet dem Gegner beim Treffer
      ignoriert die Rüstung / den Armour des Gegners
      mehr Schaden


      MunitionsartSchadenPreis
      Normal50%*100%*
      Brand1 [+ Zeitschaden (+2)]10%*
      Explosiv10%* (+ Flächenschaden / Explosionsschaden**)250%*
      Panzerbrechend65%* (+ ignoriert den Armour des Gegners)120%*
      Spezial120%*350%*


      * des normalen Schadens / Preises
      ** Entfernung von: 1 - 10, 2 - 5, 3 - 2, >4 - 0

      GitHub: github.com/Alf21/weapon-system.git
      Ein Dank an @123marvin123 (für die Hilfe, einen bösen Fehler zu finden, für bessere Struktur und Performance und für die Bereitsstellung der repo) und an BloodAngelHD (für das Video)! :thumbsup:

      Installation:
      Entweder von GitHub selbst downloaden und mit Maven builden oder folgendes in eure pom.xml einfügen (in den dependencies):

      Quellcode

      1. <dependency>
      2. <groupId>me.alf21</groupId>
      3. <artifactId>weapon-system</artifactId>
      4. <version>1.0-SNAPSHOT</version>
      5. <type>jar</type>
      6. <scope>compile</scope>
      7. </dependency>

      oder selbst hier downloaden

      danach das Plugin in den Ordner shoebill/plugins im Serverordner verschieben und in der Datei shoebill/resources.yml unter "plugins:"

      Quellcode

      1. - me.alf21:weapon-system:1.0-SNAPSHOT

      einfügen

      Was ihr also braucht: Shoebill ([0.3.7] Project Shoebill 1.1 - Schreibe Gamemodes in Java) + MySQL Datenbank -> localhost oder einen vServer / Root für Shoebill

      Achtung!:
      Keine Neuveröffentlichungen oder ändern der Credits.
      Ausnahme: Falls jemand den Code braucht um das als Filterscript / Include zu schreiben (Verweis auf diesen Beitrag)

      Callbacks:
      alle Callbacks

      Quellcode

      1. //Um Waffen zu geben
      2. givePlayerWeapon(player, weaponId, ammo) //Um eine Waffe komplett neu zu laden
      3. givePlayerNewWeapon(player, weaponId, ammo) //Um eine Waffe mit den alten Munitionsdaten usw. zu laden
      4. //Um Muni zu bekommen:
      5. getWeaponAmmo(player, weaponId)
      6. getFireWeaponAmmo(player, weaponId)
      7. getExplosiveWeaponAmmo(player, weaponId)
      8. getHeavyWeaponAmmo(player, weaponId)
      9. getSpecialWeaponAmmo(player, weaponId)
      10. //Um Muni zu setzen
      11. setWeaponAmmo(player, weaponId, ammo)
      12. setFireWeaponAmmo(player, weaponId, ammo)
      13. setExplosiveWeaponAmmo(player, weaponId, ammo)
      14. setHeavyWeaponAmmo(player, weaponId, ammo)
      15. setSpecialWeaponAmmo(player, weaponId, ammo)
      16. //Um die geladene Munitionsart zu bekommen:
      17. getAmmoState(player, weaponId)
      18. //Um die geladene Munitionsart zu setzen (Achtung, sicher sein, dass man auch die jeweilige Munition besitzt)
      19. setAmmoState(player, weaponId, ammoState)
      20. //Um zu checken, ob eine Waffe ausgewählt ist / getragen wird
      21. isSelectedWeapon(player, weaponId)
      22. //Um Waffe ausgewählt / getragen zu setzen
      23. setSelectedWeapon(player, weaponId, bool)
      24. //Um zu checken, ob eine Waffe verfügbar / gekauft wurde
      25. isAbleWeapon(player, weaponId)
      26. //Um Waffe gekauft / verfügbar zu setzen
      27. setAbleWeapon(player, weaponId, bool)
      28. //Um alle Waffen eines Slots als nicht selected bzw nicht getragen / ausgewählt zu markieren
      29. unselectWeapons(player, slot)
      Alles anzeigen


      Es tut mir leid, falls welche meckern, dass es kein professioneller Code ist. Es ist mein erstes Plugin in Java und ich "lerne" noch nicht so lange Java, aber ich hatte eine Idee und wollte diese verwirklichen.
      Updates werden kommen.
      Tipps oder Verbesserungen sind immer erwünscht.

      existierende Bugs

      Es gibt noch einige Bugs, die werden aber alle behoben:
      • die Berechnung des Schadens bei einer Explosion ist nur auf die x-Koordinaten belegt -> man schießt in die Höhe und bekommt Schaden, egal welche Distanz (es muss ein Aufprall geben, zB an einem Objekt, sonst gibts keine Explosion ^^)
      • manchmal wird die Animation nicht komplett gecleared

      Vorhaben / Kommende Updates
      - bessere Performance- neues Video -> Weaponshop + Schadensdemonstration- Anticheat- mehr Animationen- kleines Fixes, falls es noch Bugs gibt, bitte reporten !- vllt. als Filterscript für Pawn- Spezialmunition mit bestimmten Effekt- Eventsystem- andere Ideen- Updater

      MfG Alf21
      Edits
      //Link zum Shoebill Plugin eingefügt//Text//Text//Installation//Text//kommende Updates//Formatierung//Tabelle//Expander//Text hinzugefügt

      Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von Alf21 ()

    • @Colore: Danke, auch wenn es nur ein kleines Feedback ist :thumbsup:

      .Fabian schrieb:

      Handylink für das Video wäre nett.

      //edit: Link eingefügt (unter dem Video)

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Alf21 ()

    • @xCurry & @FileZilla: Genau, gut erkannt :D
      @N0SKILL: hier nocheinmal aus den Beitrag oben:

      [table=3]
      [*]Munitionsart[*]Schaden[*]Preis
      [*]Normal[*]50%*[*]100%*
      [*]Brand[*]1 (+Zeitschaden (2))[*]10%*
      [*]Explosiv[*]10%* (+Flächenschaden / Explosionsschaden**)[*]250%*
      [*]Panzerbrechend[*]65%* (+ignoriert den Armour des Gegners)[*]120%*
      [*]Spezial[*]120%*[*]350%*
      [/table]

      * des normalen Schadens / Preises
      ** Entfernung von: 1 - 10, 2 - 5, 3 - 2, >4 - 0

      Die Normale Munition hat halt nichts Spezielles, macht aber generell nur 50% des normalen Schadens, also wenn sie normalerweise 36Schaden macht, macht sie mit dem System nur 18 Schaden ;)

      Brandmunition gibt den Gegner über 7sek jede Sekunde 2Schaden.
      Explosivmunition, denke das ist klar ^^
      Panzerbrechende durchdringt den Panzer / den Armour des Gegners und ignoriert so die Rüstung.
      Spezialmunition macht 120% Schaden. Diese habe ich eingefügt, falls jmd bzw ich noch ein Eventsystem einbaue, wo die Munition ganz andere Sachen bewirken kann, halt als Füllmittel. Und damit man es auch nutzen kann, habe ich der Munition 120% Schaden gegeben.
      -----------------------------

      @Nemesus: Danke ! :)
      Würdet ihr es denn überhaupt benutzen, da es auf Shoebill ist?

      MfG Alf21

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Alf21 ()