Last Bed Standing - Bedwars in SA-MP! 0.1.3

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

    • Last Bed Standing - Bedwars in SA-MP! 0.1.3



      Changelog

      Quellcode

      1. # Change Log
      2. All notable changes to this project will be documented in this file.
      3. ## Initial Release
      4. ## [0.1a] - 2017-03-14
      5. ### Added
      6. - Binarysearch instead of iterators for pickup system.
      7. - /stealth command to make yourself invisible for 60 seconds on minimap.
      8. ## [0.1b] - 2017-03-20
      9. ### Added
      10. - Possibility to get a Warpkit to teleport yourself back to your base by using /warp command. Can be purchased for $100k in the shop.
      11. - New reference map files including new PlayerInfoPickups array.
      12. - New pickup type InfoPickups, to show certain important server information like rules, FAQ and more..
      13. - SaveUser_data function to save userdata periodically into the user file.
      14. - ResetPlayerData function to reset player vars and arrays after death/disconnect.
      15. - TeleportPlayerToBase function to teleport the player back to his base using /warp command or /spawn command (Admin only).
      16. -
      17. ### Removed
      18. - The Seasparrow of team YELLOW on Chilliad map due to balancing.
      19. - Usless/Unused player vars and arrays.
      20. ### Fix
      21. - /stealth kit which didnt work before. The player was invisible on the map all the time. No reset.
      22. - Map bugs on CHILLIAD and GREEN PALMS map.
      23. - String length of several strings due to display problems.
      24. ## [0.1b] - 2017-03-21
      25. ### Added
      26. - Added weather system for random weather.
      27. - Weather can be set by admins, using /weather ID
      28. - /dropmoney uses GenerateRandomPickup function now, to create money pickups.
      29. - system to check if a team has won the game. (if other teams are empty)
      30. - Improved several minor bugs.
      31. - Major changes in score system.
      32. - The winner of the team will now be determined if there is no player left in other teams
      33. - Recursive function will be called in OnPlayerDeath instead of OnPlayerSpawn now.
      34. - Dead player will be thrown into TEAM_SPECTATOR after death now if the bed is missing.
      35. - GetPlayerCount() function added to count amount of players for use in TeamsAlive(bool:value) function.
      36. - Recursive function TeamsAlive(bool:value) function (false/true) to count teams alive or check if there is only one team left.
      37. - Fighting Style menu to purchase different fightstyles.
      38. ### Fix
      39. - Increased weapon prices due to balancing reasons.
      40. - Changed bomb activation radius to 150m instead of 100m.
      41. ## [0.1b] - 2017-03-28
      42. ### Added
      43. - Function GivePlayerMoneyText to give or remove money from a player and display gametext.
      44. - #define to change the value of Money Pickups.
      45. ## [0.1b] - 2017-03-28
      46. ### Added
      47. - Function GivePlayerMoneyText to give or remove money from a player and display gametext.
      48. - #define to change the value of Money Pickups.
      49. ## [0.1.3a] - 2018-03-02
      50. ### Fix
      51. - Fixed major bugs.
      52. - Fixed y_ini problems.
      53. - Fixed a huge amount of bugs.
      54. - Code optimization
      Alles anzeigen




      Ich gruesse euch liebe Community,

      Hiermit praesentiere ich mein aktuelles Miniprojekt Last Bed Standing, basierend auf Grand Larceny!

      Motivation:


      Idee und Ziel dieses Projekts war es das Bedwars Minigame welches es auf vielen Minecraft Servern gibt in SA-MP und im SA-MP Stil nachzubauen (Bett sprengen statt abbauen etc..), und mal ein andere Art von Servern erstellen, denn man sieht ja leider nur noch Reallife.
      Weiterhin programmiere ich im Rahmen meines Studiums viel in C, und warum nicht mal bisschen ueben durch Programmieren in einer C aehnlichne Sprache? Daraus ist dieses Projekt in nun ca. 2 Wochen entstanden, und was geht schon ueber ein Selfmade?
      Desweiteren bin ich ein Fan von OpenSource Software, weshalb auch dieses Projekt hier fuer alle verfuegbar sein sollte.

      Letztlich ist das Projekt nur aus Spass, und etwas Uebung fuer das Studium entstanden, und wird in Zukunft noch geupdated.


      Aktuell befindet sich der Gamemode im Alpha Stadium und wird vorraussichtlich jede Woche geupdated.
      Wenn es eine fehlerfreie Version gibt wird unter die GNU Public License gestellt, damit jeder das Werk aendern, verbreiten kann usw. soll ja schliesslich etwas fuer alle sein ;)




      Das Fragment welches aus Grand Larceny ist, ist lediglich die Team bzw. Stadtauswahl, meiner Ansicht nach viel schoener als der Standardkram den man auf sovielen Servern sieht.

      Aktuell gibt es 3 Teams zur Auswahl aehnlich wie in Bedwars wo es zu Beginn auch eine Teamauswahl gibt.
      Team ROT befindet sich am Sherman Staudamm, westlich von El Castillo del Diablo, Team GRAU bei Area 51 und Team BLAU bei Verdant Meadows, dem Flughafen.

      Jedes Team verfuegt ueber einen Shop mit einem "Villager" bei welchem man Waffen, Armour , Skills und eine Bombe kaufen kann die noetig ist um ein feindliches Bett zu zerstoeren.
      Alle Teams haben nahe Ihrer Base irgendein Fahrzeug wie z.B. Panzer oder Seasparrow um sich besser vor Feinden verteidigen zu koennen.

      Jedes Team besitzt einen "Bronzespawner" bzw. da ich das ganze im GTA Stil machen wollte, einen Geldspawner, welcher random Geldpickups generiert, welche noetig sind um sich Waffen und andere Dinge zu kaufen.

      Ziel ist es das Bett des feindlichen Teams zu zerstoeren (wobei nach dem Zerstoeren eines Betts das jeweilige Team nicht mehr respawnen kann), und dann die restlichen Spieler zu eliminieren, und so das Spiel zu gewinnen, wie in Bedwars halt.
      Der Gamemode ist inzwischen im Vergleich zum Ursprungs Grand Larceny, nun mit insgesamt 2400 Zeilen ziemlich umfangreich.

      Das ganze habe ich inzwischen mit 4 Spielern insgesamt ausprobiert, und ein Spiel dauert durchschnittlich 10 Minuten.
      Der Spassfaktor ist trotz der Einfachheit des Gamemodes sehr gross!

      Der Gamemode ist komplett in ENGLISCH geschrieben um auch Spieler aus anderen Laendern anzusprechen.

      Aktuell laeuft das Script unter knogleinsi.de als SA-MP Server mit 32 Slots, und wird auch weiterhin dort laufen.

      Weiterhin sind aktuell 4 verschiene Maps spielbar, und man kann problemlos weitere erstellen, dazu einfach die Muster in pawno/includes anschauen.

      Features:



      Das Script besitzt rund 3100 Zeilen, und ist eigentlich komplett selbst geschrieben, bis auf Tipps anderer User.
      Der Teil aus Grand Larceny wurde grundlegend veraendert.

      Es ist moeglich selbst Maps zu erstellen, dazu kann man einfach das Muster aus dem Ordner /pawno/include auf Github ziehen.

      Quellcode

      1. //Color tags for textdraw use
      2. #define FIRST_TEAM_COLOR_TAG {610D96}VIOLET
      3. #define SECOND_TEAM_COLOR_TAG {FFFF00}YELLOW
      4. #define THIRD_TEAM_COLOR_TAG {8B4513}BROWN
      5. #define TEAM_ONE_SEL_INTERIOR 0
      6. #define TEAM_TWO_SEL_INTERIOR 0
      7. #define TEAM_THREE_SEL_INTERIOR 0
      8. #define TEAM_ONE_INTERIOR 0
      9. #define TEAM_TWO_INTERIOR 0
      10. #define TEAM_THREE_INTERIOR 0
      11. // Team colors
      12. #define COLOR_TEAM_ONE 0x610D9655 //Violet
      13. #define COLOR_TEAM_TWO 0xFFFF0055 //Yellow
      14. #define COLOR_TEAM_THREE 0x8B451355 //Brown
      15. //Where the teams are located..
      16. #define FIRST_TEAM_LOCATION Mount Chilliad (South)
      17. #define SECOND_TEAM_LOCATION Mount Chilliad (North)
      18. #define THIRD_TEAM_LOCATION Mount Chilliad (West)
      19. stock const Float:GlobalActors[][]={
      20. {-2261.4497,-1983.6539,251.0746,149.3091},//Violet
      21. {-2816.3923,-1530.5948,140.8438,352.9545},//Brown
      22. {-2347.8748,-1355.2128,299.7364,194.9771},//Yellow1
      23. { -2294.6057,-1282.0396,259.3622,221.0728},//Yellow2
      24. {0.0,0.0,0.0,0.0},//Not defined
      25. {0.0,0.0,0.0,0.0}//Not defined
      26. };
      27. stock const Float:GlobalZones[][]={
      28. {-2452.354, -2066.984, -2160.407, -1891.816},//Violet
      29. {-2849.402, -1646.58, -2732.623, -1413.023},//Brown
      30. {-2428.998, -1389.667, -2218.796, -1202.821}//Yellow
      31. };
      32. stock const Float:MoneySpawns[][]={
      33. {-2335.7568,-2340.2905,-2023.9417,-2027.9861,270.0450,269.2450},//Violet
      34. {-2279.4812,-2283.4812,-1286.3794,-1294.3794,258.9622,258.3622},//Yellow
      35. {-2810.7144,-2819.3496,-1493.0504,-1495.6464,139.3078,138.9078},//Brown
      36. {-2303.8931,-2337.4104,-1607.2054,-1644.9517,483.7031,482.9031}//Main
      37. };
      38. stock const Float:MAP_WORLDBOUNDS[][]={
      39. {-1728.326, -2977.858, -945.9079, -2323.897}
      40. };
      41. stock const Float:ClassSel_SetupTeamTEAM_POS[][]={
      42. {-2244.3000000,-2015.5000000,280.3999900},//Violet
      43. {-2282.7908,-1377.0408,365.6920},//Yellow
      44. {-2758.2195,-1479.8926,202.8240}//Brown
      45. };
      46. stock const Float:ClassSel_SetupTeamTEAM_LOOK_AT[][]={
      47. {-2316.7000000,-2040.2000000,261.2000000},//Violet
      48. {-2305.9270,-1254.1742,239.8091},//Yellow
      49. {-2834.3979,-1553.4116,110.3533}//Brown
      50. };
      51. stock const Float:beds[][] = {
      52. {-2340.7637,-2024.7919,270.5094},//Violet
      53. {-2812.6035,-1515.9814,140.8438},//Brown
      54. {-2326.8735,-1356.4872,300.2661}//Yellow
      55. };
      56. stock const Float:gSpawnsTeam_TEAM_ONE[][] = {//Violet
      57. {-2340.0759,-1984.2560,327.3245,96.6453},
      58. {-2265.7549,-1982.4696,251.1930,327.2607},
      59. {-2336.1033,-2026.0273,270.5272,153.9858},
      60. {-2371.8701,-2009.8907,259.0939,163.6758},
      61. {-2431.2183,-2012.5878,228.1622,206.6029},
      62. {-2321.6675,-2031.6503,260.7211,265.2202},
      63. {-2284.3025,-1956.8335,270.9055,218.2196}
      64. };
      65. stock const Float:gSpawnsTeam_TEAM_TWO[][] = {//Yellow
      66. {-2287.0525,-1284.2802,259.3622,128.5823},
      67. {-2323.8572,-1258.1201,243.6398,317.2668},
      68. {-2290.4866,-1276.1278,259.3622,308.1799},
      69. {-2275.3657,-1322.3977,277.1953,338.5501},
      70. {-2336.4958,-1357.4409,299.7297,13.6672},
      71. {-2353.0078,-1359.2170,299.7364,282.7996},
      72. {-2412.6658,-1368.1118,332.8622,297.8398}
      73. };
      74. stock const Float:gSpawnsTeam_TEAM_THREE[][] = {
      75. {-2818.0842,-1523.5146,140.8438,266.4268}, // brown1
      76. {-2816.4951,-1536.1785,139.2891,87.5118}, // brown2
      77. {-2865.6543,-1551.7012,139.9026,98.4785}, // brown3
      78. {-2835.2129,-1509.0914,138.5741,279.8769}, // brown4
      79. {-2818.6655,-1518.3864,140.8438,265.4634}, // brown5
      80. {-2813.6826,-1460.6605,136.2261,272.9834} // brown6
      81. };
      Alles anzeigen


      Einfach Koordinaten, Farben und Namen anpassen, und fertig!

      Teamsize ist die Anzahl an Teams (Werde ich in Teamcount oder aehnlich umbauen) und kann zwischen 2 und 6 gewaehlt werden.
      Genutzt wird eine Moeglichst effiziente Programmierweise, beispielsweise Binaersuche statt Iteratoren etc.
      Pickupsystem ist dank der Hilfe von Usern hier nun super erweiterbar und super effizient.

      Der Gamemode nutzt sscanf, jedoch keinen Command Generator, um strtok endlich komplett zu verdraengen.
      Das Stats System nutzt y_ini, und es werden wie im Minecraft Bedwars, zerstoerte Betten, Kills/Deaths getrackt, und zusaetzlich noch detonierte Bomben, welche man im Shop kaufen kann.

      Es gibt zwei neue Features in der Version 0.1b:

      Stealth:

      Man kann sich im Shop ein Stealth Paket kaufen, durch welches man auf der Map 60 Sekunden unsichtbar ist.

      Bomb:

      Eine Bombe kann im Shop erworben werden, diese kann irgendwo platziert werden, und dann aus bis zu 100 Metern Entfernung durch die "Y" Taste gesprengt werden.

      Eine Reihe Admin Commands wurde inzwischen implementiert.
      Weiterhin habe ich auch einige Maps aus meinem alten Projekt Hitoyoshi implementiert, damit diese noch Verwendung haben.

      Fuer die naechste Version welche Mittwoch erscheinen soll, ist die Implementierung von Incognitos Streamer geplant.

      Es gibt aktuell 3 Maps mit 4 Teams, und 1 Map mit 3 Teams

      ... weitere Features in neuer Version, siehe auch forum.sa-mp.com/showthread.php?p=3846056#post3846056




      Hier mal einen kleinen Ueberblick ueber die Teams, und deren Lage, auf eine der aktuell 4 Maps.


      Bilder:

      Eine Bombe wird an einem Bett platziert!




      Das Bett detoniert, und geht in Flammen auf!





      Die auf Grand Larceny basierende Teamauswahl





      Eins der 3 Teams die man auswaehlen kann.





      Der Shop des Teams ROT





      "Bronzespawner" und kleine Tafel die jedes Team besitzt, auf welcher Informationen zum Spiel angezeigt und aktualisiert werden.





      Die aus Bedwars bekannte "Mitte"





      Das Bett von Team GREY















      Download:

      Einfach das Repo klonen


      https://github.com/Knogle/LastBedStanding

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Sub Royal () aus folgendem Grund: Letzte Version

    • Marcel_Colbetti schrieb:

      Chillige Idee. Muss man auch mal drauf kommen.
      Mir gefällt es :) kann man es testen?
      Ja schreib mir ne PN dann zeig ichs dir

      Also wenn jemand testen will, einfach ne PN schreiben, dann versuch ich paar zusammen zu trommeln

      Update:



      Quellcode

      1. # Change Log
      2. All notable changes to this project will be documented in this file.
      3. ## Initial Release
      4. ## [0.1a] - 2017-03-14
      5. ### Added
      6. - Binarysearch instead of iterators for pickup system.
      7. - /stealth command to make yourself invisible for 60 seconds on minimap.
      8. ## [0.1b] - 2017-03-20
      9. ### Added
      10. - Possibility to get a Warpkit to teleport yourself back to your base by using /warp command. Can be purchased for $100k in the shop.
      11. - New reference map files including new PlayerInfoPickups array.
      12. - New pickup type InfoPickups, to show certain important server information like rules, FAQ and more..
      13. - SaveUser_data function to save userdata periodically into the user file.
      14. - ResetPlayerData function to reset player vars and arrays after death/disconnect.
      15. - TeleportPlayerToBase function to teleport the player back to his base using /warp command or /spawn command (Admin only).
      16. -
      17. ### Removed
      18. - The Seasparrow of team YELLOW on Chilliad map due to balancing.
      19. - Usless/Unused player vars and arrays.
      20. ### Fix
      21. - /stealth kit which didnt work before. The player was invisible on the map all the time. No reset.
      22. - Map bugs on CHILLIAD and GREEN PALMS map.
      23. - String length of several strings due to display problems.
      24. ## [0.1b] - 2017-03-21
      25. ### Added
      26. - Added weather system for random weather.
      27. - Weather can be set by admins, using /weather ID
      28. - /dropmoney uses GenerateRandomPickup function now, to create money pickups.
      29. - system to check if a team has won the game. (if other teams are empty)
      30. - Improved several minor bugs.
      31. - Major changes in score system.
      32. - The winner of the team will now be determined if there is no player left in other teams
      33. - Recursive function will be called in OnPlayerDeath instead of OnPlayerSpawn now.
      34. - Dead player will be thrown into TEAM_SPECTATOR after death now if the bed is missing.
      35. - GetPlayerCount() function added to count amount of players for use in TeamsAlive(bool:value) function.
      36. - Recursive function TeamsAlive(bool:value) function (false/true) to count teams alive or check if there is only one team left.
      37. - Fighting Style menu to purchase different fightstyles.
      38. ### Fix
      39. - Increased weapon prices due to balancing reasons.
      40. - Changed bomb activation radius to 150m instead of 100m.
      41. ## [0.1b] - 2017-03-28
      42. ### Added
      43. - Function GivePlayerMoneyText to give or remove money from a player and display gametext.
      44. - #define to change the value of Money Pickups.
      45. ## [0.1b] - 2017-03-28
      46. ### Added
      47. - Function GivePlayerMoneyText to give or remove money from a player and display gametext.
      48. - #define to change the value of Money Pickups.
      49. ## [0.1.3a] - 2018-03-02
      50. ### Fix
      51. - Fixed major bugs.
      52. - Fixed y_ini problems.
      53. - Fixed a huge amount of bugs.
      54. - Code optimization
      Alles anzeigen
      Rekursive Implementierung war nun erfolgreich!

      Neuste Version verfuegbar im GitHub Repo:

      github.com/Knogle/LastBedStanding

      //edit: Thread wird nurnoch im englischen SA-MP Forum fortgesetzt.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Sub Royal ()