Server Help

ASSS Questions - But, can ASSS do this? =o

Animate Dreams - Thu May 18, 2006 2:29 pm
Post subject: But, can ASSS do this? =o
Okay, I've come up with a few ideas, but I'm not even sure if it can be done, or how it could be done. If it can, I really don't know where to start. If it's possible for any of you to point me in the right direction, that'd be great. I'm not asking anyone to do any work for me. But don't get me wrong, if any of you thought something like this looked like a big enough challenge that it would be fun, and wanted to do it yourself, I wouldn't be upset. Anyway, here are my questions:

1. Can certain ships be affected less by reps than other ships, or affected not at all?

2. Can you set a delay to a repel going off?
This would work like: A player rockets past a group of enemies, presses Ctrl+Shift right as he goes by, and 3 seconds later it pushes all the players. I may also want to do damage to the enemies, so I was thinking I'd possibly spawn a fake player, have it lay a mine with prox and then repel before leaving. Could this be set to trigger when a certain type of ship hit a certain key combination, or would it have to be a command that the player set on macro? Basically, the end result should look to the player as if they drop a timed mine/grenade that has a blast strong enough to throw other ships. Possibly, instead of just sitting there, maybe the fake player could scoot forward a bit, as if the player were throwing a grenade. I've heard of someone that was able to spawn a fake player for a bomb shot that would go towards the players, a heat seeking rocket. I should look into that.

3. Can some system be set up to allow a player to create teleporters? The ideal situation would be where a player, probably only one ship, would be able to set an entry point and an exit point. I'm pretty sure this would be really hard, but maybe having pre-set teleporter regions that had to be activated by a player would be possible? I haven't read very much on ASSS regions, maybe they can help out somehow. I guess I should go read more.

These are also the ideas I currently have on how to these things. If what I'm talking about is impossible, that's what I'd like to know, and if you have any other ideas on how to do these things.
Mr Ekted - Thu May 18, 2006 2:47 pm
Post subject:
1. The server could be setup to filter out reps to certain players, but the client cannot do a different effect per ship type.

2. The delay part could be done by the server, but this create a strange and undesireable jump of the source ship when the repel packet was sent.

3. The server can warp ships to arbitrary locations any time it wants, but they would lose their momentum and orientation.
Muskrat - Thu May 18, 2006 2:56 pm
Post subject:
Don't listen to Ekted, you can hack up ASSS to preserve the velocity and orientation, though there was the weirdness with the weapons being a little off that I don't think was ever solved.

Also, I think #1 is possible but I'm not sure how to do it.
Animate Dreams - Thu May 18, 2006 3:03 pm
Post subject:
Filtering out reps? Would that be done in a module, or something in the source itself?

I don't mind the ships losing their momentum and orientation, and I know I could write a module to just ?warpto players as they entered a certain place, but the problem is getting these sections activated by a certain player. If it comes to it, it should be simple enough for me to just have regions set up before hand, and the player could enter them and type ?activate, or something, to activate them. But, I'd like for players to decide where they wanted the portals. Then again, that may not be such a good idea.
Smong - Thu May 18, 2006 3:19 pm
Post subject:
To make different ships feel different repel strengths you have to send them per player settings. This is not something you should send all the time, for example you do not want to change the repel strength depending on how far you are from it. What is more sensible is different ships react differently to repels, but a specific ships will always in the same way. For example, warbird told normal repel speed/time, javelin told double repel speed, spider told half repel time. It's probably easier to set the repel time and distance to 1, than to filter out reps since that means modifying one of the core modules (read: not pluggable).

You may already know how you want the warping to work, but I suggest preset stationary entry points. A certain player would be given the ability to plant an exit point. Otherwise the special player will have to plant both the start and end, meaning they will have to travel the map and will probably get bored or killed doing so.
Animate Dreams - Thu May 18, 2006 3:27 pm
Post subject:
Good idea, Smong. But do you know of a way where the player would be able to set the exit anywhere they wanted? That's what I originally intended to do, and I suppose I still want to try it, but I'm pretty sure that given the chance players will find as many cheap things as they possibly can to do with it, and instead of having to keep modifying the map and adding safeguards to keep the cheapness down, it might be a better idea to just limit where the player can set their exit points. I'd prefer to not have to do that, though.
Smong - Thu May 18, 2006 3:37 pm
Post subject:
You would set the exit point with a command, and to limit it to certain areas you can use a region and check to see if the player is within the region before allowing the exit to be planted.
Bak - Thu May 18, 2006 5:29 pm
Post subject:
all 3 are possible, though for #2 you'd have to disable the repel graphic and create a custom lvz animation which you could move to where the player is and turn on, so the player firing the repel would see it at the right time (have to do it with the sound too)
Mr Ekted - Thu May 18, 2006 5:47 pm
Post subject:
Muskrat wrote:
Don't listen to Ekted, you can hack up ASSS to preserve the velocity and orientation


