necropotame / teeworlds-infclass Goto Github PK
View Code? Open in Web Editor NEWInfection Mod with a class system for TeeWorlds
License: Other
Infection Mod with a class system for TeeWorlds
License: Other
All maps should have multiple infection area. Each round, a random area is selected and infected spawn only here. This could makes the game less linear and repetitive.
After 10 seconds, a message explain the location of the infection zone like "infection started in the underground/tower/..."
For some unknown reason ...
When a player which class is any but ninja picks up a ninja powerup, time of that powerup makes infinite, and also, he can't use that ninja, and can't fight.
Make a difference between portals, like own portals made of hearts instead of shields.
Or vice versa, portals of others made out of hearts, while only own made out of shields..
Or make some "line" between 2 portals to point their connection.
Well, title pretty much summarizes issue. (If it matters, I am running server on Debian 8 amd64)
relevant strace exempt:
open("/home/bitter/.teeworlds/maps/infc_damascus.map", O_RDONLY) = -1 ENOENT (No such file or directory)
open("maps/infc_damascus.map", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=536511, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f866b2a1000
fstat(4, {st_mode=S_IFREG|0644, st_size=536511, ...}) = 0
lseek(4, 532480, SEEK_SET) = 532480
read(4, "\375/Zf{|u\267\177z\367\37\275\322\221^\311\221\314\337\32\236\17~\206^\325\264b\257\262}"..., 4031) = 4031
lseek(4, 0, SEEK_SET) = 0
mmap(NULL, 536576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f866b20f000
read(4, "DATA\4\0\0\0\257/\10\0h\7\0\0\6\0\0\0\34\0\0\0\31\0\0\0\324\5\0\0"..., 532480) = 532480
read(4, "\375/Zf{|u\267\177z\367\37\275\322\221^\311\221\314\337\32\236\17~\206^\325\264b\257\262}"..., 4096) = 4031
close(4) = 0
munmap(0x7f866b2a1000, 4096) = 0
open("/home/bitter/.teeworlds/maps/infc_damascus.mapinfo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("maps/infc_damascus.mapinfo", O_RDONLY) = -1 ENOENT (No such file or directory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault
coredump generated with server_debug target - https://geass.xyz/core
Sometimes, when a soldier have been infected, the zombie still has grenade, the zombie can't shoot, but can hold grenade in hand.
Zombie-Boomer can do selfkills without respawn-time (and other zombies have only a small respawn time).
So we need a globally spawnprotection, maybe for the first 5secs after spawn, to avoid many selfkills for a witch-spawn.
Smoker is, like hunter, boomer and witch, a class of infected from left 4 dead 2. The name "zombie" should be reserved to infected with no ability, like in the original Infection Mod. This new class, not available by default, must be implemented to allow InfClass to run Infection-like playing session.
The server is full in the evenings, I think it's a good idea to increase maximum number of players, if possible. The maps are big, it should be okay with more than 16 players.
When an infected use a hammer on an another infected, he remove the freeze effect, then he heal him. This should works on undead too.
https://github.com/necropotame/teeworlds-infclass/blob/master/src/game/server/gamecontext.cpp#L1185
if(m_apPlayers[ClientID]->IsInfected() && pMsg->m_Team == TEAM_SPECTATORS)
{
int InfectedCount = 0;
for(int i = 0; i < MAX_CLIENTS; i++)
{
if(m_apPlayers[i] && m_apPlayers[i]->IsInfected())
InfectedCount++;
}
if(InfectedCount <= 1) // or <= 2
{
SendBroadcast("You can't join the spectators right now.", ClientID);
return;
}
}
Just add an endpoint for the barriers, IMHO it looks ugly at the moment.
When a solder accidentally kills himself with own bombs and if near them are some humans, then the humans gets infected.
We dont see who won because the classhoser overwrites the broadcast at the beginning of each round.
If a new player come before 10'', a random human class is not affected to other players.
+5 per survivor
+1 to the portal owner if a zombie dies just after teleportation
New appearance : Portal are displayed as ellipse
New behaviour : When the scientist press the fire button with hammer, the portal is oriented in the direction of the cursor. Then, the portal is able to perform rotation of the velocity of the player based on the relative angle between first and second portal.
New collision system : The active zone of the portal is a line, instead of the disk.
New mechanism : Players can change the direction of bullet when they shoots in a portal. They can also use this to perform super jump.
I suggest to add spam protection as said by @argon-radio in issue #48.
The golem is a regular infected class that is insensible to weapon push effect.
This class would be similar to Boomer, but with the following differences:
Unlike to other superclasses of zombies, after death, the zombie still would be MegaBoomer.
Someone found this bug and it was heavily abused.
You can write /class ninja and become a Ninja even as a Zombie. Worked with all other classes too.
Does not affect inf_mario and inf_warehorse. Not checked on inf_warehorse_ac, inf_skull and inf_minecraft.
Add the /customskin command to ask the server to show user skin instead of class skin.
Sometimes, I don't know when exactly that happens, but it happens.
So, sometimes, the message, "some dude has been infected" printed 4 times in a row, for a single infection, only I can give you is that there were 4 players including me on inf_skull map...
If infected won during the final explosion, the explosion continue next round. Then the wincheck is still executed and all players win 5 points
All pickups (armor / health) will disapear (or will be non-renewable). But the question of how take damage is possible is asked, since zombie infect instead of dealing damage. Actually, the can allow to deal damage by
Possible action for hammer :
Possible ability : transform infected to human with a very low chance.
I think the best sort of update to InfClass would be the sort which makes camping have more challenge, and which encourages teamwork.
Engineer
The Engineer now relies more on the Soldier to defend bases, but can kill zombies on their own with their laser rifle. They have wall jumping to make them more interesting to play
Soldier
Soldier now relies on the Ninja and Medic to protect them while they replace their mines. Their hook now gives them better movement, and they can pull zombies into their traps.
Medic
This makes them slightly more interesting to play
New super zombie class - Feral
Hooks are invaluable for killing basers. Acceleration would be useful for dodging attacks and pulling hooked players. This zombie would be very useful as a support class, and therefore a target for the defenders.
New zombie class - Ironskin
These zombies can breach defences, but not attack themselves. They are useful for hooking players and throwing them below. Defenders have to shoot them with their guns.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The changes above would work on their own, even if you think the rest of this below wouldn't work
New class - Scout/Scavenger
Generators
Each class powers up their abilities when they touch a generator
To recap, the Engineer relies on the Soldier for defence. The Soldier relies on Medics and Ninjas to cover him while he replaces his mines. Everyone relies on the Medic for healing, and everyone relies on the Scout for powering up their abilities. The Ninja relies on the Scout even more than the other classes, because they’re a combat class.
is there a possibility to ad voting on players again? only to move them to the spetators, cause sometimes there are annoying trolls who abuse the fact that they cant get banned by vote.
If engineer stays in his wall and is killed he will dead from his own wall. When he was undead he isn't frozen, but is "finally killed"
(thanks to ipoopi)
At https://github.com/necropotame/teeworlds-infclass/blob/master/src/game/server/entities/character.cpp#L1139
You can find out, that the message "You have infected a dude" is sent to the guy that was infected, but should to the guy, that have infected.
The first infected must be a normal infected, not a witch, since no other infected can spawn near her.
The sniffer is a rare infected that can detect the position of a human. This detection can be implemented in two manner :
Solution A: A laser dot indicate the direction of the target
Solution B: The target emit splash effect that are only visible for the sniffer. The splash effects follow the target and indicate the path to find him.
If the sniffer infect the target, he obtains +5 points. In addition, since the sniffer use his nose to understand the world, he is insensible to flash grenades
There may be only 1 human with this class, and only if there's enough players in-game(spectators aren't counted).
Human that will have this class selected randomly.
The King may have all weapons, and slow ammo regeneration(1 ammo per 3-5 seconds probably).
The King can place The Ammo Dispenser by hammer.
The King cannot be infected by damage, and get to be infected only when he dies.
When The King dies, a new King selected randomly from humans, chance that some human gonna be the new King is depending to amount of kill in current round(not amount of kills in total).
The Ammo Dispenser is a random weapon pickup which contains 1 ammo(picking it up gives 1 more ammo).
When The Ammo Dispenser have been picked up, it gones(just gets invisible and unusable, but still appears there) for 10 seconds, then it appears on the same place, with new random weapon with 1 ammo.
If humans won't pick up ammo from The Ammo Dispenser, it will not stack there over time, but will always hold only 1 ammo, so the most efficient way to use it, is to pick ammo from it, right after it appeared.
The Ammo Dispenser does not disappears over time.
If zombie touches The Ammo Dispenser, then it explodes and kills everything in it's range.
The title says itself.
This would avoid situations like #26.
This should reward good players in a more visible way than the score.
Add a mute and unmute option.
/mute : Ask the server to don't print chat message from
/mute game : Ask the server to don't print game message like " has infected "
Suggest to add this map to the list: https://www.teeworlds.com/forum/viewtopic.php?id=11624
Today I saw a player who was three times in succession the "undead". When he was infected, he re-connect to the server until he was an undead zombie.
Maybe we can fix this by adding an 1min-ban for "leaving as infected".
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.