Difference between revisions of "Code hacks"

From Armagetron
(→‎External Scripts and Programs: Update wrtlprnft's website links to .net, update forums url)
(19 intermediate revisions by 11 users not shown)
Line 24: Line 24:
 
now compile as you normally would.
 
now compile as you normally would.
  
=== Styball Patch ===
+
=== Styball, CTF and Shooting Patch ===
  
groundpig's infamous ball games, shooting, CTF, HTF, and many other games types work. Apply this patch to 0.2.8.2 source and build it.
+
groundpig's famous ball games, shooting, CTF, HTF, and many other games types work. See [[Sty]] for instructions.
  
[[:Image:styball.zip|Download the patch]]
 
 
=== Hardcoded teams ===
 
 
'''Note''': In the latest 0.2.8 branch (to become 0.2.8.3) there are settings to control the team colors and names (<code>TEAM_(NAME|RED|GREEN|BLUE)_[1-8]</code>).
 
 
eTeam.cpp starts with the team names and colors:
 
<code><pre>#define TEAMCOLORS 8
 
 
static unsigned short se_team_rgb[TEAMCOLORS][3]=
 
    { {  4,  8, 15 } , // blue
 
      { 15, 15,  4 } , // gold
 
      { 15,  4,  4 } , // red
 
      {  4, 15,  4 } , // green
 
      { 15,  4, 15 } , // violet
 
      {  4, 15, 15 } , // ugly green
 
      { 15, 15, 15 } , // white
 
      {  7,  7,  7 }  // black
 
    };
 
 
static char* se_team_name[TEAMCOLORS]=
 
    {
 
        "$team_name_blue",
 
        "$team_name_gold",
 
        "$team_name_red",
 
        "$team_name_green",
 
        "$team_name_violet",
 
        "$team_name_ugly",
 
        "$team_name_white",
 
        "$team_name_black"
 
    };</pre></code>
 
The colors are just like player colors. See [[Elaborate color explanation#With teams|elaborate color explanation]] for details on how they are merged. The $ means they are taken from the corresponding entry in the language files. Changing the language files is actually a cheap way to change team names without altering the code, although $team_name_blue → "Team yellow" isn't the most elegant solution, not to mention that language files can't make a team look yellow.
 
 
A bit further down the file are switches that control the source and can be set using the console commands <code>ALLOW_TEAM_NAME_COLOR</code> and <code>ALLOW_TEAM_NAME_PLAYER</code>.
 
static bool se_allowTeamNameColor  = true; // allow to name a team after a color
 
static bool se_allowTeamNamePlayer = true; // allow to name a team after the leader
 
The team leader is the oldest human player on a team, or the oldest bot if no human is available. Age is simply how long a player has been on a team. Which is used depends on a somewhat slanted democratic process. If there are at least two players and less than 50% of them have "Name Team after Player" set (bots and the leader are an implicit no, but are not excluded from the total when determining the percentage), an entry from the above list is used. Otherwise the team is named and colored after the leader, either as "Leader" if he is the only player, or "Leader's team" (team_owned_by in the language files) if there are more. The two switches can be used to influence the decision. If nothing is allowed an entry from the list is used. Then, finally, the team is forced to be named and colored after the leader if all entries in the list are in use.
 
  
 
== External Scripts and Programs ==
 
== External Scripts and Programs ==
Line 88: Line 51:
 
=== Map Rotation ===
 
=== Map Rotation ===
  
People have worked up good map rotation programs, hopefully they'll put them here.
+
A basic map rotator / rotation script by kyle can be found on the forums [http://forums3.armagetronad.net/viewtopic.php?p=236054#p236054 here] The post also links to a detailed explanation on how to run the script on the Crazy-Tronners wiki.
  
 
==== Lucifer's Map Rotator ====
 
==== Lucifer's Map Rotator ====
Line 95: Line 58:
  
 
[[:Image:aamaprotator.zip|Download the file]]
 
[[:Image:aamaprotator.zip|Download the file]]
 +
 +
==== Lover$Boy's Map Rotator ====
 +
 +
This is the program that LOVER$BOY has created after seeing many map rotation written in PHP and are meant to be used in a Linux program (mainly used in a Terminal).
 +
 +
This program is meant to be used in Windows OS. The program is located in the website that LOVER$BOY uses to host his maps for the servers that he will host later.
 +
 +
The website is: [http://lightningbrothers.webs.com Lightning $ Brothers]
 +
 +
If you get confused with the initials of the website (or old clan tag):
 +
 +
Lover$boy 's initials are also: L$B
  
 
=== Server monitors ===
 
=== Server monitors ===
Line 109: Line 84:
  
 
A server monitor written in python using PyKDE with some more features than ArmaSpy. It lets you directly join a server by clicking on a player in it, hilights servers in your server favorites and features a buddy list.
 
A server monitor written in python using PyKDE with some more features than ArmaSpy. It lets you directly join a server by clicking on a player in it, hilights servers in your server favorites and features a buddy list.
 +
 +
=== Ranking Scripts ===
 +
 +
==== [http://jonklo.net/downloads/ Armastats] ====
 +
 +
A simple script to display the ranks of players based on matches won.
 +
 +
Direct Download: [http://www.filedropper.com/armastats Armastats]
 +
 +
(Sorry for the downtime, changed hosts and forgot about the script.)
  
 
===== Links =====
 
===== Links =====
  
* [http://wrtlprnft.ath.cx/armaspyadvanced2.png Screenshot of the menu]
+
* [http://wrtlprnft.net/armaspyadvanced2.png Screenshot of the menu]
* [http://wrtlprnft.ath.cx/armaspyadvanced3.png Screenshot of the buddy screen]
+
* [http://wrtlprnft.net/armaspyadvanced3.png Screenshot of the buddy screen]
 
* [http://svn.sourceforge.net/viewvc/armagetronad/private/wrtlprnft/armaspyadvanced/armaspyadvanced.py?view=markup View Source]
 
* [http://svn.sourceforge.net/viewvc/armagetronad/private/wrtlprnft/armaspyadvanced/armaspyadvanced.py?view=markup View Source]
 
* [http://svn.sourceforge.net/viewvc/*checkout*/armagetronad/private/wrtlprnft/armaspyadvanced/armaspyadvanced.py Download]  
 
* [http://svn.sourceforge.net/viewvc/*checkout*/armagetronad/private/wrtlprnft/armaspyadvanced/armaspyadvanced.py Download]  
* [http://forums.armagetronad.net/viewtopic.php?t=7791 Original topic]
+
* [http://forums3.armagetronad.net/viewtopic.php?t=7791 Original topic]
 
 
=== Chat Programs and other Social Stuff ===
 
 
 
* If you are Windows user you can try [http://freewebtown.com/woof/armachatron.zip Armachatron], IM software for arma players exclusively.
 

Revision as of 17:22, 18 April 2019

From time to time people do various hacks to the code or write various scripts and programs to support the game. We'll try to collect them here so you can use them too. If you have a hack you'd like to add, just add it here. For it to format correctly, put

<pre> Copy paste your script here, in the space inbetween the code and pre commands. </pre> </code>

Alternatively just copy and paste the script as it is, but add a space in front of every line.

Note: there is no <code> in front of the script.

Modifications to Armagetron Advanced

These usually require actually applying a patch to Armagetron Advanced source and recompiling. Not for the faint of heart!

Applying a Code Patch

So, how exactly do you apply a code patch? First, you must cd into your directory containing the source code. Next, assuming you have a unix-based server, you must use the patch utility to hack the code. The patch utility is simple to use-- here is its syntax:

patch -p0 < code_hack.patch

now compile as you normally would.

Styball, CTF and Shooting Patch

groundpig's famous ball games, shooting, CTF, HTF, and many other games types work. See Sty for instructions.


External Scripts and Programs

These are programs and scripts people have written that modify the game without requiring compiling the game.

Generators

These are scripts used to generate maps.

Labyrinth Script

This is the script that generates mazes. It requires python and almost certainly requires a Linux installation. It's never been tested in windows. It's also available in Lucifer's private area of the SVN repository. Patches should be made against that and sent to Lucifer.

Download this script

Racer Script

This script generates racer maps with walls and deathzones and obstacles. You can configure the look of the obstacles and the average amount of obstacles to be put onto the map. It requires PHP and probably runs best on linux, though it doesn't use any system- specific calls, it just prints to stdout.

The script is quite hacky and lacking any proper documentation, but not very complex, so it shouldn't be hard to hack it some more. Download the script

Map Rotation

A basic map rotator / rotation script by kyle can be found on the forums here The post also links to a detailed explanation on how to run the script on the Crazy-Tronners wiki.

Lucifer's Map Rotator

This is the rotator that used to power Swamplords on Crack before it was taken down. It includes the mazer.py script listed in Generators on this page. Probably requires Linux, it's not known to work in Windows.

Download the file

Lover$Boy's Map Rotator

This is the program that LOVER$BOY has created after seeing many map rotation written in PHP and are meant to be used in a Linux program (mainly used in a Terminal).

This program is meant to be used in Windows OS. The program is located in the website that LOVER$BOY uses to host his maps for the servers that he will host later.

The website is: Lightning $ Brothers

If you get confused with the initials of the website (or old clan tag):

Lover$boy 's initials are also: L$B

Server monitors

ArmaBell

A server monitor written by iF with tons of features for windows. Unfortunately the source code isn't available and it has been discontinued, and it doesn't even work anymore without some quirks.

ArmaSpy

A GTK server monitor written by weip in C. It runs on Linux and most likely other *nix–like operating systems too.

ArmaSpy Advanced

A server monitor written in python using PyKDE with some more features than ArmaSpy. It lets you directly join a server by clicking on a player in it, hilights servers in your server favorites and features a buddy list.

Ranking Scripts

Armastats

A simple script to display the ranks of players based on matches won.

Direct Download: Armastats

(Sorry for the downtime, changed hosts and forgot about the script.)

Links