As far as I know, the warp stuff only sends x,y. Am I wrong?
Smong - Thu May 18, 2006 6:04 pm
Post subject:
Yeah the warp packet is only xy, muskrat is talking about forcing a position packet onto a player.
Animate Dreams - Thu May 18, 2006 6:22 pm
Post subject:
Well, I probably won't have a repel graphic. Since it's supposed to just be the force from the explosion of the mine, grenade, or whatever, I don't feel like I need one, though I'm sure it would look cool to have a tiny shockwave graphic with the blast... like when Alderaan blows up on the special version of A New Hope. O_o
Animate Dreams - Thu May 18, 2006 6:47 pm
Post subject:
Idea 4: One of the ships, in place of bombs, gets a fake player spawned that immediately uses a rocket and starts shooting forward. As the player turns left and right, the fake player will too, but because of the force of the rocket controlling will be hard. As it gets to a player, or wall, I suppose, it will bomb, probably repel, and disappear.

I keep talking about using fake players. I don't suppose there's any way of getting around it using one of my ship slots?
Bak - Thu May 18, 2006 7:03 pm
Post subject:
well fake players don't have to obey any settings, although firing a ship might look weird.

You already have the repel graphic in your graphics/ folder, just need to put it appropriately into a lvz.
Mr Ekted - Thu May 18, 2006 8:22 pm
Post subject:
Smong wrote:
Yeah the warp packet is only xy, muskrat is talking about forcing a position packet onto a player.


If you send a position packet TO the client that it's for, the client will accept is as its own position/etc? Interesting. So you can turn on stuff like xradar/stealth/etc?
Muskrat - Thu May 18, 2006 8:51 pm
Post subject:
Yes, Brain was doing some experimenting with cloaking.
Animate Dreams - Thu May 18, 2006 10:02 pm
Post subject:
If fake players don't have to obey settings, then I can still use them without having to make them, say, take up my Shark slot, right? But... I'm really not sure how to define settings for them, then. Oh, and is it possible to change graphics for the fake players? Like you said, shooting a ship would just look really weird. Maybe if it was a Lance, that thing never looked like a ship anyway.

Oh, and if any of you have any links for me to go to see some of the things where people have done stuff before, like I guess forcing the position packet on the player was hs_ufo, I'd be very appreciative. For example, I'd love to see whoever's work it was that made the "heat seeking rockets" with the fake player... since a lot of what I want to do is similar to that.
Smong - Fri May 19, 2006 4:56 am
Post subject:
Animate Dreams wrote:
If fake players don't have to obey settings, then I can still use them without having to make them, say, take up my Shark slot, right? But... I'm really not sure how to define settings for them
You have to code the behaviour you want into the module that controls the fake player. Not all settings can be unique for fake players, for example the ship graphic and the amount of damage a weapon does.

Animate Dreams wrote:
if any of you have any links for me to go to see some of the things where people have done stuff before, like I guess forcing the position packet on the player was hs_ufo
I have written some modules that exploit asss: door, autowarp3, moveto and autobrick. You can find them here http://toktok.sscentral.com/ss-asss.html

Asss's strong point is more control over balls, flags, and bricks, most other things can still be done in subgame with a bot.
Animate Dreams - Fri May 19, 2006 5:21 am
Post subject:
Quote:
You have to code the behaviour you want into the module that controls the fake player. Not all settings can be unique for fake players, for example the ship graphic and the amount of damage a weapon does.


Ehh. I feel dumb.
Any modules out there with examples of using fake players for random stuff like that?
Animate Dreams - Fri May 19, 2006 5:23 am
Post subject:
Oh, and where did all those posts go, like the one telling me another way to change reps....
Smong - Fri May 19, 2006 11:15 am
Post subject:
At this point I'm not sure how much of asss you have actually looked at, it comes with an autoturret module that shows fake players doing stuff. If you don't know C you should put fake players on a back burner for now.

What other way to change reps? Try scrolling up.
Animate Dreams - Fri May 19, 2006 2:40 pm
Post subject:
It's true, I haven't looked a ton into asss. And I'm really not so great at programming. Most of this stuff is on a back burner. But, I shouldn't plan to ever be able to implement this stuff if it turns out overly complex, or if it's just impossible. Also, I may not have to do the programming myself, but if someone else is going to do it or help me do it, I'd like to be able to have some stuff to show them. In the case of the fake player, I was really hoping for the specific module someone wrote before (wish I could remember who) that used a fake player for rockets, since it would cover more of what I wanted than the dropturret module would.

