Command and Conquer: Renegade Official Forums - RDF feed
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
readme: Quote: This is a plug-in designed to work with SSGM2.02 for cnc_renegade. It was written by reborn from MP-Gaming.COM (fm_reborn@hotmail.com). This is a first release version and probably has some bugs in it, with feedback I will fix bugs found. This plug-in is based on the system first created by black-cell. However, it has been developed to be configurable for server owners so that they might set it up in a unique way for there own server. The plug-in allows the following to happen: There is allot of infomation following, but you should also check out the commander.ini for details on each setting. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Vote in a commander for your team. useage: !PollCommander;!pollcommander;!POLLCOMMANDER;!Pollcommander;!VoteCommander;!Vote commander;!VOTECOMMANDER;!votecommander;!PC;!pc;!Pc;!VC;!vc;!Vc Then the player name. For example: !pollcommander reb00b The name does not have to be the whole name either, there are allot of players with stupid ass weird names like: "o0angelx-x1\!\1||!", to type there name would be a pain in the butt. In this instance you could type: !pollcommander angel And it would still work, as long as "angel" was not a substring of someone else's name. This will then start a vote going, team mates can then either !vote yes or !vote no. The amount more yes votes then no votes needed is configurable in the commander.ini file. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; voting for a commander. useage !poll;!Poll!POLL Then your answer, yes or no. For example: !poll yes, or !vote NO would be acceptable, but only when a vote is occuring... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Check who your team commander is. Useage: !commander;!Commander;!COMMANDER;!TC;!tc;!Tc;!TeamCommander;!TEAMCOMMANDER;!team commander If there is a commander for that dudes team, then it will tell them the commander name, if not, it will page temm with instructions on how to start a vote. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; check the team fund. Usage: !teamfund;!TeamFund;!TEAMFUND;!TF;!tf;!Tf;!tF This pages the player what the current teamfund value is. The team fund is controlled by the team commander. It can be used to distribute money to other people or used to call in supply drops. If you run the base defense plug-in, it could be used for that too... The server owner can also configure a trickle to the team fund to, at defualt it is set to increase on it's own by ten credits every ten seconds. But this is subject tot he server owners change. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; donate to the teamfund. Usage: !TFdonate;!tfdonate;!TFDONATE;!TeamFundDonate;!teamfunddonate;!TEAMFUNDDONATE;!T FD;!tfd Then the amount to donate, for example: !teamfunddonate 500 If I have 500 credits, then I would donate 500 credits to the team fund. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; healing_aura The team commander gets a healing aura (can be toggled off by the server owner in commander.ini), this aura heals near-by team mates and there vehicles. The strength of the aura, and the area of it's effect is controlled byt he server owner in commander.ini ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; donating the team fund to a player, useage: ONLY FOR COMMANDER !tfdonateplayer;!TFDONATEPLAYER;!TFdonateplayer;!TFDonatePlayer Then the player name and the amount, for example: !tfdonate reb00b 500 If there was 500 credits in the team fund, and player reb00b was on the commanders team, then he would be given 500 credits from the team fund. This command can only be used by the team commander. the name of the player works the same as the votecommander command, i.e you only have to type part of there name ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ordering a supply drop, usegae: ONLY FOR COMMANDER !Supply;!SUPPLY;!supply The team commander can order a supply drop, a chin00k drops off a box at there position. At default it costs 500 credits, but this is controlled in commander.ini for server owners to change. The supply box will grant a refill to whatever player picks it up, and will refill the health and armor of any tank that picks it up. The supply can be called in an infinite amount of times, but the server owner controlls how often you're allowed to call in it in the commander.ini file. Once every x seconds... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; blocking the harvester, usegae: ONLY FOR THE COMMANDER !BLOCKHARV;!BlockHarv;!blockharv;!BlockHarvester;!BLOCKHARVESTER;!blockharvest;! bh;!BH;!Bh The commander can block the harvester with this command. He might do this when the enemy holds the field for example. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; un-blocking the harvester, useage: ONLY FOR COMMANDER !UNBLOCKHARV;!unblockharv;!UnBlockHarv;!UnblockHarv;!UNBLOCKHARVESTER;!unblockha rvester;!UnBlockHarvester;!UnblockHarvester;!UBK;!ubh The commander can un-block the harvester at any time with this command. If his team re takes the field for example, he would obviously want it to return to normal duties. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; finding out the commander abilities, useage ONLY FOR COMMANDER !abilities;!ABILITIES;!Abilities When the commander is voted in, he is paged telling him he has extra abilities and typing !abilities will tell him about it. If he does type !abilities he will be paged with such info, because there are allot pf people who will forget the syntax or even what they're capable of. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Advanced c4 message, useage: ONLY FOR COMMANDER !c4;!C4 This is the same as the normal !c4 command, however when the commander types this, he is paged additional infomation about the c4. Specifically what building they are placed clostest to, and how many of them. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ordering your team, useage: ONLY FOR COMMANDER !order;!Order;!ORDER Then your message... For example !order Defend the hand of Nod guys This would then page every player on your team "The team Commander orders you to: Defend the hand of Nod guys". This is an important command for motivating your team... You could for example do !order Buy flamers for flame rush, is excallent for setting up plans and controlling the team for better team work. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Checking the status of the harvester, useage: ONLY FOR COMMANDER !hstatus;!HStatus;!Hstatus;!HSTATUS This will page you the health percent of the harvester. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Proximity mine disarming aura, useage: ONLY FOR COMMANDER The team commander (if the server owner has it enable) will be granted a aura similar to the healing one, however this one disarms enemy mines near him. The area of effect is determined by the server owner. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; As well as these commands, you will also be paged warnings about the health of your buildings and harvester should they fall below 50%. This might be a good time to use the !order command to get team mates to repair... If on the next map the commander from the previous map is still on the same team he will carry his command over. If however he is teamed to the other side he will lose it. This is to encourage the use of the commander as much as possible. At present, a player can start a poll for himself to be the commander, this isn't really in the spirit of team work, however it may make more use of the commander as players tend to be inherently selfish, hence the need for such a system. I may in the next version not allow them to start a vote on themselves, or perhaps let the server owner choose. I don't run a renegade server, I have no real use for this plug-in and have made it for the sole reason to help other server owners. If you use this plug-in and modify it, if you see a problem, either tell me, or preferably submit code. Don't be selfish, release the source code. I believe it is only with this attitude that Renegade will continue to keep it's diminishing player base. I really mean it, this thing took me quite a while to write, and if you're reading this, then I did it for you. So if you modify the source code and add your own code, then release it. To use this plug-in, refer to SSGM.ini in your SSGM2.02 server folder. You'll need to add the .dll to the server folder, and make an entry in the [Plugins] section, mine looks like this: [Plugins] 01=commander You'll also need to add commander.ini supplied to your SERVERs directory. This is where you can configure all the settings for the commander system. You'll also need to place NOD_Supply.txt and GDI_Supply.txt in your servers DATA folder too. Please note the emphasis of where to place the .dll and .ini file, that actual server directory, as where the two text files for the cinematics have to go in the DATA folder. I urge you visit my forums and my site @ MP-Gaming.COM. I would also like to direct you to Black-Cell.NET. There is a history of this game there that most people are oblivious to, and without Black-Cell, none of the feature rich servers we have today would be here. They also have a renegade server back up and running. Be sure to find it in the WOL server listings and join. It's hella fun. Download
SUPER !
It's incompatible with Resurrection. But nice work dude.
Hey my server restart with every command. i dont know what to do !ps Zeiss Test it Server: DT Clan AoW
The plug-in was tested one three servers, one of them went live with over 30 players and they never had this problem. There sole purpose was to test it for bugs and deliberately try to break it. It's very strange that you're experiancing this. Can you provide concise detailed info in this please?
hi, I attached crashdump and other infos it would be nice if you look after that ------------------------------------------------------------- ICR Log ------------------------------------------------------------- <DT_Bot>BRenBot 1.52 reporting for duty! Type !help for a list of commands. <DT_Bot>Host: BRenBot 1.52 starting up. Type !help for a list of commands <DT_Bot>Host: [BR] Settings for C&C_Islands.mix: Time Limit: 30, Mine Limit: 30, Vehicle Limit: 8. Donations are allowed after 5 minutes. <DT_Bot>Host: This server is running a team commander plug-in, you can start a vote for a team mate to be your commander by typing "!pollcommander <name>". <DT_Bot>Player DTZeiss joined the game <DT_Bot>Host: [BR] [DTZeiss] Zeiss ist da.... <DT_Bot>Host: [BR] DTZeiss weiss= Das beste Spiel der Welt ist Command&Conquer Renegade. (834 HyperPunkte) <DT_Bot>Host: There is team fund available to your team, type "!teamfund" to see how much, the team commander controls this fund. You can donate to the fund with "!tfdonate <amount>". <DT_Bot>Host: DTZeiss has a total score of 579873 and is ranked at position 3 out of 587 players. <DT_Bot>*DTZeiss: !pc zeiss <DT_Bot>Initializing Westwood Online Mode <DT_Bot>Logging onto European Server <DT_Bot>Creating game channel... <DT_Bot>Channel created OK <DT_Bot>Loading level C&C_Islands.mix <DT_Bot>Host: Teams have been remixed. <DT_Bot>Level loaded OK -------------------------------------------------------------
I cannot read crash dumps. I am un-able to. However, give me your msn and I will try and debug the problem with you tonight. This will require effort on your part aswell as mine. Also, what other software is your server running? Any other plug-ins, perhaps renegade resurrection?
First, try running the server with nothing but the plug-in. If it still crashes then there is something wrong and the people testing it need to run away and hide before I kill them. However, if it doesn't crash, add the other stuff back one by one, then you have found the problem.
reborn wrote on Tue, 28 April 2009 10:37 First, try running the server with nothing but the plug-in. If it still crashes then there is something wrong and the people testing it need to run away and hide before I kill them. However, if it doesn't crash, add the other stuff back one by one, then you have found the problem. The stuff he listed is all plugins for BRenBot and thus *shouldn't* affect the server... :/
Ah right, thanks. That's pretty weird then, everyone else had no problems at all with it :-/ Zeiss, if you're around still in 4-5 hours from now catch me on msn fm_reborn@hotmail.com, I will try to resolve the problem.
reborn wrote on Tue, 28 April 2009 13:37 First, try and the people testing it need to run away and hide before I kill them. LMFAO o.O
reborn wrote on Tue, 28 April 2009 19:37 First, try running the server with nothing but the plug-in. If it still crashes then there is something wrong and the people testing it need to run away and hide before I kill them. However, if it doesn't crash, add the other stuff back one by one, then you have found the problem. For me it worked without crashes.
Well, the dude hasn't got back to me at all, I tried recreating the bug on my own, but for the life of me I cannot get it to happen. I direct connected using his name. I wasn't sure if he was using "*DTzeiss" or "DTzeiss" from the message he posted, so I used both thinking possibly (although really really unlikely) it could be the "*" part of the name that was causing it. Whatever I tried, I couldn't get it to crash. Here's a movie showing it, although the movie only lasts a very short time, I tried for ages with various other methods to get it to break. http://game-maps.net/staff/reborn/noproblem.wmv Unless the dude gets back to me, I can only assume he was running some other software besides that of which he mentioned that caused it to crash. Everyone else using does not have this problem. Weird.
Hey reborn, looking good, few things though: - Could you please stop the advertising when there are no players in the server? - !hstatus didn't work for me - The server didn't page me when my AGT was at half life. This might be because I'm running a co-op server, I'm not sure though.. On a totally unrelated note: The veteral plugin isn't detecting bot kills aswell Anyways: Thanks for this great release, love your work
Prulez wrote on Wed, 29 April 2009 10:50 Hey reborn, looking good, few things though: - Could you please stop the advertising when there are no players in the server? - !hstatus didn't work for me - The server didn't page me when my AGT was at half life. This might be because I'm running a co-op server, I'm not sure though.. On a totally unrelated note: The veteral plugin isn't detecting bot kills aswell Anyways: Thanks for this great release, love your work You can disable the advertising of the mode (incidently to anyone else reading this, it doesn't advertise MP-Gaming.COM, it just tells players about the commander system and the commands etc etc) by turning it off in the .ini file. However, you're probably right... Even if it is turned on, it probably shouldn't send those messages without anyone in the server. I will release a new version that does what you want it to do. I will check hstatus, I may of been too reliant on the people testing in hindsight. Was it only the AGT this happened to, no other building, just the AGT was broken? The veteran plug-in wasn't designed to work with bot kills. I'm pretty sure it would be possible though with minimal effort if you need it to. I was hoping people would pick up these plug-in's and develop on them themselves and re-release them with new cooler add-on's. The veteran plug-in specifically was released with this in mind and only had place holder reward systems. As no-one has picked it up, I will return to it soon, re-visit it and make a 1.1 version that is better, I will make sure I include your suggestion but allow server owners to toggle that option.
reborn wrote on Wed, 29 April 2009 17:14 You can disable the advertising of the mode (incidently to anyone else reading this, it doesn't advertise MP-Gaming.COM, it just tells players about the commander system and the commands etc etc) by turning it off in the .ini file. However, you're probably right... Even if it is turned on, it probably shouldn't send those messages without anyone in the server. I will release a new version that does what you want it to do. Cool, thanks reborn wrote on Wed, 29 April 2009 17:14 I will check hstatus, I may of been too reliant on the people testing in hindsight. Aight, I'll try it again to ensure it. reborn wrote on Wed, 29 April 2009 17:14 Was it only the AGT this happened to, no other building, just the AGT was broken? I only tried TeamKilling the AGT. It didn't send me a message. reborn wrote on Wed, 29 April 2009 17:14 The veteran plug-in wasn't designed to work with bot kills. I'm pretty sure it would be possible though with minimal effort if you need it to. I was kind of aware of that, though as I'm not a coder at all I wouldn't have a clue to begin reborn wrote on Wed, 29 April 2009 17:14 I was hoping people would pick up these plug-in's and develop on them themselves and re-release them with new cooler add-on's. The veteran plug-in specifically was released with this in mind and only had place holder reward systems. As no-one has picked it up, I will return to it soon, re-visit it and make a 1.1 version that is better, I will make sure I include your suggestion but allow server owners to toggle that option. Like I said before, I personally don't have any coding experience. I think it's great what you're doing, releasing all your plugins. For the record: The map I tested my stuff on was Skirmish00.mix. Maybe that kind of got in the way... Reborn, Thanks for all your hard work man! I really really appreciate it
I've updated the download link on the original post to contain this link, here. It should of fixed the page problem you mentioned about buildings falling below half health. !hstatus worked fine for me, perhaps you was not the commander at the time? This update also means the explanation messages are not repeated continuously if there are no players in the server.
Since they're relevant to your veteran plugin and the commander plugin, I thought you might want to know of these bhs.dll keys.cfg entries (they might only be in the Black-Cell scripts package by default, and I'm not sure if CP2/scripts 3.x/RR have entries for them unless you make them yourself): VetInfo=Delete_Key RequestRepairs=Keypad_Star_Key HarvUplink=Keypad_Slash_Key SupplyDrop=Keypad_Period_Key
reborn wrote on Thu, 30 April 2009 01:52 I've updated the download link on the original post to contain this link, here. It should of fixed the page problem you mentioned about buildings falling below half health. !hstatus worked fine for me, perhaps you was not the commander at the time? This update also means the explanation messages are not repeated continuously if there are no players in the server. Working excellent. About the hstatus thing.. I just found out there's no harv on the map I tested it on Excellent once again, Reborn. Thanks!
Hi, I have installed commander 1.1 if I type !pc Zeiss, the server crash. the server doesn't only crash with name DTZeiss, it creashed with all names. The plug-in is currently active, just look at the DT-Clan AoW server.
Have you tried redownloading? Have you tried with an unmodified commander.ini? Are you running the right SSGM Version? (You never know..)
Zeiss wrote on Fri, 01 May 2009 15:29 Hi, I have installed commander 1.1 if I type !pc Zeiss, the server crash. the server doesn't only crash with name DTZeiss, it creashed with all names. The plug-in is currently active, just look at the DT-Clan AoW server. Pretty stange man, everyone else seems to have no problem. :-/ I did ask you add me on msn fm_reborn@hotmail.com so we can try and solve the problem, but you have yet to contact me (I am at work right now...). There must be something else on your server casuing a conflict with it :-/
if you make another release of this plugin make it so msg don't spam when there are no players.
Gen_Blacky wrote on Sat, 02 May 2009 22:45 if you make another release of this plugin make it so msg don't spam when there are no players. Dude, redownload. He already fixed that. Also: (18:34:26) (&PruCoop) DeathC200: !pollcommander DeathC200 (18:34:34) (&PruCoop) Initializing Westwood Online Mode (18:34:36) (&PruCoop) Logging onto USA Server (18:34:37) (&PruCoop) Creating game channel... (18:34:37) (&PruCoop) Channel created OK (18:34:38) (&PruCoop) Loading level Skirmish00.mix (18:34:39) (&PruCoop) Level loaded OK Server crashed when he did that, I've added you on MSN reborn.
I just found another command related to team commander that I completely forgot about. In BC, if there was no commander assigned and noone was successfully voted commander, a mod could !assumecommand.
True, but the plugin isn't connected to a server regulator.
2 more crashes: [02:49:24] <PruCoop> [Team] Kingbobom: !pollcommander kingbobom [02:49:26] <PruCoop> Initializing Westwood Online Mode [22:35:50] <PruCoop> [Team] ferret840: !pollcommander ferret840 [22:35:53] <PruCoop> Initializing Westwood Online Mode
I have no idea why its doing that. If you give me the crash dump I will see if a friend can take a look at it. If they can see why it's happening then I will try to fix the problem. I wish I could read crash dumps to be honest...
Prulez wrote on Sun, 03 May 2009 01:32 2 more crashes: [02:49:24] <PruCoop> [Team] Kingbobom: !pollcommander kingbobom [02:49:26] <PruCoop> Initializing Westwood Online Mode [22:35:50] <PruCoop> [Team] ferret840: !pollcommander ferret840 [22:35:53] <PruCoop> Initializing Westwood Online Mode Are they the only people in-game?
Zack wrote on Sun, 03 May 2009 20:56 Prulez wrote on Sun, 03 May 2009 01:32 2 more crashes: [02:49:24] <PruCoop> [Team] Kingbobom: !pollcommander kingbobom [02:49:26] <PruCoop> Initializing Westwood Online Mode [22:35:50] <PruCoop> [Team] ferret840: !pollcommander ferret840 [22:35:53] <PruCoop> Initializing Westwood Online Mode Are they the only people in-game? I don't know, I'll try to get related crashdumps ASAP. Can't really log on the box now, unfortunately.
if the player was a commander and changed teams it will still say that the player is the commander for that team he was originally on. The commander proxie aura doesn't work in 1.1, worked in 1.0 ,its set on in the .ini. When the agt reports damage it says the damage is like 5984565464 ExEric3 wrote on Tue, 28 April 2009 11:01 It's incompatible with Resurrection. But nice work dude. I use rr works fine.
why im not sure but it has some serious problems with running on mission maps.
Gen_Blacky wrote on Thu, 07 May 2009 08:13 I use rr works fine. Try restart FDS or just user quit.
Gen_Blacky wrote on Thu, 07 May 2009 02:13 if the player was a commander and changed teams it will still say that the player is the commander for that team he was originally on. The commander proxie aura doesn't work in 1.1, worked in 1.0 ,its set on in the .ini. When the agt reports damage it says the damage is like 5984565464 ExEric3 wrote on Tue, 28 April 2009 11:01 It's incompatible with Resurrection. But nice work dude. I use rr works fine. Thankyou, I will look into the proxy aura. Is this value just for the AGT, or does it happen to all buildings? wittebolx wrote on Thu, 07 May 2009 03:40 why im not sure but it has some serious problems with running on mission maps. What are these serious problems?
reborn wrote on Tue, 28 April 2009 13:23 Ah right, thanks. That's pretty weird then, everyone else had no problems at all with it :-/ Zeiss, if you're around still in 4-5 hours from now catch me on msn fm_reborn@hotmail.com, I will try to resolve the problem. hmm seems i got the same problem. server restart after using the tc cmd. so i install a new clear server and br 1.52. i add only the commander plug-in so it looks like this: [Plugins] 01=BRenBot.dll 02=commander.dll no other things added. what can i say? it crash again. now the weired part. i test some maps and on non-flying maps, the server crash but on walls flying and city flying the commander plug-in works fine.
Ah, Dirk. Thanks for the info. Would you be so kind as to try making it crash without using brenbot.dll? If I can say for certain that brenbot.dll is causing the problem I am sure I can come to a solution. Is everybody else that's experiencing crashes on the chat command also using brenbot.dll?
i test it without brenbot.dll and it crashed [Plugins] 01=commander.dll i run my server on win2000 so think that can be the problem but after i check a installation on vista, i know it its not the OS because i got the same error. so i have no clue what it is.
I use brenbot 1.52 with whole bunch of plugins for it, i use ssgm and rr and a whole bunch of different plugins one of them is brenbot.dll and it has never crashed my server yet. Reborn when any building is at half damage its says its like 58567507546 damage. I got the aura proxy to work i just recompiled it and got it working. I think peoples server might be crashing if they have a modified scripts.dll i always have plugins crash the server if the scripts.dll is modified. Thats why i just add everything to plugins.
Gen_Blacky wrote on Thu, 07 May 2009 23:41 I think peoples server might be crashing if they have a modified scripts.dll i always have plugins crash the server if the scripts.dll is modified. Thats why i just add everything to plugins. that would be a reason but i change or edit nothing. the language of the system, can that be the problem? i mean zeiss use german system, a other guy who test it on his system and me, we all use german windows. (on zeiss not sure) maybe there is a dll involved where the language is incompatible with this script. ok call me n00b for this, i have no idea about this but maybe its a reason.
Now that I've got that second vet system out of my hair, I'll update the commander plug-in, release it as a debug version, then take the crash dumps from people to pass on to a friend. I hope to have an update (that will still likely crash, but at least fix a few other things) soon. It's hard to debug because I cannot cause this crash myself at all, and no one seems to be able to give steps on reproducing the crash, perhaps it has something to do with the regulators you guys use. But don't worry, it'll get fixed.
I made some Revivable buildings commands using reborns team fund function and commander function. The team all donate to team fund and if a building dies the commander can revive the building if there is enough money in the team fund. I made it ini configurable for the amount it cost for the buildings to be revived. Requirements -Renegade Resurrection -Add to Reborns Commander plugin so it can uses its functions. Under the SettingsStruct in the .h file powerplantcost = 20000; vehiclefactoriescost = 20000; soldierfactories = 20000; refcost = 20000; basedefensecost = 20000; Under void Load(); in the .h file int powerplantcost; int vehiclefactoriescost; int soldierfactories; int refcost; int basedefensecost; Under the SettingsLoader; LoadInt(powerplantcost,"powerplantcost"); printf("The cost for a Power Plant is %i credits\n",powerplantcost); LoadInt(vehiclefactoriescost,"vehiclefactoriescost"); printf("The cost for a Vehicle Factory is %i credits\n",vehiclefactoriescost); LoadInt(soldierfactories,"soldierfactories"); printf("The cost for a Charcter Factory is %i credits\n",soldierfactories); LoadInt(refcost,"refcost"); printf("The cost for the Refinary is %i credits\n",refcost); LoadInt(basedefensecost,"basedefensecost"); printf("The cost for Basedefences is %i credits\n",basedefensecost); Add to the .ini file powerplantcost=20000; vehiclefactoriescost=20000; soldierfactories=20000; refcost=20000; basedefensecost=20000; Main Revive Commands ////////////////////// ///Revive Buildings/// ////////////////////// class revive_vehiclefactoriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Vehicle_Factory(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); if(Is_Building_Dead(Find_Vehicle_Factory(Team))) { if(GDICommander[ID]){ if(GDITeamFund >= CSettings->vehiclefactoriescost){ GDITeamFund = GDITeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Weapons Factory",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->vehiclefactoriescost).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->vehiclefactoriescost){ NodTeamFund = NodTeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Airstrip",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->vehiclefactoriescost).c_str()); } } } else if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The Weapons Factory is not dead.",Get_Player_ID(obj)).c_str()); } else if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Airstrip is not dead.",Get_Player_ID(obj)).c_str()); } else{ Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } }; ChatCommandRegistrant<revive_vehiclefactoriesChatCommand> revive_vehiclefactoriesChatCommandReg("!revive_wf;!revive_air;!r wf;!r air",CHATTYPE_TEAM,0,GAMEMODE_ALL); class revive_refineriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Refinery(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); //if(CSettings->enablerevive){ if(Is_Building_Dead(Find_Refinery(Team))) { if(GDICommander[ID]){ if(GDITeamFund >= CSettings->refcost){ GDITeamFund = GDITeamFund - CSettings->refcost; Console_Input(StrFormat("msg The GDI Commander just revived the GDI Refinary",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->refcost).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->refcost){ NodTeamFund = NodTeamFund - CSettings->refcost; Console_Input(StrFormat("msg The Nod Commander just revived the Nod Refinary",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->refcost).c_str()); } } } else if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The GDI Refinary is not dead.",Get_Player_ID(obj)).c_str()); } else if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Nod Refinary is not dead.",Get_Player_ID(obj)).c_str()); } else{ Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } }; ChatCommandRegistrant<revive_refineriesChatCommand> revive_refineriesChatCommandReg("!revive_ref;!r_ref",CHATTYPE_TEAM,0,GAMEMODE_AOW); class revive_powerplantsChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Power_Plant(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); if(Is_Building_Dead(Find_Power_Plant(Team))) { if(GDICommander[ID]){ if(GDITeamFund >= CSettings->powerplantcost){ GDITeamFund = GDITeamFund - CSettings->powerplantcost; Console_Input(StrFormat("msg The GDI Commander just revived the GDI PowerPlant",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->powerplantcost).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->powerplantcost){ NodTeamFund = NodTeamFund - CSettings->powerplantcost; Console_Input(StrFormat("msg The Nod Commander just revived the Nod Powerplant",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->powerplantcost).c_str()); } } } else if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The GDI Powerplant is not dead.",Get_Player_ID(obj)).c_str()); } else if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Nod Powerplant is not dead.",Get_Player_ID(obj)).c_str()); } else{ Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } }; ChatCommandRegistrant<revive_powerplantsChatCommand> revive_powerplantsChatCommandReg("!revive_pp;!r_pp",CHATTYPE_TEAM,0,GAMEMODE_AOW); class revive_soldierfactoriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Soldier_Factory(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); if(Is_Building_Dead(Find_Building(Team,SOLDIER_FACTORY))) { if(GDICommander[ID]){ if(GDITeamFund >= CSettings->soldierfactories){ GDITeamFund = GDITeamFund - CSettings->soldierfactories; Console_Input(StrFormat("msg The GDI Commander just revived the GDI Barracks",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->soldierfactories).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->soldierfactories){ NodTeamFund = NodTeamFund - CSettings->soldierfactories; Console_Input(StrFormat("msg The Nod Commander just revived the Hand of Nod",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->soldierfactories).c_str()); } } } else if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The GDI Barracks is not dead.",Get_Player_ID(obj)).c_str()); } else if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Hand of Nod is not dead.",Get_Player_ID(obj)).c_str()); } else{ Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } }; ChatCommandRegistrant<revive_soldierfactoriesChatCommand> revive_soldierfactoriesChatCommandReg("!revive_bar;!revive_hon;!r_hon;!r_bar",CHATTYPE_TEAM,0,GAMEMODE_AOW); class revive_basedefenseChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Base_Defense(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); if(Is_Building_Dead(Find_Building(Team,BASE_DEFENSE))) { if(GDICommander[ID]){ if(GDITeamFund >= CSettings->basedefensecost){ GDITeamFund = GDITeamFund - CSettings->basedefensecost; Console_Input(StrFormat("msg The GDI Commander just revived the GDI Advance Guard Tower",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->basedefensecost).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->basedefensecost){ NodTeamFund = NodTeamFund - GDITeamFund - CSettings->basedefensecost; Console_Input(StrFormat("msg The Nod Commander just revived the Nod Obelisk",Get_Player_ID(obj)).c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",Get_Player_ID(obj),CSettings->basedefensecost).c_str()); } } } else if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The GDI Advance Guard Tower is not dead.",Get_Player_ID(obj)).c_str()); } else if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Nod Obelisk is not dead.",Get_Player_ID(obj)).c_str()); } else{ Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } }; ChatCommandRegistrant<revive_basedefenseChatCommand> revive_basedefenseChatCommandReg("!revive_ob;!revive_agt;!r_agt;!r_ob",CHATTYPE_TEAM,0,GAMEMODE_AOW); Commands used to kill buildings so its easier to test the revive commands. ///////////////////// ///Kill Buildings//// ///////////////////// class kill_vehiclefactoriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Vehicle_Factory(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); Vector3 position = Commands->Get_Position(thebuilding); Commands->Apply_Damage(thebuilding,99999,"Death",false); if (Team == 1) { Console_Input(StrFormat("msg War Factory Destroyed",Get_Player_ID(obj)).c_str()); } else { Console_Input(StrFormat("msg Airstrip Destroyed",Get_Player_ID(obj)).c_str()); } } }; ChatCommandRegistrant<kill_vehiclefactoriesChatCommand> kill_vehiclefactoriesChatCommandReg("!kill_wf;!kill_air",CHATTYPE_TEAM,0,GAMEMODE_ALL); class kill_refineriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Refinery(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); Vector3 position = Commands->Get_Position(thebuilding); Commands->Apply_Damage(thebuilding,99999,"Death",false); if (Team == 1) { Console_Input(StrFormat("msg GDI Refinary Destroyed",Get_Player_ID(obj)).c_str()); } else { Console_Input(StrFormat("msg Nod Refinary Destroyed",Get_Player_ID(obj)).c_str()); } } }; ChatCommandRegistrant<kill_refineriesChatCommand> kill_refineriesChatCommandReg("!kill_ref",CHATTYPE_TEAM,0,GAMEMODE_ALL); class kill_basedefenseChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Base_Defense(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); Vector3 position = Commands->Get_Position(thebuilding); Commands->Apply_Damage(thebuilding,99999,"Death",false); if (Team == 1) { Console_Input(StrFormat("msg GDI AGT Destroyed",Get_Player_ID(obj)).c_str()); } else { Console_Input(StrFormat("msg Nod Obelisk Destroyed",Get_Player_ID(obj)).c_str()); } } }; ChatCommandRegistrant<kill_basedefenseChatCommand> kill_basedefenseChatCommandReg("!kill_agt;!kill_ob",CHATTYPE_TEAM,0,GAMEMODE_ALL); class kill_powerplantChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Power_Plant(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); Vector3 position = Commands->Get_Position(thebuilding); Commands->Apply_Damage(thebuilding,99999,"Death",false); if (Team == 1) { Console_Input(StrFormat("msg GDI Power Plant Destroyed",Get_Player_ID(obj)).c_str()); } else { Console_Input(StrFormat("msg Nod Power Plant Destroyed",Get_Player_ID(obj)).c_str()); } } }; ChatCommandRegistrant<kill_powerplantChatCommand> kill_powerplantChatCommandReg("!kill_pp;!kill_powerplant",CHATTYPE_TEAM,0,GAMEMODE_ALL); class kill_soldierfactoriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Soldier_Factory(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); Vector3 position = Commands->Get_Position(thebuilding); Commands->Apply_Damage(thebuilding,99999,"Death",false); if (Team == 1) { Console_Input(StrFormat("msg GDI Barracks Destroyed",Get_Player_ID(obj)).c_str()); } else { Console_Input(StrFormat("msg Nod Hand of Nod Destroyed",Get_Player_ID(obj)).c_str()); } } }; ChatCommandRegistrant<kill_soldierfactoriesChatCommand> kill_soldierfactoriesChatCommandReg("!kill_bar;!kill_hon",CHATTYPE_TEAM,0,GAMEMODE_ALL); The the only problem I have seen so far is when the building is dead and a player that is not a commander uses the command. It wont tell the player hes not a commander. If the building is alive it will.
Hey man, pretty cool that you released this, there are a few little errors, but nice one
This might make things work a bit better for you. You would need to apply the same sort of changes I made throughout your code. But it looks nice man. class revive_vehiclefactoriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Vehicle_Factory(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); if(Is_Building_Dead(Find_Vehicle_Factory(Team))) { if(GDICommander[ID] || NodCommander[ID]){ if(GDICommander[ID]){ if(GDITeamFund >= CSettings->vehiclefactoriescost){ GDITeamFund = GDITeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Weapons Factory").c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",ID,CSettings->vehiclefactoriescost).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->vehiclefactoriescost){ NodTeamFund = NodTeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Airstrip").c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",ID,CSettings->vehiclefactoriescost).c_str()); } } } else { Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } else{ if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The Weapons Factory is not dead.",ID).c_str()); } } else{ if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Airstrip is not dead.",ID).c_str()); } } } }; ChatCommandRegistrant<revive_vehiclefactoriesChatCommand> revive_vehiclefactoriesChatCommandReg("!revive_wf;!revive_air;!r wf;!r air",CHATTYPE_TEAM,0,GAMEMODE_ALL);
illegal else without matching if else if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The GDI Powerplant is not dead.",Get_Player_ID(obj)).c_str()); } else if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Nod Powerplant is not dead.",Get_Player_ID(obj)).c_str()); }
Gen_Blacky wrote on Sat, 09 May 2009 17:24 illegal else without matching if else if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The GDI Powerplant is not dead.",Get_Player_ID(obj)).c_str()); } else if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Nod Powerplant is not dead.",Get_Player_ID(obj)).c_str()); } I'm guessing that's part of the power plant revive command. You will need to post that whole command for me to fix it for you. Also, you don't need to get the GameObject of the player.
reborn wrote on Sat, 09 May 2009 13:00 This might make things work a bit better for you. You would need to apply the same sort of changes I made throughout your code. But it looks nice man. class revive_vehiclefactoriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Vehicle_Factory(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); if(Is_Building_Dead(Find_Vehicle_Factory(Team))) { if(GDICommander[ID] || NodCommander[ID]){ if(GDICommander[ID]){ if(GDITeamFund >= CSettings->vehiclefactoriescost){ GDITeamFund = GDITeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Weapons Factory").c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",ID,CSettings->vehiclefactoriescost).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->vehiclefactoriescost){ NodTeamFund = NodTeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Airstrip").c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",ID,CSettings->vehiclefactoriescost).c_str()); } } } else { Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } else{ if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The Weapons Factory is not dead.",ID).c_str()); } } else{ if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Airstrip is not dead.",ID).c_str()); } } } }; ChatCommandRegistrant<revive_vehiclefactoriesChatCommand> revive_vehiclefactoriesChatCommandReg("!revive_wf;!revive_air;!r wf;!r air",CHATTYPE_TEAM,0,GAMEMODE_ALL); your code gave that error i was showing u where the error was. Edit: Just noticed i sent u the wrong code lol
LGdirk wrote on Thu, 07 May 2009 21:42 reborn wrote on Tue, 28 April 2009 13:23 Ah right, thanks. That's pretty weird then, everyone else had no problems at all with it :-/ Zeiss, if you're around still in 4-5 hours from now catch me on msn fm_reborn@hotmail.com, I will try to resolve the problem. hmm seems i got the same problem. server restart after using the tc cmd. so i install a new clear server and br 1.52. i add only the commander plug-in so it looks like this: [Plugins] 01=BRenBot.dll 02=commander.dll no other things added. what can i say? it crash again. now the weired part. i test some maps and on non-flying maps, the server crash but on walls flying and city flying the commander plug-in works fine. What version of server.dat are you using? Its not BlackIntel? Because when I use their version under x64 mode it crashing FDS when Im trying join.
Gen_Blacky wrote on Sat, 09 May 2009 22:17 Just noticed i sent u the wrong code lol So you are fine now, you don't need help? I am confused. :-S
Here is a debug version. Please use this and report any crashes with the crashdump. I will then be able to pass on the crash dump and the source code to a friend who might be able to see what the problem is. The source code will follow with a proper release. This version should also remove the weird messages when a building falls under 50% health. http://game-maps.net/staff/reborn/debug.zip
reborn wrote on Sun, 10 May 2009 04:30 Gen_Blacky wrote on Sat, 09 May 2009 22:17 Just noticed i sent u the wrong code lol So you are fine now, you don't need help? I am confused. :-S the code u said I should replace gets illegal else without matching if.
It's probably just some extra bracket somewhere. I didn't have access to the IDE when I typed it, nor do I now. This might work for you, but I cannot be sure, I'm at work... class revive_vehiclefactoriesChatCommand : public ChatCommandClass { void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *obj = Get_GameObj(ID); int Team = Get_Object_Type(obj); int BuildingID = Commands->Get_ID(Find_Vehicle_Factory(Team)); GameObject *thebuilding = Commands->Find_Object(BuildingID); if(Is_Building_Dead(Find_Vehicle_Factory(Team))) { if(GDICommander[ID] || NodCommander[ID]){ if(GDICommander[ID]){ if(GDITeamFund >= CSettings->vehiclefactoriescost){ GDITeamFund = GDITeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Weapons Factory").c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",ID,CSettings->vehiclefactoriescost).c_str()); } } else if(NodCommander[ID]){ if(NodTeamFund >= CSettings->vehiclefactoriescost){ NodTeamFund = NodTeamFund - CSettings->vehiclefactoriescost; Console_Input(StrFormat("msg The GDI Commander just revived the Airstrip").c_str()); Commands->Attach_Script(thebuilding, "RR_ReviveBuilding", ""); Commands->Create_2D_WAV_Sound("pplant_powerup.wav"); } else{ Console_Input(StrFormat("ppage %d There is not enough credits in the team fund you need $%i. Use !tfdonate to add to the fund.",ID,CSettings->vehiclefactoriescost).c_str()); } } else { Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } else{ if(GDICommander[ID]){ Console_Input(StrFormat("ppage %d The Weapons Factory is not dead.",ID).c_str()); } } else{ if(NodCommander[ID]){ Console_Input(StrFormat("ppage %d The Airstrip is not dead.",ID).c_str()); } } } }; ChatCommandRegistrant<revive_vehiclefactoriesChatCommand> revive_vehiclefactoriesChatCommandReg("!revive_wf;!revive_air;!r wf;!r air",CHATTYPE_TEAM,0,GAMEMODE_ALL); If it doesn't work, then give it a try man, you've got nothing to lose.
any news? @reborn: i send you 2 crash dumps by email, hope you saw that
I don't check my e-mail, I didn't see them. I thought you just went away, lol.
lmao... ok i send you a pm and hope you check it so you know, i dont walk away, still waiting
reborn, Does the Ammo Drop feature drop 3 yellow ammo crates that stay infinitely for the rest of the game? (Like on St0rm's Extreme Co-op Server if you've ever been there) To be more specific, if multiple players run across the yellow ammo box, does it disappear after the first player runs over? Or is it like, permanent? (I believe the preset name for the yellow ammo box I'm talking about is CnC_POW_Ammo_ClipMax) Thanks for the work you've done on this already. I was just at Black-Cell's forums earlier today, and saw this exact same topic on the Commander System coding they had there. In fact, here is one of their more recent topics on 'Team Commander': http://forums.black-cell.net/index.php?topic=5760.0 The way the ammo drop is described there, it seems more of something that can be picked up by only one person or is a destructible, one-time object. Would you happen to be able to give any clarification on this? Or would I be better off asking the Black-Cell members themselves? Regards, TNaismith
TNaismith wrote on Tue, 19 May 2009 21:49 http://forums.black-cell.net/index.php?topic=5760.0 The way the ammo drop is described there, it seems more of something that can be picked up by only one person or is a destructible, one-time object. That's exactly how it was, except vehicles could pick up this crate as well. Only the enemy team could destroy it if they wanted to, though since they could just steal it, the only reason to destroy it would be if they couldn't reach it first. It was parachuted to the team commander's current position, provided he wasn't within a certain distance of the enemy base. I was able to find two screenshots among hundreds/thousands (I'm not gonna look through my videos) that actually had the crate in it: Unfortunately, the BC Wiki was never restored after the most recent website crash, so you'll have to make do with what's in that thread and an archive.org copy of the wiki here. quick wiki description of supply crate Supply Drop is a Commander only ability that paradrops a Supply Crate at the Commander's position. This Supply Crate serves 2 purposes: it can be picked up by anyone on either team, except the Commander who called it in, for a full refill; the crate also has its own Healing Aura which does not stack with the Commander's. It costs 500 credits to call in a Supply Drop and it can only be used once every 3 minutes. The enemy can also destroy it with regular weapons fire. A Supply Drop can be called in either through the teamchat command !supply or the keyboard shortcut SupplyDrop(numpad period default). You cannot call down crates within or directly on the border of the enemy base. It's really nice that reborn's trying to recreate some of the features that used to make Black-Cell my favorite server until it lost too much of its playerbase for me to care to hang around anymore. I miss the good times :/
TNaismith wrote on Wed, 20 May 2009 00:49 reborn, Does the Ammo Drop feature drop 3 yellow ammo crates that stay infinitely for the rest of the game? (Like on St0rm's Extreme Co-op Server if you've ever been there) To be more specific, if multiple players run across the yellow ammo box, does it disappear after the first player runs over? Or is it like, permanent? (I believe the preset name for the yellow ammo box I'm talking about is CnC_POW_Ammo_ClipMax) Thanks for the work you've done on this already. I was just at Black-Cell's forums earlier today, and saw this exact same topic on the Commander System coding they had there. In fact, here is one of their more recent topics on 'Team Commander': http://forums.black-cell.net/index.php?topic=5760.0 The way the ammo drop is described there, it seems more of something that can be picked up by only one person or is a destructible, one-time object. Would you happen to be able to give any clarification on this? Or would I be better off asking the Black-Cell members themselves? Regards, TNaismith It's similar to black-cell's version, it's a one-off pick-up. It doesn't respawn constantly. A transport copter drops off a wooden pallet crate, either team can pick up the crate, including vehicles. It is not destructable though, I never thought it was needed really. Here is a link to a movie I made whilst making the plug-in demonstrating the supply feature. http://game-maps.net/staff/reborn/commander.wmv It probably wouldn't be any use asking BC members about this particular plug-in, as it is not supported by them or there own release, rather it is my own attempt as a commander system, based on there version from memory and documention found on there site. As far as I know they never released there version, although I know that allot of there server-side mod ended up being too tied into the regulator to separate the the code and make it functional as a release. havoc9826 wrote on Wed, 20 May 2009 02:41 That's exactly how it was, except vehicles could pick up this crate as well. Only the enemy team could destroy it if they wanted to, though since they could just steal it, the only reason to destroy it would be if they couldn't reach it first. It was parachuted to the team commander's current position, provided he wasn't within a certain distance of the enemy base. I was able to find two screenshots among hundreds/thousands (I'm not gonna look through my videos) that actually had the crate in it: Unfortunately, the BC Wiki was never restored after the most recent website crash, so you'll have to make do with what's in that thread and an archive.org copy of the wiki here. quick wiki description of supply crate Supply Drop is a Commander only ability that paradrops a Supply Crate at the Commander's position. This Supply Crate serves 2 purposes: it can be picked up by anyone on either team, except the Commander who called it in, for a full refill; the crate also has its own Healing Aura which does not stack with the Commander's. It costs 500 credits to call in a Supply Drop and it can only be used once every 3 minutes. The enemy can also destroy it with regular weapons fire. A Supply Drop can be called in either through the teamchat command !supply or the keyboard shortcut SupplyDrop(numpad period default). You cannot call down crates within or directly on the border of the enemy base. This plug-in recreates most of that, apart from the commander can pick it up himself, and the wooden pallet crate is not destructable, and it can be called in anywhere... The default settings are also 500 creds and a 3 min gap between the time you can call it in, but it's configurable to any cost and any time difference. havoc9826 wrote on Wed, 20 May 2009 02:41 It's really nice that reborn's trying to recreate some of the features that used to make Black-Cell my favorite server until it lost too much of its playerbase for me to care to hang around anymore. I miss the good times :/ There's a bunch released now, I was hoping it might encourage others to do the same. I also miss playing in black-cell and the good times there.
Ah, I see. Sounds like it can be a good addition to a server in any case. I appreciate the replies. I hope as well that other community leaders whom have extremely in-depth modded servers will also consider stepping forward to release their code, however the debate of whether that will make Renegade servers all look the same rather than unique and diverse will be brought up, and I can imagine that many people are against the idea of releasing code as it would 'hurt' the integrity of their own server/playing population. I've seen this from some isolated servers I've been to, and I am pretty sure this mindset runs throughout a number of other Renegade-related communities. Tiberium Technologies however is a great step in bringing together the skill and abilities of a lot of people, so that could be considered as compensating for the lack of will to release code for fun modifications to Renegade servers. Anyhow, thanks again. Appreciate the work and motivation you put in to further develop this code for Team Commander. Regards, TNaismith
Small Suggy Give teh GDI Commander the "Locke" Skin for his Character and for the Nod Commander "Kane"
mrãçķz wrote on Mon, 22 June 2009 18:56 Small Suggy Give teh GDI Commander the "Locke" Skin for his Character and for the Nod Commander "Kane"
I cannot read crash dumps, but it is probably due to the way the chat hook works for getting the play name, based on part of there name. When and if I ever get the time to re-visit any plug-in that uses that functionality that I released, I will go bacl and fix them all, and re-release them as 1.1 or whatever... However, I am extremely busy for a while.
Found a bug When you !Pollcommander an enemy player it would say "<lastsuccessfullypolledcommandername> isn't on your team", as potentialnodcommandername/potentialgdicommandername is kept as the last player. Other than that good job.
So where/when is then offical plugin going to be released/at? Link me! Or the latest beta version. Link me!
Knight wrote on Sun, 02 August 2009 23:14 So where/when is then offical plugin going to be released/at? Link me! Or the latest beta version. Link me! Open your eyes and perhaps read? Um like its right in front of you now....can you see it? hello?????. lol http://www.renegadeforums.com/index.php?t=msg&th=33035&prevloaded=1& rid=22195&start=0
ExEric3 wrote on Sun, 10 May 2009 09:21 What version of server.dat are you using? Its not BlackIntel? Because when I use their version under x64 mode it crashing FDS when Im trying join. Try disabling DEP
is it possible to add only commander backup?
I do not understand what you mean, could you maybe try to explain what you mean a little more clearly?
The commander can call for special backup but not the others
Yes, only the commander can call for the refill crate drop.
Sounds great i am not a scripter, but can i add a tank drop also?
You could quite easily adapt it to drop a tank, yeah.
If you have limited coding experiance, I would suggest you just change the cinematic files called Nod_Supply.txt and GDI_Supply.txt. I would remove the part that attaches the "reb_supply_crate" script, and instead make it drop off a tank. If you are feeling braver, then search through Commander.ccp in the source that's part of the download, and then amend the chat hook that calls this function, and the other scripts that are used in the chat hook.
I think I made it I wonder one thing, how do I decide how much it costs ?
Is this correct? void Triggered(int ID,const TokenClass &Text,int ChatType) { GameObject *object = Get_GameObj(ID); if(GDICommander[ID] || NodCommander[ID]){ if(GDICommander[ID]){ if(GDIDropActive){ if(GDITeamFund >= CSettings->supplycost){ GDITeamFund = GDITeamFund - CSettings->supplycost; //Create the supply drop here Commands->Create_2D_WAV_Sound("m00evag_dsgn0063i1evag_snd.wav"); Vector3 position = Commands->Get_Position(object); GameObject *flare = Commands->Create_Object("Invisible_Object",position); Commands->Set_Model(flare,"ag_sigflare_gld"); Commands->Attach_Script(flare,"Test_Cinematic","GDI_MedDrop.txt"); GDIDropActive = false; GameObject *dropsetter = Commands->Create_Object("Invisible_Object",Vector3(0.0f,0.0f,0.0f)); Commands->Attach_Script(dropsetter,"reb_GDI_drop_setter",""); } else{ Console_Input(StrFormat("ppage %d you do not have enough money in the Team Fund to order a tank drop.",ID).c_str()); } } else{ Console_Input(StrFormat("ppage %d The \"!meddrop\" command is not available yet. It can be used every %i seconds",ID,CSettings->droptimer).c_str()); } } else if(NodCommander[ID]){ if(NodDropActive){ if(NodTeamFund >= CSettings->supplycost){ NodTeamFund = NodTeamFund - CSettings->supplycost; //Create the supply drop here //mx0_trooper1_112.wav Commands->Create_2D_WAV_Sound("m00evag_dsgn0063i1evag_snd.wav"); Vector3 position = Commands->Get_Position(object); GameObject *flare = Commands->Create_Object("Invisible_Object",position); Commands->Set_Model(flare,"ag_sigflare_gld"); Commands->Attach_Script(flare,"Test_Cinematic","Nod_LightDrop.txt"); NodDropActive = false; GameObject *dropsetter = Commands->Create_Object("Invisible_Object",Vector3(0.0f,0.0f,0.0f)); Commands->Attach_Script(dropsetter,"reb_Nod_drop_setter",""); } else{ Console_Input(StrFormat("ppage %d you do not have enough money in the Team Fund to order a tank drop.",ID).c_str()); } } else{ Console_Input(StrFormat("ppage %d The \"!lightdrop\" command is not available yet. It can be used every %i seconds",ID,CSettings->droptimer).c_str()); } } } else{ Console_Input(StrFormat("ppage %d You are not a team commander and cannot use this command.",ID).c_str()); } } }; ChatCommandRegistrant<TankChatCommand> TankChatCommandReg("!meddrop;!mediumtank;!medtank;!mediumtankdrop;!lightdrop;lighttank;!lighttankdrop;!light;!med",CHATTYPE_ALL,0,GAMEMODE_ALL);
You could hard code the cost of the drop if you wanted to do that in there yes. Specifically here: if(GDITeamFund >= CSettings->supplycost){ GDITeamFund = GDITeamFund - CSettings->supplycost; You would change it to this for example if you wanted it to cost 2000 credits: if(GDITeamFund >= 2000){ GDITeamFund = GDITeamFund - 2000; However, the cost of the drop has been set up to be a configurable option in the .ini file supplied in the download. You seem to be getting the hang of this, for someone who claims to not be able to code, you've done well! You do realise you need to compile this code, don't you?
It isnt to hard actually I took a look at ur code, and understood it ^^
So I should put the files i have modified into commander.dll with Visual C++ or?
I guess you opened them in notepad or something? Basically, what you should be doing is opening the solution file (.sln). This file opens with visualstdio.net2005 (which you need to install). You can find out how to install a free version here: http://www.renegadeforums.com/index.php?t=msg&th=26642&start=0&rid=3 415 Using visual studio, you can browse the relevant .ccp and .h files allot easier. Once you have made your changes and you are happy with them (you seem to do done this already), you can compile the source code (hit f5). This will then produce the compiled .dll file in the working folder of the source code.
Does it work with the 2008 version of Visual C++?
Probably, but not without some adjustments. I have never actually tried. Your questions, whilst welcome, are probably becoming irrelevant to the topic at hand now, you may wish to start your own modding topic if you need more help. You're starting to go at a tangent now...
ok I got my questions cleared up. And I found a version of Visual C++ 2005 ^^
Version 1.3 is now available, which should address the crash bug. I was using a function that someone else wrote, the function assumed that all base game objects where actually scriptable game objects, but they are not. This fix came about from a problem on the APB server, and I ported the fix quickly to this plug-in too. So it isn't tested, but I can say with a fair degree of certainty that this should fix the problem. Many thanks to Ghostshaw for providing some insight into this annoying problem. http://spencerelliott.co.uk/downloads.html
First version was 1.0 (third one down), second version was 1.1, last version to be released, the current version is 1.2.