Command and Conquer: Renegade Official Forums - RDF feed
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
scripts.dll 1.8 is being worked on (I need ideas people)
Its likely that there wont be that much of the new engine-call stuff in 1.8 So far, confirmed to go into 1.8: Some new scripts by E! SCUD_CustomSend_Preset_Buy //This is the same as SCUD_Preset_Buy but you now send a custom on vehicle enter and the preset will be bought on exit. Your Terminal has to set up as a vehicle because this script use the enter message that only is sent by vehicles. params: Unknown //Unknown Parameter 0 works. SendID //ID where the message gets sent to SendMessage //Message that gets sent SendParam //Parameter that gets sent with the Message Preset_Name //Name of the Preset to buy. Cost //Cost for the Preset on Purchase. location //Location where the Preset gets created on Purchase. Player_Type //Which Side the Terminal works for. Rotation //Where the Bought object faces on creation. SCUD_CustomSend_PresetBuy_FollowWaypath //This is the same as SCUD_CustomSend_PresetBuy but now it´s possible to let the bought vehicle follow a waypath after creation. params: Unknown //Unknown Parameter 0 works. SendID //ID where the message gets sent to SendMessage //Message that gets sent SendParam //Parameter that gets sent with the Message Preset_Name //Name of the Preset to buy. Cost //Cost for the Preset on Purchase. location //Location where the Preset gets created on Purchase. Player_Type //Which Side the Terminal works for. Rotation //Where the Bought object faces on creation. Waypath_enabled //enable Waypath following after creation (1 to enable somethin else to disable) WaypathID //ID of the Waypath the Vehicle shall follow Speed //Speed of the Vehicle while following the Waypath SCUD_CustomSend_PresetBuy_GeneralPresets_FollowWaypath //This is the same as SCUD_CustomSend_PresetBuy but now it´s possible to let the bought vehicle follow a waypath after creation. params: Unknown //Unknown Parameter 0 works. SendID //ID where the message gets sent to SendMessage //Message that gets sent SendParam //Parameter that gets sent with the Message Preset_Name //Name of the Preset to buy. Cost //Cost for the Preset on Purchase. location //Location where the Preset gets created on Purchase. Player_Type //Which Side the Terminal works for. Rotation //Where the Bought object faces on creation. General1_Preset_ID //Preset ID of the First General General2_Preset_ID //Preset ID of the Second General General3_Preset_ID //Preset ID of the Third General General1_Preset_Name //Preset that gets bought by the First General General2_Preset_Name //Preset that gets bought by the Second General General3_Preset_Name //Preset that gets bought by the Third General General1_Preset_Cost //Money that the First Generals Preset Cost General2_Preset_Cost //Money that the Second Generals Preset Cost General3_Preset_Cost //Money that the Third Generals Preset Cost Waypath_enabled //enable Waypath following after creation (1 to enable somethin else to disable) WaypathID //ID of the Waypath the Vehicle shall follow Speed //Speed of the Vehicle while following the Waypath SCUD_DeathZoneOnCustom //This Script is thought to work with all SCUD_CustomSend... Scripts to clear the location where a bought vehicle spawns params: Message //The Message to clear the Zone Explosion //The Explosion that is used to clear the Zone SCUD_Harvester_Control //This Script is made to work together with the SCUD_CHHarvester, SCUD_USHarvester, SCUD_CHHarvester_Terminal and US_Harvester_Terminal Scripts params: USA_Harvester_Limit //The Limit for USA´s Harvesters (you have to enter 1 more harvester than you want if you allow 5 harvesters it will be 4 ingame) China_Harvester_Limit //The Limit for USA´s Harvesters (you have to enter 1 more harvester than you want if you allow 5 harvesters it will be 4 ingame) US_Harvester_Terminal_ID //ID of the object where the SCUD_USHarvester_Terminal is attached to CH_Harvester_Terminal_ID //ID of the object where the SCUD_CHHarvester_Terminal is attached to USA_Harvester_Cost //Cost of the USA Harvester (for getting Money back on Limit reached) China_Harvester_Cost //Cost of the China Harvester (for getting Money back on Limit reached) SCUD_CHHarvester //attach this to the China Harvester SCUD_USHarvester params: Harvester_Control_ID //ID of the Object where the SCUD_Harvester_Control Script is attached to Explosion_Preset_Name //The Explosion to destroy the Harvester on Limit reached SCUD_CHHarvester_Terminal //This is the same as SCUD_CustomSend_PresetBuy_FollowWaypath but it works together with the SCUD_Harvester_Control Script. SCUD_USHarvester_Terminal params: Unknown //Unknown Parameter 0 works. SendID //ID where the message gets sent to SendMessage //Message that gets sent SendParam //Parameter that gets sent with the Message Preset_Name //Name of the Preset to buy. Cost //Cost for the Preset on Purchase. location //Location where the Preset gets created on Purchase. Player_Type //Which Side the Terminal works for. Rotation //Where the Bought object faces on creation. Waypath_enabled //enable Waypath following after creation (1 to enable somethin else to disable) WaypathID //ID of the Waypath the Vehicle shall follow Speed //Speed of the Vehicle while following the Waypath Harvester_Control_ID //The ID of the Object where the SCUD_Harvester_Control Script is attached to SCUD_SuperWeapon //This Script destroys itself after a time that starts with the first shot (the shot have to hit the object) params: FireTimeSinceFirstShot //Enter the Time in seconds SCUD_Set_Player_Type_OnCustom //This was just a Testscript. It sets the Player_type of the Object it is attached to. params: Message //The Message to change the Player_Type Player_Type //Change to which Player_Type? 0=china 1=usa 2=Player_Type of the sender Whatever new scripts are in RenAlert 0.993 (NeoSaber said that he has fixed a few bugs in some of my scripts plus written several RA scripts, bascily I will be taking all the code NeoSaber releases (as per GPL he is required to elease it) and adding it to 1.8. Any sutable-to-include scripts written by others (such as scripts for RA2Ven done by boris) JFW_Spawn_Timer. takes a custom to start the spawning (sendable either after all the sams go away somehow or at startup, depending on what you want) Would only start charging again when beacon is collected. Would require another script on the beacon powerup to tell the controler when its been "collected" (I think one of the existing "custom" related scripts should be able to do it. Will also send a specified custom to a specified object when the beacon is spawned. You can do stuff with that such as opening the silo doors etc. As for the person who wanted the C&R_Damaged_Transporter script, you can do that with a combination of JFW_Damaged_Send_Custom_Amount and JFW_Teleport_Custom Most of the engine-calls stuff isnt likely to make it into 1.8 (the flying infantry stuff for example will definatly not be in 1. . Some engine calls may well be in 1.8, I havent fully decided yet. I am also (especially in the light of the work done by SK on bhs.dll) considering adding more clones of standard westwood scripts to scripts.dll 1.8 (M00_BuildingStateSoundControler and M00_BuildingStateSoundSpeaker in particular are likely candidates) What I need now is any script ideas you may have. Also, I need any code you may have and want to contribute.
Add new fuction to JFW_Create_Destroy_Object_On_Custom_Bone: When the parent object is destroyed it is attached to, it should destroy itself. (Can done with Explosion) I'm using this script to spawn exhaust smoke effects when something enters the vehicle.
You may or may not remember my original idea, but... Ok, here goes: you destroy a building, and building is dead. Once building is dead, a script attached to the controller kills any script of your choice; as in, the particular script that is 'killed' stops working for the rest of the game. For example, there's a script that spawns giant chickens that fall from the sky every 5 seconds. If you kill the AGT, the script that spawns the giant chickens is 'killed', so that the giant chickens stop spawning. Is this possible? Or is it possible for a script to have an option that once it receives a certain message, the script stops working for the rest of the game. So you could have script A, which sends the message once a certain condition has been met; and script B, which receives the message and kills itself once word reaches it. Is this possible? Is it also possible to have the script stay dead whenever a new object is spawned, and it has the dead script attached to it? This way, once a script is killed, it stops working for the rest of the game (or maybe until it is re-enabled).
with JFW_Create_Destroy_Object_On_Custom_Bone, attatch JFW_Death_Send_Custom to whatever which can then send the destroy message to the object with JFW_Create_Destroy_Object_On_Custom_Bone on it, thus doing what you want.
So with those scripts, I can attach a 'regenerate health script' to every tank and with the destruction of the repair facility, tanks will stop regenerating their health? Well, that's not specific enough. With those scripts you mentioned, I can 'destroy' another script? Not any object ingame, but a script?
Is there such a script that exists with this concept in mind: keeps executing if <value> = "true" For example (inspiration taken from YSLmuffins post): <Building> keeps repairing itself as long as <value> = "True" Then the <power plant> is destroyed and <value> is set to "False" So now <building> cease's to repair itself because <value> = "False" Im not sure, but does such a script exist? EDIT: *** Script Idea *** Name: Group_Purchase Description: A way for a group of players on the same team put their funds together to purchase 1 big expensive thing. Basic Concept: Player walks into script zone and a set amount of credits are taken and put into a variable of some kind. Once variable is equal to the cost of the object intended to be purchased the object it placed onto the map at a set point. Detailed Conept: <player> walks into <purchaseZone> and <SetFunds> are taken off the <player>'s credits and put into <CurrentAmount> then once <CurrentAmount> is equal to <PurchaseAmount> then <DefinedObject> is created at <coordinates> Possible Use: The team is on their last leg and have heaps of credits but no warfactory or Barracks, so they all agree to go onto the the construction yard and pitch in to get a new turret, once they put in enough the turret is created at the front of the base. Would give it more of a C&C feel and would be a great addition, what do you think... Good/Bad idea? Possible?
ok, group_purchase can be done easily. It would allow one person to contribute multiple times if they have enough credits to do so (because thats easier than trying to track down everything) I will look into the other ideas.
from what I can remember, whilst i was looking through the Strings I found a string which said something like Group Purchase. I think if they wasn't rushed with getting renegade finished, we may have seen this feature.
ok, a new script idea that I will implement. JFW_Building_Damage_Controler. Used to make things that dont usually damage buildings (because they use Create_Explosion to cause damage) do damage to buildings. Parameters will be the IDs of the buildings. Also, the message to listen for. And the distance from the building controler that the thing doing the damaging can be. And how much damage to do. There will also be a forumla for damage scaling (so that the closer you get the more danage you do) The exact forumula is still to be decided (and this logic will be optional) Then, when it recieves a message, it checks the location of the message sender against the location of each building controler. If it is close enough, it applies the appropriate damage (based on the forumula). This script is usefull for many things including Nuke Trucks (just set the damage big enough to ensure total destruction of the target) and the GLA bomb truck in a Generals mod (if someone was to do a Genreals mod). Although you still need another set of functionality to actually made the explosion and make it do damage to people and vechicles. I will be making this script and functionality (the exact details of which are still to be worked out) generic enough to use for infantry also (for example, GLA terrorists from Generals or Goblin Sappers from Warcraft) Also, another one JFW_Death_Destroy_Object_Delay, this is like JFW_Death_Destroy_Object but adds a delay before the object is killed.
Ok. I think this was originally exdeath's concept, but its a good idea - when the pilot/driver of a vehicle stops pushing the fowards button, as to stop, an animation is played exactly once (And ended on frame 100). This would be used such as for folding-wings vehicles. When the pilot comes in to land, and releases the fowards button, an animation of the wings folding up is played, and hte vehicle is left with the wings up.
I am probobly going to do more westwood script clones for 1.8. If I can, I would like to clone the biggest of them all, Test_Cinematic. Not only clone it but enhance it... We shall see what happens
ok, some more ideas. JFW_Drone_Damage Basicly, when <the object with this script attatched gets attatcked by <the specified preset>, it starts being damaged by <x health and/or shield strength> every <x seconds>. There will (probobly) also be an option such that if it gets repaired, the effect wears off. This script is intended for e.g. the Terror Drone in RA2. JFW_Vehicle_Powerup and JFW_Vehicle_Powerup_Preset. Basicly, when the powerup with this script attatched is collected, a custom is sent to the vechicle in which the collector of the powerup resides (if they are in one). If they are not in one, no custom is sent. Both versions will allow you to specify which team to trigger the custom on (gdi, nod or both). The preset version will allow you to make it only send for certain presets. Note that if someone who doesnt trigger the custom collects the powerup, it will still disappear. This will be usefull (once some appropriate scripts for responding to the custom are written) to implement "upgrade" logic like in Generals (the GLA vehicles that can pick up scrap and get better)
Is there a script you can make that would somehow create additional turrets on a vehicle, like when a vehicle is created, and additional turret object is created as well, and once every frame, it's position is updated relative to the location of the vehicle object, so the turret would seamlessly follow the vehicle, and would seem as if the vehicle had more than one turret, whereas it would be more like a seperate vehicle following the first. I saw something like this on KGBSpy's RA2: Aftermath site, where he said that a tank he was making [Battle Fortress] would have one driver controlled turret and 4 more turrets added by scripts. This way, you could do some really awesome things with vehicles, like a Red Alert Cruiser that can shoot 3 ways at once, or being able to fix the depth charge problem with the patrol boat and destroyer.
that "additional turrets" thing, I know there are some existing scripts that do various related things. But I will keep it in mind and see if I can rig something sutable up. I will use Create_Object_At_Bone and Attatch_To_Object_Bone to make it work.
Hmm...like a script that makes you change a animation when you enter a zone? (Like you enter the water, you swim.)
Is it possible to create a script thats similar to M01_Hunt_The_Player_JDG but compatible for use with air vehicles? I would really love to see an orca shooting a tank without using waypoints. Also is it possible to increase the ai of skirmish characters by allowing them to acutally enter the vehicles like in bf1942 and pilot them?
change animation no AI in vehicles no. As for that other one, I will look into it.
jonwil ok, group_purchase can be done easily. It would allow one person to contribute multiple times if they have enough credits to do so (because thats easier than trying to track down everything) I will look into the other ideas. Great! This would be very cool for mods like RenAlert and Commando because it would enable people to purchase buildings.
Is it possible in any case that you can add a script for infantry. Im making a map, and i want very realistic effects in it, and was thinking if there was just a way to make it so after 5 minutes of running around, you slowly loose health until you start walking again. Either way it doesnt really matter, but id really like to know if its possible to do this.
Hmm... does the building-capture script exist?
that infantry idea I dont think I can do As for building capture, I must do some experiements on that. I think it might be possible but it would require a LOT of coding to pull it off.
Some sort of script that will change your z axis (like the jump pad script in SomeRhino's "CTF Forts") if your position remains the same for <x> seconds. It's not much, but atleast it's a step in the direction of a simulated plane physics.
that last one is simple enough and I will do it just because I want all the ideas I can get
Possible making sure you have to move forward? Via other scripts that make other vehicle movements useless? Or just making sure you must move foward by checking (if there is a way) that the vehicle is indeed moving forward? We need some sort of constant that we can do the whole Z axis thing with,any ideas?
jonwil As for building capture, I must do some experiements on that. I think it might be possible but it would require a LOT of coding to pull it off. My idea was to set a zone near the MCT which changes the owner of the building when entered by an enemy engineer. If the engineer leaves the zone or is killed, the building returns to original owner. Another idea is that if the building has less than 50% health, if the zone is entered by a friendly engineer, the building is healed and kills the engineer. I remember there was talk about this script before.
can you make a option for gdi,nod or any team on the teleport script?
ok, I can do new teleport scripts that trigger only for specific teams.
Send_Custom_pickup.......would send a custom on pickup of a powerup spawner.......sort of like your vehicle powerup script but just be able to send a custom to an ID of another object to recieve it. (ex.player picks up powerup that only spawns once every 15 mins and it sends a custom to a zone with JFW_Blow_Up_Location_On_Custom to create an explosion in a certain area to kill anything in that zone) ClearWeapons_preset.......clear certain weapons when in zone(ex. timed c4) Send_custom_multiple_ID's........ send's a custom to several different object ID's....(ex.send a custom to 4 ID's at once that create 4 explosions in 4 different places) Create_object_on_enter On enter it will create an object at a certain location,on exit object will be killed. Ive tried a few ways of doing this and i have to set up a zone then send a custom to create object then i have to send another custom on exit to not render the object....would be easier to just have a display object on enter/remove object on exit. This would be useful for my KOTH maps to display a model over the hill to show who's got control of the hill. I'll have a few more soon....
So, what about a 'JFW_Disable_Script_On_Death'? It disables any script you choose, by specifying the name of the script. How about a clone of 'JFW_Heath_Regen' just for the purpose of it being disabled?
Could you add weapon recoil in both ai and player since ai has superhuman accuracy?
weapon recoil no. disable a script, that cant be done. create_object_on_enter, thats easy and will be done send_custom_multiple_ids, thats doable send_custom_pickup, thats also doable you cant clear only specific weapons. The closest you can get is to clear all weapons.
jonwil that infantry idea I dont think I can do As for building capture, I must do some experiements on that. I think it might be possible but it would require a LOT of coding to pull it off. And switching the team access to the PCTs...
What about improving the ai but allowing them to place c4s on mcts, stay away from tib, avoid getting crashed by vehicles, engies healing teammates, engies disarms beacons and c4s, switch weapons once they run out of ammo, take cover, and everything else you would expect from ai made in other games like unreal tournament?
I had a little idea from one of titans ideas, but I don't know if its something a script can do and its silly anyway. Okay, you have a hill, and a billboard up behind it which can clearly be seen from both bases. A man runs to the top of the hill. The top of the hill is magnified and zoomed in on both faces of the billboard, so everyone sees the man at the top of the hill from the billboard, and they can see him from their own base because of the magnification. Like a sort of "zoom in on area" script applied to a defined area.. :oops:
flyingfox, that idea cant be done. But some other ideas I am consdiering that may get done: JFW_Send_Ordered_Customs_On_Custom. When this script is sent a certain message, it fires off a series of messages in a certain order to a specified object. Passing 0 for the object will mean "send to the thing that JFW_Send_Ordered_Customs_On_Custom is attatched to". JFW_Set_Health_On_Custom. Will set the health of <the thing its attatched to> when it gets a custom. JFW_Add_Health_On_Custom. Will add to the health of <the thing its attatched to> when it gets a custom. Negative numbers will subtract JFW_Set_Max_Health_On_Custom. Will set the maximum health of <the thing its attatched to> when it gets a custom. JFW_Add_Max_Health_On_Custom. Will add to the maximum health of <the thing its attatched to> when it gets a custom. Negative numbers will subtract same as the 4 about except for shield strength. I am also working on (no promises) new functionality for a Get_Animation_Frame function which would allow you to pass -1 for the FirstFrame of the animation scripts to mean "the current frame" Also, logic for Get_Shield_Type that would mean JFW_Invulnerable_On_Custom_3 same as JFW_Invulnerable_On_Custom_2 but without needing to pass the NormalArmour as a parameter. I am also looking into logic for a Get_Model command, a Get_Shield_Type command, a Set_Skin command, a Get_Skin command and (if I can pull it off) ways to do weapon related stuff (most notably giving a vehicle a different weapon) However, Flying Infantry is still not going to be in 1.8 (because I dont want to rip SKs idea off)
Hmm, about the last section, would it be possible (if you pulled some of that stuff off) to buy a soldier, type !get <weapon> and switch your weapon for it? Then again, you could just spawn the item. Furthermore, you could "allow" the higher the class, to !get models of any lower class on their team. So for example,a standard soldier could only !get a shotgun, flamethower or repair gun (if Nod) but a black hand sniper could grab any black hand weapon, anything from officer class or base class. And sakura could pull any weapon. It seems fair because a character wouldn't be keeping their existing weapon, nor would they be getting too powerful for their class.
other possible things I am working on: A fix for the infamous "repair bay" bugs something usefull may come from being able to call SmartGameObj::Grant_Stealth_Powerup(float) also C4GameObj::Defuse(void) and BeaconGameObj::Set_State(int) may or may not be usefull. VehicleFactoryGameObj::Set_Max_Vehicles_Per_Team(int) also looks cool... (would be great for a way for server admins to set the team maximum vehicles although that would need to be a new console command or something) VehicleFactoryGameObj::Request_Vehicle(int,float,SoldierGameObj *) might be usefull to code up a way to create vechicles at the war factory/airstrip via scripts...
What about playing an animation once when a vehicle enters a certain zone. That could be used to show like the ore truck dumping off its ore in ren alert. Maybe modified to detect if the truck has ore for player controlled trucks. Or somehow with the harvester in Renegade with the back coming off. And as for that team purchase idea im pretty sure black cell servers already have something like that. On their maps if the little base defenses get killed a small glowing zone appears and you can go into it to have it drain you of money until it is rebuilt. Of course other team members can do it too. But it could be different if you could build defenses that werent already destroyed or in place
Ferhago Or somehow with the harvester in Renegade with the back coming off. *Tiberian Dawn The Harvester drives to refinery and its back slides inside the refinery for unloading the harvested Tiberium.
ferhago, what you want is already possible with existing scripts. Also, I think I can do a script command that would change the players character (similar to buying at a PCT but without affecting the cash of the player or anything)
jonwil Also, I think I can do a script command that would change the players character (similar to buying at a PCT but without affecting the cash of the player or anything) That could be used to turn a player into a Visceroid when he/she dies in a Tiberium field?
Id really like the vehicle limit changes as that would create much more ways for servers to keep it fun. Id like to even see large servers running at a limit of 5, it would be interesting, or a 24 person server with 12 limit lol. There would be lots you can do just with that single one, and as long as the servers could handle the extra pollygons showing all at once, then it should be fine. ------------------------------------------------------------------------------------ VehicleFactoryGameObj::Request_Vehicle(int,float,SoldierGameObj *) might be usefull to code up a way to create vechicles at the war factory/airstrip via scripts... ------------------------------------------------------------------------------------ How would this one work exactly, would you still need a purchase terminal, or would it be more of just a command you type in the console? -------------------------------------------------------------------------------- JFW_Set_Health_On_Custom. Will set the health of <the thing its attatched to> when it gets a custom. -------------------------------------------------------------------------------- So if this can set health on a custom, wouldnt that mean that the infantry idea i had could be possible in any way? As in when you reach a certain point in a map then you start loosing health each time it recieves it? Sorry i do not know much about all these scripts,so i guess i cant really help explain my ideas clearly lol. And last off, if sk has a flying infantry idea, it sure would be nice to have maybe higher jump, or low gravescale in a script
Blazea: About vehicle limiting - You can get around the vehicle limit by modifying the presets in a map you create. This is accomplished by changing the 'team' orientation of the vehicle from GDI or Nod to Unteamed. Unteamed vehicles are not limited, and thus you can buy as many as you want. However, beware, this can have an affect on performance of the game when there are dozens of vehicles. I guess it would be nice to have a setting whereby the map maker could somehow specify a specific vehicle limit, but I doubt thats possible.
vehicle limit changes would require a console command in order to be usefull so they wont be in. If anything SK would be the one to do them and put them in bhs.dll. low gravity or higher jumping is not something scripting can do. also, new script. When this script recieves a certain custom, it starts a periodic timer. Said timer would, when it expires, remove a set health and/or shield strength from an object. Another custom can be sent to say "next time the timer goes off, dont restart it". As for VehicleFactoryGameObj::Request_Vehicle, what it basicly means is that (in theory, I still have to various things before I am sure it works), you can have any vechicle be created via a script. Essentially the script author passes in the vehicle preset to create plus the object that is to be the owner of the vechicle (or you can make it have no owner if you want to) as well as the ID of a valid AirstripGameObj or WarFactoryGameObj (which is the ID of the building controler) since both of those are decendants of VehicleFactoryGameObj and you need to pass in the ID of a VechicleFactoryGameObj (which is then converted into a VechicleFactoryGameObj pointer) in order for VehicleFactoryGameObj::Request_Vehicle to work.
jonwil VehicleFactoryGameObj::Set_Max_Vehicles_Per_Team(int) also looks cool... (would be great for a way for server admins to set the team maximum vehicles although that would need to be a new console command or something) ... This would be great Ive made qutie a few large maps and increasing the limit just by 2 or 3 would help out alot.
as noted before, changing the vechicle limit (or the mine limit which I have yet to find) is something that would require a new console command so thats SKs territory. I am also going to look into doing some multiplayer objective stuff (now that sounds work)
Also, NeoSaber has said that he has fixed a couple of bugs in my scripts (visibile people in vehicle was one and also the player controled harvester). Plus, there are such scripts for renegade as NeoSaber codes up and releases to add. And, any scripts from RenAlert 0.993 that can go in (bug fixes/changes to the existing RenAlert scripts in particular) Plus, boris (aka TheKGBSpy) has some scripts that he said he will have ready to contribute.
How about a way to set a 'global' custom, so as long as as a certain custom is set to 'true', a script does what it's supposed to do? I.E., a 'JFW_Set_Global_Custom', when attached to a building, executes at the beginning of the game. And another script, 'JFW_Set_Global_Custom_On_Death', sets a custom when the thing the script is attached to dies, so this way, the global custom can be changed.
hmmm, no, global custom not doable either.
how about a script that hinds a selected object from a vehicle after fireing. for example v_Scud_missile (which is the scud missile) so when you fire that object will hind for a certail period of time. This could help with making visiable missiles, bombs, etc... to be hidden once fired.
unfortunatly there is no way to detect when something fires its weapon
ok, some new ideas. 1.a script that will make a building invulnerable when its sent a custom then stop making it invulnerable when its sent another custom (this assumes I can find a way to do it, tests will be needed of various things) Use this with JFW_Startup_Custom to make it be invulnerable on startup then JFW_Death_Send_Custom and JFW_Customs_Send_Custom to make it stop being invulnerable. Also, for this "A script that when an Object is destroyed, creates X number of other objects that must be killed before X amount of time. *Example*: Once A Nuclear Missle is destroyed, it plays a destruction animation, leaving four parts of the missle leaking radiation, and if those are not destroyed in X minutes, the game ends." Heres how to do it. firstly use JFW_Create_Destroy_Object_On_Custom and JFW_Death_Send_Custom to trigger the creation of the objects. Said objects would have copies of JFW_Timer_Custom on them. When the timer expires, it would send a custom to a daves arrow with JFW_Custom_Send_Customs (new script to be written) on it which would then call JFW_Custom_Destroy_Building to destroy all the buildings on the map (if a building is already dead, nothing will happen) "A script that grants X number of points per building alive at the end of the game." is difficult so I wont do it for 1.8. " A script that fires a Cinematic after a timer runs out, but if 2 structures are destroyed, the cinematic never starts. *Example*: Map consists of three 'outposts', with 2 buildings each. After 5 minutes, If both structures in the first outpost aren't destroyed, It fires a cinematic, But if they are killed, it never goes off." is easy. Put JFW_Timer_Play_Cinematic on a daves arrow. Then use JFW_Death_Send_Custom followed by JFW_Customs_Send_Custom and JFW_Custom_Destroy_Object to make the daves arrow go away once the 2 outpost buildings are destroyed.
ok, having found GameObjManager::BuildingGameObjList, I am now doing 2 things. 1.a new construction yard script that doesnt need to know the IDs of the buildings beforehand and 2,change the plan for JFW_Building_Damage_Controler so that it too doesnt need the building IDs hardcoded. I am also possibly going to add some new script commands to deal with buldings. (for exampe one to find the nearest building of a particular team to a given location and maboe others, dont know yet)
new script commands for set max health and max shield would be great or a set wepons command for vehicles that it´s possible to change the wepon dependend on the occupier.
all 3 of those are on the "I want to look into doing this" list.
E! new script commands for set max health and max shield would be great or a set wepons command for vehicles that it´s possible to change the wepon dependend on the occupier. Well i might release my BF turret script if you need it. Basicly it change the weapon of the turret depending who got in the turret. work fine
jonwil ok, having found GameObjManager::BuildingGameObjList, I am now doing 2 things. 1.a new construction yard script that doesnt need to know the IDs of the buildings beforehand and 2,change the plan for JFW_Building_Damage_Controler so that it too doesnt need the building IDs hardcoded. I am also possibly going to add some new script commands to deal with buldings. (for exampe one to find the nearest building of a particular team to a given location and maboe others, dont know yet) Could that mean that my original Repair Facility idea could be doable? I have another idea, though. 'JFW_Regenerate_Health_Conditional'; this script repairs the health of whatever it is attached to as long as an actual object ingame is alive. Perhaps parameters could be ID, the ID of the object to monitor?
JFW_Regenerate_Health_Conditional seems simple enough. Parameters would be timer settings and an ID as well as how much health to regen.
Some more ideas: 1.Some script commands that will be using a combination of GameObjManager::BuildingGameObjList, GameObjManager::SmartGameObjList, GameObjManager::GameObjList and GameObjManager::StarGameObjList. Along with GameObjDef::Get_Class_ID to find out what type of object it is. And Get_Player_Type to find out the team. So for example, you can say "find me the first soviet infantry unit in the list". And, also, a script JFW_Zone_Timer. On startup, a count of how many object are in the zone is set to 0. When the zone this script is attached to is entered if the team matches with the parameters set by the mapmaker, the "in zone count" is incremented. When something leaves the zone, the "in zone count" is decremented. When the "in zone count" goes from 0 to 1, a timer is started. When this timer expires, if the "in zone count" is >= to a set number (could be 1, could be more than 1, whatever the mapmaker wants) a custom is sent to a specified object. Also, a script that will (if I can make it happen) give points to a specified team (or both teams) without giving them to any one player specifically. Same for cash. Negative numbers will be usable for both of these scripts to take away points/cash. These scripts will trigger when a custom is sent to them.
YAY! *kiss*
What about a script where depending what position your in you are more accurate? and if your running the guns held at the hips and if your shooting its at your shoulder.
nope, that guns idea isnt doable either.
ok, some new scripts from NeoSaber ********************************************************************************************** Script Name: "RA_Damaged_Credits" Description: This script is designed to award credits to the player who damages the object this script is attached to. It does so based on the Damage dealt divided by the script parameter Divisor. Script Parameter: -Divisor: This is the number that the damage is divided by to determine the amount of credits to award. Default is 4.0. Notes: This script can be attached to a soldier, vehicle, or any other object you waant to get extra credits from when its damaged. ********************************************************************************************** Script Name: "RA_GameStart_Detector" Description: This script is designed to detect when a game actually begins on an FDS. It has been shown that an FDS will start running scripts while still in a "Gameplay Pending" state before players have loaded into the game. This can cause problems for some scripts that run off timers or do something when first created. This script is designed to send a message when normal gameplay starts. Other scripts can be setup to listen for this message, so they know when the game has started. Script Parameters: -Interval: This is the delay in seconds between times that the script will check if gameplay has started, so as not to risk overburdening a server. Default is 5.0. -ReceiverID: ID of the object to send the message to. Default is 0 -Message: This is the message to send. Default is 0 -Parameter: This is an extra parameter that can be sent with the message. Default is 0 Notes: This script should be attached to a Dave's Arrow ********************************************************************************************** Script Name: "RA_DriverDeath" Description: Half a second after being attached to an object, this script will kill whatever it was attached to. Script Parameters: None Notes: This script should be attached to an object by other scripts during gameplay to kill that object after a time delay. ********************************************************************************************** Script Name: "RA_Conyard_Controller" Description: This script is largely a clone of TDA_Conyard_Controller. It has been modified so that it will activate the repair scripts at the beginning of a game, and then disable them when the controller it is attached to dies. This allows the repair script "RA_Conyard_Repair" to function from the preset of an object instead of being attached on a per map basis. This script, however, does still need to be attached on a per map basis so it knows all the IDs it needs to. Script Parameters: -Building1_ID: 1st building to enable/disable -Building2_ID: 2nd building to enable/disable -Building3_ID: 3rd building to enable/disable -Building4_ID: 4th building to enable/disable -Building5_ID: 5th building to enable/disable -Building6_ID: 6th building to enable/disable -Building7_ID: 7th building to enable/disable -Building8_ID: 8th building to enable/disable -Building9_ID: 9th building to enable/disable -Building10_ID: 10th building to enable/disable Notes: This script should be attached to a building controller. Multiple copies of this script can be attached to a single controller if more parameters are needed. ********************************************************************************************** Script Name: "RA_Conyard_Repair" Description: Primarily a clone of TDA_Conyard_Repair, but designed to work with RA_Conyard Controller so this script can function from a preset. Script Parameter: -Repair_Frequency: How often the buiding receives 1 health point. Time is in seconds. Default is 1.0 Notes: This script should be attached to the preset of a building controller. If activated by RA_Conyard_Controller, it will continue to repair the builing until disabled. ********************************************************************************************** Also, a change to the repair bay script to make it able to handle the new vechicles in 0.993 Plus, removing the non-working "steal cash from soviets" logic for the thief Also, changes to the Mine Layer scripts. And various new/changed scripts from E!. And a fix to JFW_Resource_Field by NeoSaber And also a fix to visible vechicle driver in vechicle stuff, also by NeoSaber
ok, one more script JFW_Create_Attatch_Object. Basicly, it spawns an object and attatches it to a specific bone on another object
JFW_Create_Vehicle_On_Custom (will create a vehicle from the vechicle factory when sent a custom) JFW_Vehicle_Buy (like JFW_Preset_Buy but creates a vehicle from the vehicle factory) JFW_Character_Buy (like JFW_Preset_Buy but changes the character of the thing doing the buying) GameObject *Get_GameObj(int ID) converts a player ID into a GameObject int Get_Player_ID(GameObject *obj) converts a GameObject into a Player ID char *Get_Player_Name(GameObject *obj) converts a GameObject into a Player Name int Get_Occupant_Count() gets the count of how many people are in a vehicle GameObject *Get_Occupant(int seat) gets the object that is in a particular seat (dont know if I can do this one or not yet) bool Contains_Occupant(GameObject *obj) will tell if a vehicle contains a particular soldier or not GameObject *Get_Gunner(GameObject *obj) will get the gunner of a vehicle (if the gunner is the same as the driver, the driver is returned) GameObject *Get_Driver(GameObject *obj) will get the driver of a vehicle GameObject *Get_Vehicle(GameObject *obj) will get the vehicle being driven by a soldier
YSLMuffins YAY! *kiss* not to get off topic here but, Will we see a new map from you?
I don't know much about scripting so i wouldnt know how to put it well but here goes. Is it possible to create a crash animation for air units, so when an air unit is destroyed it doesnt just blow up in mid air but actually goes down quickly into the ground and then blows up and the pilot exits. And obviously depending on wether its moving or not the crash will be just down in a relatively straight line or a forward crash. (this would be moreof a script for reborn) Is it possible to create a vehicle... fly animation. For example a nod buggy is travelling full speed with red health, it is then shot and completely destroyed, instead of just disappearing, could it fly up into the air and land further ahead (this would resemble a buggy in unreal tournament 2004 which flies into the air and flips a few times). And im sure this one has already been asked or been delt with but a script to make certain infantry "un-squishable" such as Volkov (renalert) or Cyborgs (reborn) Edit: almost forgot to mention a swimming script for infantry. When infantry enter the water they float to the top, can't hold a weapon and move their arms and legs as to propel themselves in the direction they want to go for a short amount of time (after a while they drown).
Unforunatly, I dont know how to do any of that at this point.
ok, 2 more JFW_Zone_Send_Custom_Team This one is like TDA_Send_Custom_Zone except it has different settings for GDI and nod. JFW_Custom_Send_Custom_Team this one sends one custom if the sender of the message (e.g. the thing that collected an item) is GDI and another one if its nod.
on, another script JFW_Custom_Destroy_All_Buildings. This will take a team ID and will destroy all buildings of this team, thus ending the game. edit: I am now going to use BaseControllerClass::Set_Base_Destroyed(bool) to end the game (if I can find out how that is)
and more JFW_Timer_Play_Random_Cinematic plays 1 of n different random cinematics when a timer expires JFW_Random_Timer_Play_Random_Cinematic like JFW_Timer_Play_Random_Cinematic but the timer length is random as well
this code (which isnt a fully functioning script, only a function that other scripts can call, it does work though) typedef GameObject *(*ago) (GameObject *obj); GameObject *As_PhysicalGameObj(GameObject *obj) { #ifdef WIN32 _asm { mov ecx, obj mov ebx, [ecx] mov eax, [ebx+0x24] call eax } #else #ifdef RH8 char *c = (char *)*(unsigned int *)obj; c += 0x28; ago *t = (ago *)c; ago apgo = *t; return apgo(obj); #else GameObject *o = obj + 4; char *c = (char *)*(unsigned int *)o; c += 0x2C; ago *t = (ago *)c; ago apgo = *t; return apgo(obj); #endif #endif } typedef char *(*Get_Name) (char *ro); char *Get_Model(GameObject *obj) { GameObject *o = As_PhysicalGameObj(obj); if (o == 0) { return "DUMMY"; } #ifdef WIN32 _asm{ mov eax, o mov ebx, [eax+0x774] mov ecx, [ebx+0x3C] mov eax, [ecx] mov ebx, [eax+0x10] call ebx } #else o+=0x774; char *p = (char *)*(unsigned int *)o; p+=0x54; char *r = (char *)*(unsigned int *)p; #ifndef RH8 r += 0x1C; #endif char *v = (char *)*(unsigned int *)r; #ifndef RH8 r -= 0x1C; v += 4; #endif v += 0x14; Get_Name *n = (Get_Name*)v; Get_Name gn = (Get_Name)*n; return gn(r); #endif } is what I have been working on. More stuff like it is to follow.
ok, another script. This one is going to be a new version of the visible people in vehicle script but that uses Get_Model and various passed in parameters to identify what model to use for the person model.
so far, I have the following functions tested and working on windows and linux: As_PhysicalGameObj (if the GameObject passed to it is a PhysicalGameObj, it returns the object otherwise it returns NULL) As_DamegableGameObj (if the GameObject passed to it is a DamageableGameObj, it returns the object otherwise it returns NULL) Get_Model (will get the model name of any valid PhysicalGameObj, returns "DUMMY" if its not a PhysicalGameObj) Get_Object_Type (will get the Object Type, i.e. GDI, nod etc) for any valid DamageableGameObj (including buildings) Get_Definition (will get the definition class for any GameObject) and Get_Class_ID (will get the Class ID given a Definiton Class). Each definition type in the game has a class ID, for example 0x3001 is the class ID of SoldierGameObjDef and 0x9002 is the class ID of MotorcycleDefClass (a Get_Phys_Definition function to get the physics Definition Class for a PhysicalGameObj is being written)
What about a script that will change the player`s side when he is at a location.Eg.Transitions betwean GDI, Nod, Mutant, Civilian. If possible it might as well be a piece of the puzzle to get more then 2 playable sides in Ren Also, another idea is a script that changes the player`s side when he is killed by tiberium
For the swimming infantry, a workaround may be good enough. Does a Flying Infantry Zone script exist? My idea depends on it. Create a thin Flying Infantry zone (script zone with script attached) near the surface of the water, and add a physical collision plane beneath it. That way, when the person goes too low, he hits a wall, and when he goes too high (out of the water), he stops flying and falls back into the flying zone.
Mad Ivan Also, another idea is a script that changes the player`s side when he is killed by tiberium If they died from falling damage this would happen as well..