Sorry if I ask some dumb questions sometimes, 'cause a lot of times I really don't know what I'm doing.
Dr Brain - Sun May 21, 2006 11:40 pm
Post subject:
Mr Ekted wrote:
[..]



If you send a position packet TO the client that it's for, the client will accept is as its own position/etc? Interesting. So you can turn on stuff like xradar/stealth/etc?


Absolutely. I've used this in Hyperspace as the preferred method of disabling antiwarp. It doesn't remove the prize if they forget to turn it off, and doesn't fiddle with the bounty.

And I'm already using the no velocity loss warping system elsewhere, so the "offness" bug doesn't affect me any more than it otherwise would.
Dr Brain - Sun May 21, 2006 11:47 pm
Post subject:
The problem with changing the repel strength per ship is that each client will calculate the effects of the repel independently. This means that if a player detonates a repel, each ship around it will behave differently.

This is all fine and dandy until you think about what it does to the weapons around it. Each client will think that the weapons are in a different location, which can lead to all sorts of weird things. In cases where the differences between rep strengths are minor and the area of effect of the rep is small, you may find that the differences between clients is acceptable.

Delayed rep is entirely possible, but triggering it would be easier with a command or a different weapon. If you try to use the standard rep key but delay the packet forwarding, then you'll get the same out of sync problems as I described above.

Teleporters are entirely possible. Just a matter of programming a module. The more complex the warping system, the more complex the module, but warping modules tend to be fairly straight forward.
Animate Dreams - Sat May 27, 2006 11:05 pm
Post subject:
Brain, on your anti-warp solution, wouldn't it be possible to just de-prize and re-prize anti-warp to those players, instead of shutting it off for them? I know it seems like a pointless thing to do when you can just turn it off, but this would be a plausible solution for people that don't want to permanently de-prize it, and don't wwant the "offness" of the weapons. I know that de-prizing anti-warp won't take away the bounty they get for the anti-warp prize, so players would be tempted to ping it on repeatedly to buff their bounty, but I'm sure something else could be done about that, such as if a player has to have it turned off for them 3 times within one minute, they're shipresetted, or something along those lines....

Anyway, I wasn't going to change the repel strength by ship, but change the degree to which each different ship is affected by repels, so I don't know if what you're talking about still applies. Or, maybe that's what you meant by strength, which is cool too.
So I figure filtering out reps, since the client never got the repel packet, would bypass the problem you're talking about, correct me if I'm wrong. So far, that seems the most plausible way to do things. Not that it really seems incredibly plausible in the first place, it sounds like I'd have to modify current modules, and that doesn't sound very secure to me, given my current skills. Still, plans for the future.

As for the teleporters, I knew it could be done, but I didn't know (still don't) to what extent they can be modified. I guess I'll have a few set entry points, and have ship 8 set the exit points. It will work something like this: Ship 8 finds a good spot to place the turret, uses the command ?setteleport 3, which would use the entry point labeled 3, and set the exit point where the ship is. My module will be set to take the command and store the coords so that anyone who enters the 3rd teleport area and types ?warp will get warped, without storing velocity and direction, to the coords set by ship 8. I'll restrict it so any player that sets 2 warp points gets their first erased, so any given player can only set one, And also, after one is set, it can't be changed (unless the exitpoint is destroyed) until 5 minutes is up. Not sure how I'm going to implement the exit point being able to destroyed. I suppose I'll have the module turn on an lvz graphic as the portal is set, and ship 4 will be able to use a command to destroy the portal, if they're within 5 tiles of it, as long as they can stay within 5 tiles of it for at least 5 seconds. This will hopefully mean that the portals can't be placed anywhere, they should be placed somewhere they can be easily defended, and since they don't keep their velocity, hopefully the warping players will be easy to kill if the portal is placed somewhere cheap, like the enemy's spawn. If any of you can think of any problems, technical or otherwise, with my teleporters, I'd love to hear your thoughts.
Dr Brain - Sun May 28, 2006 11:23 am
Post subject:
The bounty one is too easy to abuse, I think.

It's impossible to change the strength between ships, so yah, I was talking about changing the degree of effect. Any changing of repels between ships will introduce synch error between clients playing different ships.

