for anyone who was keeping an eye on Teeworlds, good news; we now have an official vanilla CTF server up and running! so now you have no excuse not to play ;)
simply search "aloha.pk" in the server list and you should find it.
I mentioned this game once before, but it really deserves its own thread.
Teeworlds is a free 2D sidescroller multiplayer game, in which you mercilessly kill others with hammers, pistols, shotguns, grenade launchers and lazers, and then go on to smile about it afterwards. the "tees" are basically sadistic ultra-violent monkey-Kirbys without the inhale ability. so that's a positive thing.
I'm also hosting a temporary server at superweed.alienminds.org:27120. the password is simply "aloha". since for whatever reason you can't paste text into the IP field for direct connections, if you don't feel like typing out that domain, you can also just search for "muffin's testing server" in the server list.
tell me what you think of the game. I'm hoping to make this an official thing, if people approve. it's not our usual FPS shooter game but I hope that won't matter too much.
well, this is a bit late, but better late than never... right? :)
as some of you might know, the last 5-ish months, I've been secretly* working on a 0.75-compatible voxlap-based AoS client. as it turns out, it kind of helps to have proper foresight for that kind of project, and planning out what I needed to do was almost the direct opposite of what I did when I started it. oops. yeah, the codebase kinda quickly became a huge tangley mess of C++-ified spaghetti C code, which as you might imagine, is not very good for productivity in general, let alone long-term maintenance.
so, I've basically stopped working on it because of that. well, that, and the fact that it's voxlap, so it's not exactly cross-compatible (unless you use sonarpulse's hack of a project, but let's be real here...), or flexible enough for my personal needs... but fear not, for I have started development on Yet Another OpenGL Voxel Engine™, and this time I've done (hopefully..) proper planning :)
* unless you know Rhodo, then it's probably not so secret to you. lol
Spoiler for what proper planning means:
if you put aside the programming side of things...
it means it WON'T look or feel like OpenSpades. it'll be more like the AoS 1.0 alpha. you know, this awesome thing? ↓↓↓
looks awesome, right? yeah, I know. :) once again, not like OpenSpades. OpenGL doesn't have to mean lens flares, dust clouds, and water ripples. ugh
an outdated video, but it still mostly represents what this client can do:
the point of this whole thread: client devs in AoS community are not dead. or, uh... there's a new one? idk. stay tuned, I guess.
Edit: here's a download link for the client. default server is the best server, tug of war. be warned, babel will probably auto kick you (and any server with bdpatch installed). I'm not entirely sure why, but I know for a fact that it's a client-side issue, and the spaghetti codebase makes that kinda hard to fix. sorry.
this is a lot of fun to mess around with, so I thought I'd release it :)
as you all know, VOXLAP is a 3D voxel engine made by Ken Silverman. it's a very nice and easy-to-use engine, once you get it working, but most people either can't compile it or simply don't have the time/patience for doing so, which brings me to voxscript.
voxscript is a small program I made which combines VOXLAP and AngelScript. AngelScript has proven to be a very versatile scripting language, and besides, its arrays don't start at 1, so why wouldn't I pick it? :) I'm looking at you, Lua
how it works:
edit main.as to your liking
launch voxscript.exe
notice a problem or two
close voxscript & repeat
Spoiler for current VOXLAP support:
green: supported, orange: mostly supported, red: not supported note: whenever you see a *, that's just because I'm not sure how the pointer would transfer over to angelscript. otherwise it should be @ type lpoint3d (int-based 3D vector, mainly used for block positions) type point3d (float-based vector) type point4d type dpoint3d (double-based vector)
type kv6voxtype
type kv6data (KV6 model storage datatype -- no voxel access support) • int leng, xsiz, ysiz, zsiz • float xpiv, ypiv, zpiv • uint numvoxs • kv6data@ lowermip (might add this in, not sure) • kv6voxtype[] vox • uint[] xlen • uint16[] ylen
type hingetype type seqtyp type kfatype
type vx5sprite (supports KV6 fully, doesn't support KFA) • point3d p • int flags • union { point3d s, x } • union { kv6data@ voxnum, kfatype@ kfaptr } • union { point3d h, y } • int kfatim • union { point3d f, z } • int okfatim
type flstboxtype type lightsrctype type vspans
type vx5_struct (vx5_struct is a special type, only used by VOXLAP in global vx5 for settings, such as fog color / distance) • double clipmaxcr • dpoint3d cliphit[3] • int cliphitnum • int minx, miny, minz, maxx, maxy, maxz • int flstnum • flstboxtype flstcnt[256] • int globalmass • int16 kfaval[1024] • int anginc, sideshademode, mipscandist, maxscandist, vxlmipuse, fogcol • int kv6mipfactor, kv6col • int xplanemin, xplanemax • int curcol, currad, curhei • float curpow • int colfunc(lpoint3d &in) [callback] • int cen, amount, *pic, bpl, xsiz, ysiz, xoru, xorv, picmode • point3d fpico, fpicu, fpicv, fpicw • lpoint3d pico, picu, picv • float daf • int lightmode • lightsrctype lightsrc[256] • int numlights • int fallcheck (untested!)
global vx5_struct vx5
(might add these, they're currently called by voxscript itself) int initvoxlap() void uninitvoxlap()
int isvoxelsolid(int x, int y, int z) int anyvoxelsolid(int x, int y, int z0, int z1) int anyvoxelempty(int x, int y, int z0, int z1) int getfloorz(int x, int y, int z) int getcube(int x, int y, int z) (use hitscan_get_color with this, return value is actually a pointer)
void setcube(int x, int y, int z, int color) void setsphere(lpoint3d &in pos, int rad, int set) (use vx5.curcol for color) void setellipsoid(lpoint3d &in p0, lpoint3d &in p1, int hitrad, int dacol, int bakit) void setcylinder(lpoint3d &in p0, lpoint3d &in p1, int cr, int dacol, int bakit) void setrect(lpoint3d &in p0, lpoint3d &in p1, int) void settri(point3d &in p0, point3d &in p1, point3d &in p2, int bakit) void setsector(point3d &in p, int &p2, int n, float thick, int dacol, int bakit) void setspans(vspans@ lst, int lstnum, lpoint3d &in offs, int dacol) void setheightmap(const uint8 &in hbuf, int hpitch, int hxdim, int hydim, int x0, int y0, int x1, int y1) void setkv6(vx5sprite &in spr, int dacol) (untested!)
void sethull3d(point3d &in p, int nump, int dacol, int bakit) void setlathe(point3d &in p, int numcurs, int dacol, int bakit) void setblobs(point3d &in p, int numcurs, int dacol, int bakit) void setfloodfill3d(int x, int y, int z, int minx, int miny, int minz, int maxx, int maxy, int maxz) void sethollowfill() void setkvx(const string &in filename, int ox, int oy, int oz, int rot, int bakit) (might add this) void setflash(float px, float py, float pz, int flashradius, int numang, int intens) void setnormflash(float px, float py, float pz, int flashradius, int intens)
void updatebbox(int x0, int y0, int z0, int x1, int y1, int z, int csgdel) void updatevxl() void genmipvxl(int x0, int y0, int x1, int y1) void updatelighting(int x0, int y0, int z0, int x1, int y1, int z1) void evilquit(const string &in text)
void checkfloatinbox(int x0, int y0, int z0, int x1, int y1, int z1) void startfalls() void dofall(int i) int meltfall(vx5sprite &out spr, int fi, int delvxl) void finishfalls()
(callbacks, for vx5.colfunc) long curcolfunc(lpoint3d &in); long floorcolfunc(lpoint3d &in); long jitcolfunc(lpoint3d &in); long manycolfunc(lpoint3d &in); long sphcolfunc(lpoint3d &in); long woodcolfunc(lpoint3d &in); long pngcolfunc(lpoint3d &in); long kv6colfunc(lpoint3d &in);
void voxbackup(int x0, int y0, int x1, int y1, int tag) void voxdontrestore() void voxrestore() void voxredraw()
void kpzload(const string &in file, int &out pic, int &out pitch, int &out xsiz, int &out ysiz) void kpgetdim(uint8 *buf, int leng, int &out xsiz, int &out ysiz) int kprender(uint8 *buf, int leng, int frameptr, int pitch, int xdim, int ydim, int xoff, int yoff)
int kzaddstack(const string &in zipfile) void kzuninit() int kzopen(const string &in file) int kzread(void *mem, int bytes) int kzfilelength() int kzseek(int offset, int whence) int kztell() int kzgetc() int kzeof() int kzclose()
void kzfindfilestart(const string &in file) int kzfindfile(uint8 *)
-- sysmain API
type PALETTEENTRY type validmodetype
global const double dtotclk
(WIN32 related stuffs) global HWND ghwnd global HINSTANCE ghinst HDC startdc() void stopdc() void ddflip2gdi() void setalwaysactive(int alwaysactive) void smartsleep(int ms) int canrender() global int ddrawuseemulation global int ddrawdebugmode void debugdirectdraw() int peekwindowproc(HWND, UINT, WPARAM, LPARAM) [callback]
global int cputype (should I include this?) void setacquire(int mouse, int keyboard)
global string prognam global int progresiz void quitloop()
global int xres, yres, colbits, fullscreen, maxpages global PALETTEENTRY pal[256] int startdirectdraw(int &out frameptr, int &out pitch, int &out xres, int &out yres) void stopdirectdraw() void nextpage() void clearscreen(int color) void updatepalette(int start, int danum) int getvalidmodelist(validmodetype **validmodelist) int changeres(int xres, int yres, int colbits, int fullscreen)
global uint8 keystatus[256] • uint8 get_keystatus(int key) • void set_keystatus(int key, uint8 status) global uint8 ext_keystatus[256] • uint8 get_ext_keystatus(int key) • void set_ext_keystatus(int key, uint8 status) int readkeyboard() int keyread()
global uint8 ext_mbstatus[8] global int ext_mwheel global int mousmoth global float mousper void readmouse(float &out mousex, float &out mousey, int &out buttons) int ismouseout(int x, int y) void setmouseout(void mouseout(long, long) [callback], int, int);
void readklock(double &out time) (i might add this in, but you can access time by accessing global var dtotclk)
here's the download link: voxscript and a bare bones script, ken silverman-style: basic.as
Edit: and for the hell of it, a version that supports 1024x1024x256 maps. it can't load AoS maps, though, and I don't know of any program that can edit this size of map.. voxscript1024
Alleged abuses:Aimbot, ESP Date of recording: 4:45 AM, Feb. 5th, 2015 PST
Highlight: Go to 2:25. Not obvious at all ;)
note, not my best recording, and pubovl has a problem with z/x/c when typing in chat so it toggles functionality but still the video gets the point across
1) Votekicks last only 30 minutes. Did you wait at least 30 minutes to make sure your "ban" is not just a votekick?
Yes, I actually waited around an hour or even longer. 2) What is your in-game player name? Please include it in the subject of this topic as well.
Currently <CTRL>Muffin
3) What server were you playing on when you got banned? Reminder: We can only help you with bans that took place on aloha.pk servers.
I believe it was top 10 maps.
4) Why were you banned? Lying severely decreases your chances of getting unbanned. If your "little brother" got you banned, tell him to make an appeal, or accept responsibility on his behalf.
I had joined the Blue team and got votekicked for the reason "xx". I think they were trying to say it was a clan match but i do not speak Portuguese. A staff member may have banned me in the middle of the votekick, explaining why the 30 time limit never actually let off.
5) Why should you be unbanned?
I have not hacked in what my recollection says is a little under a year, and i have no plans to. I do not harass people (too much. if i do, they're using SMG) 6) When were you banned? Best approximate date and time, please.