|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102123] |
Fri, 16 July 2004 21:23 |
|
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.
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102180] |
Sat, 17 July 2004 02:35 |
|
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)
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102273] |
Sat, 17 July 2004 14:52 |
|
YSLMuffins
Messages: 1144 Registered: February 2003 Location: Moved a long time ago (it...
Karma: 0
|
General (1 Star) Moderator - Mod Forum |
|
|
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?
-YSLMuffins
The goddess of all (bread products)
See me online as yslcheeze
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102292] |
Sat, 17 July 2004 16:36 |
|
JFW_Regenerate_Health_Conditional seems simple enough.
Parameters would be timer settings and an ID as well as how much health to regen.
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102324] |
Sat, 17 July 2004 20:01 |
|
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.
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102339] |
Sat, 17 July 2004 23:11 |
|
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
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102353] |
Sun, 18 July 2004 01:45 |
|
ok, one more script JFW_Create_Attatch_Object.
Basicly, it spawns an object and attatches it to a specific bone on another object
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102357] |
Sun, 18 July 2004 03:30 |
|
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
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102393] |
Sun, 18 July 2004 09:48 |
Zeta1125
Messages: 1 Registered: July 2004
Karma: 0
|
Recruit |
|
|
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).
|
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102462] |
Sun, 18 July 2004 16:29 |
|
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.
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102467] |
Sun, 18 July 2004 16:52 |
|
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)
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
[Updated on: Sun, 18 July 2004 17:21] Report message to a moderator
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102480] |
Sun, 18 July 2004 17:17 |
|
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
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102493] |
Sun, 18 July 2004 18:49 |
|
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.
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|
scripts.dll 1.8 is being worked on (I need ideas people) [message #102501] |
Sun, 18 July 2004 19:41 |
|
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.
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|