As for the warping, I would try to make it as transparent as possible. That means no ?warp, just have the module warp them when they enter the correct location. Also, if you want easy to kill, just deprize them energy.
Muskrat - Sun May 28, 2006 1:57 pm
Post subject:
If you want someone to "drop" a warp destination with a command , you can use lvz moving for the graphic. There's many possibilities for interesting transportation systems for between teammates or as fixed elements in the zone. icon_smile.gif
Animate Dreams - Mon May 29, 2006 6:18 pm
Post subject:
Well, the way it's set up, initial and maximum energy is the same. But there isn't a way to just deal damage to a player, is there? But then, there is that one green, energy depletion, I suppose I could prize that green at the same time that I warped them. Although, at the moment, I can't figure out how to prize that green. I guess that's probably what you're talking about, though, and that's not a bad idea. The only problem I have is the ships don't have the fastest recharge, but then again, it's probably more fair that way.

On a side note, I don't suppose it's possible to set up a way to auto-detonate bombs, is there? The kind of detonation I mean is... well, imagine the bombs from StarFox 64. You press B, then press it again, and it detonates. I don't really need it, and I've already forgotten the use I forgot for it, but whatever, I just want to know if it's possible.

Oh, and that line from Ekted made me think, too lazy to properly quote, "If you send a position packet TO the client that it's for, the client will accept is as its own position/etc? Interesting. So you can turn on stuff like xradar/stealth/etc?"
I thought, maybe you could write a module to turn XRadar off as soon as the player turned it on. The effect would have that of being able to, I don't know, use sonar to find cloakers. Maybe it would make for a good cloaking event. But probably only if you could limit how many times they could ping their X. Whatever, I'm not going to do anything with it.

And oh, Muskrat, if those many possibilities truly interest you, I wouldn't mind if you detailed them.
Muskrat - Mon May 29, 2006 8:07 pm
Post subject:
*prize #-13

I cant think of a way to make a bomb detonate without a fake player.
Animate Dreams - Thu Jun 15, 2006 11:57 pm
Post subject:
Alright, new ideas. Here's how this is going to work: I'm going to tell you what I want to pull off, and you guys tell me what I should be reading. Give me examples of similar modules, and show me which files in the asss source I should familiarize myself with, then I thank you and print off the files so I can take them to work with me. Okay, here's the explanation:

I will probably have something like rotating maps. Basically, I've assumed that as a player enters the zone, I will have a module to automatically ?send him/him to the arena that is currently being played. As the game(CTF, probably set to 10-20 minutes) comes near an end, a module will ask them which map they want to play next. They will vote, and when the game ends, they will all be ?sent to the corresponding arena, and players entering the zone will now be redirected to this new arena. Past that, there are going to be more options than just the maps... the voting module will also have a choice "event", which will let them play an event instead. Events will be like the ones seen on the popular MERV bot. (I'm already looking through Cham and Smong's elim.py module) I'm not sure exactly how I'm going to do this part, I'll probably have a separate arena for the events, but I think it would be cool to have the events hosted in one of the pub maps. Needless to say, I'm not going to have the bot reset their score. That's just an idea, I'll probably end up just having them in a separate event arena. Since it will be the voting module running all this, the events will pretty much be mandatory.

Issues this raises:
With the normal game being put on pause to play events, people can't just play pub if they want. Even though it may annoy some people, I'd still like to try this out... if enough people don't like it, I'd just do events the normal way, I suppose. Or, an alternative would be to have the pub events. At first, I would just have your standard death match, first to however many kills wins. So in the voting module, it would just come up as a choice to the players... press 1 for this map, 2 for this map, 3 if you'd like to play DM instead.... This would mean that no one would ever have to come in the zone and wait for an event to be over, as well; players could join even if the event had been going for a few minutes, they'd just be at a disadvantage.

Also, their kills/deaths? Is there a way to have that information to stay even when switching between subarenas? If not, I can just put it in a ?stats query, I suppose. Which is something I want to do anyway, to store things like, total flags scored, wins and losses in flag games, also keep a record of their event wins and losses, probably even rank them this way. This way a player could tell if they were the best elim player or sniper dueler ever, stuff like that. If it matters, I'm already using the mysql database module.

These are the only major issues that I've thought of, or at least that I'm remembering now. I'm going to hop in bed. Oh, and if there's some stuff in this post that seems dumber than normal, it's because I'm tired.... Anyway, if you guys could give me some places to look, that would be awesome.
Smong - Fri Jun 16, 2006 6:54 am
Post subject:
I don't think you need to pause the pub game to run events in pub. Did you ever play in Battlefield? They had events in pub as well as the flagging game. So for example either at a random time or after a yes/no vote you have 10min to get the most kills inside that time period (deathmatch). Of course this method wouldn't work very well with elim or spiders/zombies.

