Ads keep us online. Without them, we wouldn't exist. We don't have paywalls or sell mods - we never will. But every month we have large bills and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3

create a map openspades - A Tutorial for Ace of Spades.

1-Create your base map in pyspades map editor, Terravox (vxl) or
with [Create a Heightmap Tutorial]
(https://gamebanana.com/tuts/14708)


PySpades Map Editor
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pyspades/pyspades-map_editor-800bb6ea1824.zip

Terravox needs Visual C++ 2013 64bits
https://github.com/yvt/terravox



2-In Goxel, Slab6, VoxelShop or use a voxelizer [How to Voxelize Tutorial]
(https://gamebanana.com/tuts/14870)  you create all kinds of models exported in .kvx


3-You open your map (vxl) with voxed to place your .kvx models with the U then save the result with Alt + F3 the controls can be annoying I recommend you change them

Voxed download link
https://gamebanana.com/tools/7607

Change voxed and slab6 controls Tutorial
https://aloha.pk/t/change-voxed-and-slab6-controls/19681

Voxed Controls
https://aloha.pk/t/map-making-tutorial/13024


Can use this Base Map https://aloha.pk/t/9-baseplate-maps/19610
and this 450 models https://aloha.pk/t/pack-of-450-models-kvx-openspades/19578


(to save parts of the map in slab6 kv6 [max 256x256x256 voxels] you must select with the spacebar the area you want to save then duplicate it with D or T if you changed the voxed controls then move it to the air with the numpad [4,Intro,5,1,2,3 or  ←,→,↑,↓, Backspace, L Ctrl, L Alt if you changed the voxed controls] and press F7 on the object to save)

4-You create a .txt file with the name of your map inside the maps folder to be able to configure which game mode you want it to be in (it is not necessary to put scripts to play in ctf but if you want to configure it create a .txt file)
(To test your map you will need to create a server [Create a Server OpenSpades Tutorial]
(https://gamebanana.com/tuts/14441)


Arena


name = 'aim_pro'
version = '1.1'
author = 'iSkyte'
description = 'Map specialized in aim training (rifle) and 1v1.'
extensions = {
    'water_damage' : 200,
    'arena': True,
    'arena_blue_spawn' : (272, 255, 60),
    'arena_green_spawn' : (240, 263, 60),
    'arena_gates': ((239, 267, 60), (270, 244, 60))
}
from pyspades.constants import RIFLE_WEAPON
from pyspades.server import ServerConnection

def get_spawn_location(self):
    if self.weapon_object.name != "Rifle":
        if not self.name:
            return
        if self.on_weapon_set(RIFLE_WEAPON) == False:
            return
        self.weapon = RIFLE_WEAPON
        self.set_weapon(RIFLE_WEAPON)
    return ServerConnection.get_spawn_location(self)

CTF

name = 'Blood Gulch'
version = '1.0'
author = 'X-DE'
description = 'Remake of the Halo Combat Evolved map Blood Gulch'
extensions = { 'water_damage' : 100 }
protected = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8']

#scripting

from random import randrange, choice
from pyspades.constants import *
from pyspades.server import ServerConnection
from commands import choice

def get_entity_location(team, entity_id):
    if entity_id == BLUE_FLAG:
        return (357, 393, 62)
    if entity_id == BLUE_BASE:
        return (357, 393, 62)
    if entity_id == GREEN_FLAG:
        return (161, 110, 62)
    if entity_id == GREEN_BASE:
        return (161, 110, 62)

spawn_locations_blue = [
    (357, 393, 62),
    (341, 370, 61),
    (376, 376, 61),
    (337, 414, 61),
    (380, 409, 60),
    (356, 384, 55)
]

spawn_locations_green = [
    (162, 120, 55),
    (161, 110, 62),
    (146, 88, 61),
    (172, 84, 61),
    (142, 128, 61),
    (184, 125, 61)
]

def get_spawn_location(connection):
    if connection.team is connection.protocol.blue_team:
        x, y, z = choice(spawn_locations_blue)
        return x, y, z
    if connection.team is connection.protocol.green_team:
       x, y, z = choice(spawn_locations_green)
       return x, y, z

No comments yet