Since I never wrote the pub changer, I never thought of the problem that your score wouldn't follow you. The way I would have done it would be to write the new mapname to arena.conf and then recycle the arena. Recycling the arena works on all clients, not just cont (unlike /?sendto).
Animate Dreams - Fri Jun 16, 2006 6:52 pm
Post subject:
Well, even though I'm not worried too much about what will happen to non-continuum users, I do like the rewriting arena.conf idea. I assume the players won't have to re-download the maps every time? It only makes sense, but I figure I should check. No, I never saw Battlefield. And what did you mean by not having the pub game stop? I plan on having it change from CTF to DM, kinda... well, imagine Quake, you play a standard death match one time, and then you just change the win requirements. Obviously I don't want things like Elim since the players would have to wait to join the game... so I'm really not sure how I'm going to handle other events. Of course, some events will just be the standard kind, but I'd like most of the events to be automated. What exactly would I use to rewrite the arena,conf? I mean, what interface do I need?
Smong - Fri Jun 16, 2006 9:31 pm
Post subject:
I would try the I_CONFIG interface, SetStr and with the temporary flag set to true (so it doesn't actually write, making the file bigger an bigger). Also the arenaman interface for the recyclearena. And no, players will only have to download each map once as usual.
Protoman - Sat Jun 17, 2006 11:10 pm
Post subject:
How about a bomb that when shot , goes off after a certain amount of time , dosen't need to hit the wall to cause shrap.
Bak - Sun Jun 18, 2006 1:30 am
Post subject:
invisible fake player warp to location of the bomb after x seconds
Chambahs - Sun Jun 18, 2006 10:23 am
Post subject:
So to sum everything up, YES asss can do that.
Protoman - Sun Jun 18, 2006 2:16 pm
Post subject:
So then, I ask, where is this uberleet zone with all these cool features? icon_wink.gif
Animate Dreams - Sun Jun 18, 2006 6:25 pm
Post subject:
Haha. Right now, my excuse is that I'm learning, and none of those features are in yet. I'm working on it, though... I've been trying to read through autoturret.c, but to tell the truth, I can't make heads or tails of what's going on in there. I've been looking through some other modules, and I actually understand, I'd say, 95% of the elim.py module, so I think I can add the multiple maps and the voting I was talking about, without too much extra learning. There are still a few things I don't know how I'm going to do, like, add a time limit to my game and get the voting part t go off at a certain time before the game ends, tiny things like that... shouldn't be too hard. As for a lot of the other ideas... um, well, those may even have to wait until I can take some computer classes in python and C., which would be like August or September when I start college again.

As for where my actual zone is, it doesn't show up on the zone list and I'm not really sure why, but I haven't bothered to give it any thought. I guess I could post my IP and port on here, but... uhm, I've got to clean up some things first, where I'm using people's copyrighted material(shipsets, maps, etc.) I figure it's fine when i'm just testing things to see what it's going to be like when I actually do get my own stuff, but if I'm going to put the IP out in a public place....

Okay, think I cleaned it all up... here's the IP and port: 24.183.192.104:4000
There's really not much of anything done, but I suppose you could go play with ships 1-3 if you wanted. Those ships are about 3/4ths done, but I've kind of forgotten about tweaking them the rest of the way until I get a little bit done on the other ships, so I really know how they're going to mix.
Dr Brain - Sun Jun 18, 2006 7:35 pm
Post subject:
Make sure the directory module is uncommented in modules.conf.
Chambahs - Mon Jun 19, 2006 1:47 am
Post subject:
Protoman wrote:
So then, I ask, where is this uberleet zone with all these cool features? icon_wink.gif


http://forums.minegoboom.com/viewtopic.php?t=6382

GG
Animate Dreams - Mon Jun 19, 2006 8:58 pm
Post subject:
Okay, my original plan was to write a module that would let them vote which map they wanted to play, then if they wanted to play CTF or deathmatch, or anything else I come up with, and then the module would change the map and set up whatever settings were needed for those things. But thinking about it, it would make much more sense to have the vote module just call the CTF module, or the deathmatch module, and then whenever they are done with their game, call the voting module, right? I figure I'll still have to modify the CTF and elim modules, but probably not as much, and it would probably be easier to understand than having one uber module. Well, I don't know how to call a module from a module. Anyone wanna help me out there?

Oh, and lol, all I had to do was uncomment directory... wonder why I haven't seen that in anything I've read?
Chambahs - Mon Jun 19, 2006 10:48 pm
Post subject:
Ani, you are trying to do what i tried to do. Trust me its muchhhhh less complicated just using my arena swapper module and attaching modules to the arenas. The only problem is that you wont have a staff member on to switch arenas whenever players want to play something else.
Animate Dreams - Mon Jun 19, 2006 10:57 pm
Post subject:
I don't know how to do that and keep zone stats like kills and deaths global across arenas. My only problem is getting the vote module to start the CTF module, really. I'm pretty sure I can come up with a way to have the vote module start once a CTF game ends.
Chambahs - Tue Jun 20, 2006 7:58 am
Post subject:
Well pretty much the only way you are going to be able to do that is to put it into one huge module, which is both bad and more time consuming. The reason why we avoided this was because of debugging and alot of other shit. One way you can do it, is by using true/false at the beggining and end of games to turn on/off voting, and other modules.
Dr Brain - Tue Jun 20, 2006 8:22 am
Post subject:
If you're going to recycle the arena anyway, just swap in and out the auto attach settings.
Animate Dreams - Wed Jun 21, 2006 9:52 pm
Post subject:
Ok, this isn't ASSS related, but... can you guys think of a way to give a ship a 1 hit kill without using EMP? I just used EMP so I could up the damage percent and use an L1 bomb... but I want someone else to have EMP. I don't want to give the sniper a higher bomb level because the blast radius would be too high. Any suggestions?
Dr Brain - Wed Jun 21, 2006 10:10 pm
Post subject:
Higher bomb level wouldn't change the damage anyway. The only thing I can think of would be a level 2 thor.
Cyan~Fire - Thu Jun 22, 2006 10:21 am
Post subject:
Higher bomb level does change the damage, just not in a direct way. An explosion at the same point for an L2 bomb will do more damage than one with an L1 bomb.
Chambahs - Thu Jun 22, 2006 11:31 am
Post subject:
Give it a shitload of shrap that only lasts 2 seconds.
Animate Dreams - Thu Jun 22, 2006 8:28 pm
Post subject:
Cham, shrap alive time goes by bullet alive time, I'm pretty sure.
Chambahs - Thu Jun 22, 2006 9:12 pm
Post subject:
Ok then, make the settings for the shrap damage something huge in the 1/4th seconds, i forget the setting name. You'll know what im talking about if you look.
Animate Dreams - Fri Jun 23, 2006 12:00 am
Post subject:
Yes, I do, but that still leaves shrap sitting there for a while. Also, there's no guarantee that the ship will hit all the shrap. If you try it, it never works out.
Chambahs - Fri Jun 23, 2006 8:54 am
Post subject:
Thats why you gotta beef up the damage and count, then it wont matter if shrap will sit there because it will only hurt for that 1/4th second. I guess your right tho, if you cant find another way, just try to make a module that does it....
Protoman - Fri Jun 23, 2006 6:42 pm
Post subject:
Proximity Bomb Mines

As the title says.

You drop a mine. And it has a certain radius that could be 10-15 Tiles.

If an enemy ship comes within that radius, the mine turns into a bomb and gets shot at the player.
Smong - Fri Jun 23, 2006 7:12 pm
Post subject:
Proximity Bomb Mines, right, "homing mines" sounds better. This is possible, but not entirely straight forward. Depending how it's implemented, it could look glitchy.
Protoman - Fri Jun 23, 2006 7:29 pm
Post subject:
EMP Delayed Charge

Lay a mine and get the hell away. After x Seconds/Minutes Mine goes off disabling anything withing 1 grid of itself.

Special for a ship , can only be used if you get it in a green.

Once you lay the mine and it goes off your bombs are stripped from that ship or could they be downgraded and only lets say , L3 Are the EMP?
Animate Dreams - Fri Jun 23, 2006 9:33 pm
Post subject:
Lol, Protoman, are you just giving me ideas? That's fine, but if you're trying to answer one of my questions, I don't know which one. O_o Anyway, that last one reminds me of something I'm going to try to use... I think the DemoMan is going to have a "frag grenade", basically you drop a timed burst. Although, depending on the map, it may not be useful. Concussion grenades just do damage and repel you. I do need more ideas for more different grenades, though....

Anyone got any ideas on how to do a medic ship? I was thinking, prize every ship within a certain radius extra recharge, and then deprize it after a certain time or after it leaves the radius of the medic... Or maybe the medic could do something to activate the extra recharge, I really don't know how that would work. Any ideas?
Chambahs - Sat Jun 24, 2006 1:33 am
Post subject:
Well smong coded the pirates zone so that it can tell who is next to one of the merchant ships. So my best bet would be to ask him how he used the player position data to find out who the players are surrounding, then you could just use that and make it add prizes to the people around the "medic"
Animate Dreams - Sat Jun 24, 2006 4:53 pm
Post subject:
Sounds good, um... Smong? Care to give me some example code?
Animate Dreams - Sat Jun 24, 2006 9:09 pm
Post subject:
Ok, new question... how to best prize the warbird prox when it spawns? There's no CB_SPAWN, and nothing else seems to fit... by any chance, would using CB_KILL work?
Chambahs - Sun Jun 25, 2006 1:37 am
Post subject:
You can read/use my as.py module, actually, lemme post it and pick out exactly what it does:

Code: Show/Hide
from asss import *

game = get_interface(I_GAME)
objs = get_interface(I_OBJECTS)

def initial(p):
    if p.ship == SHIP_JAVELIN:
   game.GivePrize(p, PRIZE_MULTIFIRE, 1)
   game.GivePrize(p, PRIZE_BOUNCE, 1)
   objs.Toggle(p, 333, 1)
    elif p.ship == SHIP_SPIDER:
   game.GivePrize(p, PRIZE_PROX, 1)
    elif p.ship == SHIP_LEVIATHAN:
   game.GivePrize(p, PRIZE_BOUNCE, 1)
    elif p.ship == SHIP_LANCASTER:
   game.GivePrize(p, PRIZE_BOUNCE, 1)

def paction(p, action, arena):
    if action == PA_ENTERGAME and p.ship != SHIP_SPEC:
        initial(p)

def shipchange(p, newship, newfreq):
    if newship != SHIP_SPEC:
        initial(p)

def make_respawn_timer(initial_, interval, p):
    def respawn_timer():
        initial(p)
        p.as_respawntimer = None
        return 0
    return set_timer(respawn_timer, initial_, interval)

def kill(arena, killer, killed, bty, flags, pts, green):
    killed.as_respawntimer = make_respawn_timer(450, 1000, killed)
    return pts, green


def mm_attach(arena):
    arena.as_cb1 = reg_callback(CB_PLAYERACTION, paction, arena)
    arena.as_cb2 = reg_callback(CB_SHIPCHANGE, shipchange, arena)
    arena.as_cb3 = reg_callback(CB_KILL, kill, arena)

def mm_detach(arena):
    arena.as_cb1 = None
    arena.as_cb2 = None
    arena.as_cb3 = None



Pretty much the 3 major parts that do all the work are these:

Code: Show/Hide
def initial(p):
    if p.ship == SHIP_JAVELIN:
   game.GivePrize(p, PRIZE_MULTIFIRE, 1)
   game.GivePrize(p, PRIZE_BOUNCE, 1)
   objs.Toggle(p, 333, 1)
    elif p.ship == SHIP_SPIDER:
   game.GivePrize(p, PRIZE_PROX, 1)
    elif p.ship == SHIP_LEVIATHAN:
   game.GivePrize(p, PRIZE_BOUNCE, 1)
    elif p.ship == SHIP_LANCASTER:
   game.GivePrize(p, PRIZE_BOUNCE, 1)

For example, in this snippet, if p.ship == javelin, it will prize bounce and multifire.

Code: Show/Hide
def paction(p, action, arena):
    if action == PA_ENTERGAME and p.ship != SHIP_SPEC:
        initial(p)

If paction (player action) is entering the zone, and the player's ship isnt in spec, then carry on with the prizing of the respectable ship.

Code: Show/Hide
def shipchange(p, newship, newfreq):
    if newship != SHIP_SPEC:
        initial(p)

If a player changes a ship and it doesnt equal to spec, then carry on with the prizing again.

Conclusion:

This is a very simple module, and Im not trying to make you sound like a newb the way I described things, but hey, if someone else is reading this post and doesnt know, they just got a free lesson icon_razz.gif

PS: The module is done and it works, so feel free to just plug and play. icon_smile.gif
Smong - Sun Jun 25, 2006 7:17 am
Post subject:
I think the respawn timer is important too. I tried to get a more robust C implementation of it added to asss but grel didn't accept it for some reason.

To find out who is near a certain player you need to loop over all the players. Ignore players not in the same arena, in spec, etc. Then with the valid players check the distance between them and the player you chose first. Asss can give you the player positions and you can use some pythagoras to get the distance.
Tweezy - Fri Jul 07, 2006 3:29 am
Post subject: answer
Answer to medic ship... well i shouldnt answer it... but ask gameplay, he has one in ssci-a eternal dev or w.e.
Animate Dreams - Sat Jul 08, 2006 11:14 pm
Post subject:
Thanks, finally got around to putting this in, and it works. And while I'm at it, Smong, I upgraded to 1.4.3, and your CTF module doesn't broadcast flag scores anymore. It still announces victories, but not the individual scoring. Is that something relating to the upgrade, or did I unattach a module it uses?I've been messing with the scoring modules, but I tried to put it back the way it was, and I'm still not getting them. I looked through the source, and I don't remember you using another scoring module, although I guess since you're using flagcore.c you could be using the same scoring modules it does.
Smong - Sun Jul 09, 2006 11:47 am
Post subject:
You probably didn't copy the settings over, I think there are some new ones so end of game and individual captures can score differently.
Animate Dreams - Sun Jul 09, 2006 10:08 pm
Post subject:
Even though this is unrelated to ASSS... if any of you has a good idea on how to do a Pyro, that would be awesome. DS has their FireBat, but I don't want to just copy a ship. And more importantly, I want it to be able to do something cool. Like Pyroclastic(is that even a word?) grenades, or being able to set up a wall of fire, or something. I've been thinking about this and this is the only ship I don't truly know what to do with.

Protoman, this is your chance!
Chambahs - Mon Jul 10, 2006 12:20 am
Post subject:
Whats more cool than a wall of fire, is the square bricks that asss can use. Trap the nme in a box and have everyone own em
xsp0rtsfanx - Mon Jul 10, 2006 12:26 am
Post subject:
those were fun in hyperspace.. until brain took em out recently icon_sad.gif
Chambahs - Mon Jul 10, 2006 12:33 am
Post subject:
Wall of fire, you can ask brain how he did the whole fake player surrounding and shooting/using weapons, so its possible if you just put them in a line and have them shoot bombs/guns vertically toward each other and put them on the same freq.
Dr Brain - Mon Jul 10, 2006 12:53 am
Post subject:
That was actually D1st0rt. But you may get a wall of fire effect with replacing the mine graphics.
Animate Dreams - Tue Jul 18, 2006 9:00 pm
Post subject:
Okay, this question is map related... but are there any maps or groups of maps that are, um... I don't know what to call them, but you could use the maps without having to ask the creator's permission? Public licensed maps. There are all kinds of modules and bot plugins out there to use, but the only maps I've found have been on SSDL, and those seemed to be .zip files of old zone maps that I'm sure aren't appropriate to use on a public zone. One of the bigger problems in zone making(for me) has been that no one is going to want to create a fully functioning map when there's nothing to show for the zone. Not that I blame them, who wants to work for someone who's too lazy to actually finish their zone? This goes for more than a map, but graphics, sounds, and all the other things that go into a zone. Although those are never as necessary as maps. Anyway, if there are no current archives of free-use maps, would one of you be kind enough to donate me one to use during testing at least? I am going to have one of my friends make me a map once I get a lot of the other stuff working, but it would be nice to test sets in the mean time to have something better than the map that comes with the fg_ctf plugin(Nothing against you, Smong :Þ).
Dr Brain - Tue Jul 18, 2006 11:02 pm
Post subject:
I think the word you're looking for is public domain.

The map thing is something every small zone sysop with no mapping skills goes through. Your best bet is to simply make it functional and hope someone will come to your aid later in the development process.
Animate Dreams - Wed Jul 19, 2006 10:06 am
Post subject:
Yeah, but I'm sure there are people out there that wouldn't mind making their maps public domain(yes, that's what I was looking for).

But I've thought of something else. AS3 has more control over flags and powerballs, right? Well, is it possible to manipulate the way powerballs are affected? Such as making them moreso/less/not affected by inertia, or making them affected by repels? Or possibly having them slow down quicker over certain tiles or regions, or maybe not slow down at all over certain ones? I know a lot of this stuff is still client-side, but if any of these ARE possible, that'd be really cool... I've been trying to come up with new things to do with powerballs. For one, I've been thinking about having different maps in my zone with different themes. So for example, on an Ice map, powerballs have less friction and players have lower thrust. But it would be even cooler if most of the map could be snow, and the effects were worse when the player/powerball was over ice. This wouldn't help many zones, but it sure adds an extra layer to infantry zones.
Smong - Wed Jul 19, 2006 10:43 am
Post subject:
You can't really make a moving powerball react to something. There is some control when it is fired, like you could make it slower when fired from snow, but should it enter a non-snow area of the map you can't speed it up again since only the client can tell when it has entered that area (actually might be possible if you put goal tiles bordering the different terrains).

Something I wanted to do for a long time was a homing missile, I think the powerball protocol can be hijacked to accomodate this. Hmm, just thought of an even better idea. Since powerballs can go through walls you could use them for grenades/artillery/rocket barrage. Of course you are limited to 8 of these 'grenades' being active at once, but it shouldn't be too much of a problem if you have ship limits, like 1 arty/grenader per freq.
Animate Dreams - Wed Jul 19, 2006 4:00 pm
Post subject:
Dangit, now you're giving me more ideas. But I am trying to use my powerballs for actual soccer usage, so I guess this will just be put somewhere in the back of my mind.... Oh, well, I guess I'm content with just having an ice map lower inertia on everything equally....
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group