Renegade Public Forums
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
Home » Renegade Discussions » Mod Forum » scripts.dll 2.6 and beoynd
scripts.dll 2.6 and beoynd [message #193175] Sat, 18 March 2006 02:17 Go to next message
jonwil is currently offline  jonwil
Messages: 3555
Registered: February 2003
Karma: 0
General (3 Stars)

I am currently talking to crimson/blazer about getting a bug-tracking database set up, once thats set up, I will start entering stuff into it so I can keep track of all bugs and features planned for the scripts.dll. (there will be more details of the features listed below when I enter them into the database including full design specifications & requirements documentation for the feature)

But so far, here is what I have on the "stuff to do for 2.6 and beoynd" list:
fix LFDS RenRem
renrem logging (to log anyone using renrem)
an Is_Scriptable engine call (like Is_C4 etc)
a set_damage_points engine call
a set_death_points engine call
set_obj_radar_blip_xxx commands that are per-player and per-team
versions of the JFW_Base_Defence_xxx scripts that switch weapons from primary to secondary and back when you send a custom
clones of JFW_Switch_Door & JFW_Toggle_Door that are team specific
Script to enable an AI driven RA2 chrono harvester to work
Script to enable a suicide bomber infantry unit (i.e. press a key and they blow up with a mod-maker specified explosion)
Construction yard script that only repairs in a given radius
Change the timer for the JFW_Vehicle_Block_Preset to a better value
An engine call to get the value of TranslatedNameID for a given object (if it has a value) and then read the string for the value (which will be in the language that the server/FDS is in)
A new version of the ICON command that is exactly the same as the current one but will show the ICON to the enemy of the passed in player instead of the team they are on.
Looking into why the ->Created function is not called for C4 objects.
Engine call to get the ammo for <player> <gun>.
Engine call to set the ammo for <player> <gun>.
Engine call to add to the ammo for <player> <gun>.
Engine call to remove <gun> from <player>.
Engine call to create a script zone at runtime and to set its size.
Engine call to change the size of a script zone at runtime.
More customizability with regards to the HUD (eventually, I plan to make it completly customizable, possibly even including radar like RenAlert showed off way back when)
Engine call to get the planter of a beacon.
Engine call to get the owner of a vehicle.
Engine call to set the owner of a vehicle.
Engine call to get the time for a player (same as the Player_Info console command).
Support for the side buttons on my Microsoft USB Optical Intellimouse.
Support for changing the vehicle limit at runtime
Support for changing PT buttons at runtime
A hud.ini feature so mods can make it so that you cant see the enemies player name
A script such that anytime a character with it attached is inside a vehicle, that vehicle will be slowly healed.
A script to block certain presets from entering a zone
A script to allow only certain presets to enter a zone
A hook for when a player leaves the game.
Change the player limit at runtime
Get the player limit
Change the time remaining/time limit at runtime
Get the time remaining/time limit
End the game by timing out
Make vehicle damage reports go over the network (if in fact there are any such sounds that dont go over the network properly)
Make "Health Is Full","Armour Is Full", "Ammunition is full" messages go over the network
Engine call to get the planter of a C4 object.
Look into a way to send proper colored text to the client (displayed like the chat text but colorable by the user)
Engine calls to display a texture (texture would be the same as the scope texture) on a given players screen and remove the current texture that is displayed. Along with some scripts I plan to make, this could be used to display instructions etc.
Console commands to display information about a player and their vehicle (e.g. what preset they are, health, shield strength etc etc).

If you have any requests for 2.6 and beoynd, please add them here otherwise they wont end up on my list.


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
Re: scripts.dll 2.6 and beoynd [message #193195 is a reply to message #193175] Sat, 18 March 2006 06:15 Go to previous messageGo to next message
=HT=T-Bird is currently offline  =HT=T-Bird
Messages: 712
Registered: June 2005
Karma: 0
Colonel
You have a bugtracker on your SourceForge project page, d00d!

HTT-Bird (IRC)
HTTBird (WOL)
Proud HazTeam Lieutenant.
BlackIntel Coder & Moderator.

If you have trouble running BIATCH on your FDS, have some questions about a BIATCH message or log entry, or think that BIATCH spit out a false positive, PLEASE contact the BlackIntel coding team and avoid wasting the time of others.

[Updated on: Sat, 18 March 2006 06:19]

Report message to a moderator

Re: scripts.dll 2.6 and beoynd [message #193205 is a reply to message #193175] Sat, 18 March 2006 09:44 Go to previous messageGo to next message
Oblivion165 is currently offline  Oblivion165
Messages: 3468
Registered: June 2003
Location: Hendersonville, North Car...
Karma: 0
General (3 Stars)
A script that makes a AI attack a specific ScriptZone, thats been needed since day 1.

WOL: Ob165ion Skype: Oblivion165 Yahoo Instant Messenger: CaptainJohn165
Re: scripts.dll 2.6 and beoynd [message #193260 is a reply to message #193175] Sat, 18 March 2006 19:46 Go to previous messageGo to next message
=HT=T-Bird is currently offline  =HT=T-Bird
Messages: 712
Registered: June 2005
Karma: 0
Colonel
Another suggestion...migrate the Linux build system over to Autoconf...that would handle odd (piece-meal/non-RedHat) distros better than what you have right now...and even (hopefully) cross compile Linux scripts.so from my Windoze box! Wink

HTT-Bird (IRC)
HTTBird (WOL)
Proud HazTeam Lieutenant.
BlackIntel Coder & Moderator.

If you have trouble running BIATCH on your FDS, have some questions about a BIATCH message or log entry, or think that BIATCH spit out a false positive, PLEASE contact the BlackIntel coding team and avoid wasting the time of others.
Re: scripts.dll 2.6 and beoynd [message #193271 is a reply to message #193175] Sat, 18 March 2006 22:45 Go to previous messageGo to next message
jonwil is currently offline  jonwil
Messages: 3555
Registered: February 2003
Karma: 0
General (3 Stars)

Written so far:
script for character that will repair vehicle anytime character is inside.
chrono harvester script (basicly a clone of KAK_Harvester_xxx but which teleports to a specified location before following the Waypath_Field2Dock waypaths)
construction yard script that repairs only buildings in limited radius
engine call to repair buildings only in limited radius
infantry unit that will self-destruct when a key is pressed (blow up with a specified explosion preset then die)
clones of the JFW_Base_Defence_xxx scripts that switch between primary and secondary when send a particular custom)
clones of JFW_Switch_Door & JFW_Toggle_Door that are team specific
a clone of the ICON command but which displays only for the enemies team
an Is_Scriptable engine call (like Is_C4 etc)
per-player/per-team set_obj_radar_blip_xxx commands
set_death_points engine call
set_damage_points engine call
engine call to get a translated string given its numeric ID
engine call to get the string matching the TranslatedNameID of a given GameObject
Changed the timer for JFW_Vehicle_Block_Preset to what should hopefully be a better number.
an engine call to display a texture (same texture size etc as for scopes) for a given user.
an engine call to remove the currently displayed texture
a script that you attach to a player to display the texture then it will disappear automatically


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
Re: scripts.dll 2.6 and beoynd [message #193287 is a reply to message #193175] Sun, 19 March 2006 05:18 Go to previous messageGo to next message
jonwil is currently offline  jonwil
Messages: 3555
Registered: February 2003
Karma: 0
General (3 Stars)

Ok, more stuff written:
Engine call to get the translated name of the current weapon of a solder/vehicle (usefull for kill messages)
Engine call to get the translated name of a specific weapon of a solder/vehicle.
A way to send a message to the client that will appear in the same message box as messages like "unit ready" etc. You can specify a RGB color too. This (along with the texture feature I mentioned earlier) will require bhs.dll on the client.

Oh and FYI, I dont think its possible to detect (inside the killed event of a script for example) if the object was destroyed by a beacon or C4 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
Re: scripts.dll 2.6 and beoynd [message #193294 is a reply to message #193175] Sun, 19 March 2006 07:48 Go to previous messageGo to next message
jonwil is currently offline  jonwil
Messages: 3555
Registered: February 2003
Karma: 0
General (3 Stars)

ok, further changes:
the SVERSION console command now works on clients too and will tell you your current version (e.g. 2.6 or 2.7)
Changes to make the <xxx> has joined the game, <xxx> has left the game and <xxx> has bought a vehicle messages more likely to correctly appear.
Plus a new engine call and console command to get the vehicle limit and and engine call and console command to set it. Note that all players will require bhs.dll on the client for this to work. Also, when its set, it stays set untill you set it to something else. There is one limit for both teams (so no, you cant give Nod a different limit to GDI Smile
Got a bunch more things on the to-do list, some of which will probobly be in 2.6.
I will just keep going and then release when I am ready to do so (or if we need something for a specific purpose e.g. a mod needs <feature> now or if we need more stuff for LFDS WOL)


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
Re: scripts.dll 2.6 and beoynd [message #193360 is a reply to message #193175] Sun, 19 March 2006 21:26 Go to previous messageGo to next message
theplague is currently offline  theplague
Messages: 261
Registered: May 2004
Karma: 0
Recruit
how about basic settings, like speed and such? maybe engin calls could be written to chenge them?

edit: more specific: running speed, turnig speed


http://users.tpg.com.au/ling44/av_firefox.gifhttp://users.tpg.com.au/ling44/av_rg.gif

[Updated on: Sun, 19 March 2006 21:27]

Report message to a moderator

Re: scripts.dll 2.6 and beoynd [message #193370 is a reply to message #193175] Sun, 19 March 2006 22:57 Go to previous messageGo to next message
theplague is currently offline  theplague
Messages: 261
Registered: May 2004
Karma: 0
Recruit
-= not relevent anymore, i removed it =-

http://users.tpg.com.au/ling44/av_firefox.gifhttp://users.tpg.com.au/ling44/av_rg.gif

[Updated on: Sun, 19 March 2006 23:05]

Report message to a moderator

Re: scripts.dll 2.6 and beoynd [message #193497 is a reply to message #193175] Tue, 21 March 2006 07:47 Go to previous messageGo to next message
jonwil is currently offline  jonwil
Messages: 3555
Registered: February 2003
Karma: 0
General (3 Stars)

Here is a complete list of features currently in 2.6:
Code to make "player left game", "player joined game" and "player bought vehicle" messages display always (somtimes they didnt display properly on the LFDS although they appeared in the log files)
Clone of the ICON console command that displays for the enemy instead of for your team.
Change to the SVERSION console command to work for clients too
*Console Command to change the current vehicle limit
Console Command to display the current vehicle limit
*per-player & per-team versions of Set_Obj_Radar_Blip_Shape and Set_Obj_Radar_Blip_Color
*A new engine call to display a texture same as the scope texture (size etc) and one to make the texture go away. Usefull for displaying instructions etc (especially since the texture can have alpha blending/transparency)
*A new engine call to send a message to a player such that it appears in the box where mesasges like "unit ready" appear. You also specifiy what color you want the message to be.
*Engine call to set the current vehicle limit
Engine call to get the current vehicle limit
bool Is_Scriptable(GameObject *obj); //is a ScriptableGameObj
void Set_Damage_Points(GameObject *obj,float points); //Set the damage points for an object
void Set_Death_Points(GameObject *obj,float points); //Set the death points for an object
void Repair_All_Buildings_By_Team_Radius(int Team,int ConstructionYardID,float Health,float Radius); //repairs all buildings in the specified radius around the object represented by ConstructionYardID for the team except the passed in ConstructionYardID,0 = Nod,1 = GDI
const char *Get_Translated_String(unsigned long ID); //Get a string from the translation database given its ID
const char *Get_Translated_Preset_Name(GameObject *obj); //Get the translated name for the preset of this object, if it has one
int Get_C4_Count_Proximity(int Team); //Get the proximity C4 count for a team
int Get_C4_Count_Remote(int Team); //Get the remote C4 count for a team
void Attach_Script_All_Buildings_Team(int Team,const char *Script,const char *Params,bool Once); //attach a script to all buildings by team
void Attach_Script_All_Turrets_Team(int Team,const char *Script,const char *Params,bool Once); //attach a script to all turrets by team
const char *Get_Translated_Weapon(GameObject *obj,int position); //Get the translated name of a weapon
const char *Get_Current_Translated_Weapon(GameObject *obj); //Get the translated name of the current weapon
Clones of JFW_Base_Defence_xxx that alternate between primary and secondary when sent a custom
Script called JFW_Pilot_Repair that when put on an infantry unit makes that unit repair any vehicle they are inside
Script called JFW_Conyard_Radius that repairs buildings in a certain radius
Clones of KAK_Harvester_xxx that teleport the harvester to a particular location before following the field2dock waypath
Script JFW_Suicide_Bomber which when a certain key is pressed, infantry unit with it attached blows up.
*Script JFW_Show_Info_Texture, shows the texture mentioned above for specified amonut of time then makes it go away.
per-team versions of JFW_Switch_Door and JFW_Toggle_Door
Change to the time value used by JFW_Vehicle_Block_Preset to identify how soon after recieving the "entered vehicle" event to kick the unit out.

Here is a list of features that are still to be added to 2.6:
GameObject *Get_C4_Planter(GameObject *obj); //Gets the planter of a C4GameObj
GameObject *Get_Beacon_Planter(GameObject *obj); //Gets the planter of a BeaconGameObj
GameObject *Get_C4_Attached(GameObject *obj); //Gets the object a C4GameObj is attached to (if any)
void Remove_Gun(GameObject *obj,const char *gun); //Removes a gun from an object
GameObject *Get_Owner(GameObject *obj); //Gets the owner of a vehicle
float Get_Lock_Time(GameObject *obj); //Gets the time a vehicle will remain locked to the owner
void Set_Owner(GameObject *obj,GameObject *owner,float LockTime); //Sets the owner and lock time of a vehicle
void Set_Lock_Time(GameObject *obj,float LockTime); //Sets the lock time of a vehicle
Note that entering a vehicle resets the owner, as does the expiration of the lock time (defaults to 26 seconds when you buy the vehicle)
int Get_Vehicle_Mode(GameObject *obj); //Gets the mode of a vehicle
0 = car
1 = tank
2 = bike
3 = flying
4 = turret
void Repair_All_Turrets_By_Team(int Team,float health); //repairs all vehicles that have mode = turret
Changes to the scripts with VTOL in the name to check the vehicle mode instead of the physics type
New construction yard repair script to repair only turrets
engine call to get a teams color
engine call to get a players color
engine call to get an objects color
Changes to parse hud.ini color change on the FDS (so that the get color engine calls get the right color)
void Disarm_C4(GameOBject *obj); //Disarm a C4 object
void Disarm_All_Proxy_C4(int ID); //Disarm all proximity C4 owned by a player
void Disarm_All_C4(int ID); //Disarm all C4 owned by a player
Console command to disarm all C4 owned by a player
Console command to disarm all proximity C4 owned by a player
Fixes to disarm all C4 when the team change console commands and engine calls are used
int Get_Current_Vehicle_Count(int team); //Gets the current vehicle count for a team
bool Is_Base_Powered(int team); //Is this teams base powered
bool Can_Generate_Vehicles(int team); //Can this team buy vehicles
bool Can_Generate_Soliders(int team); //Can this team buy soldiers
*engine call to send colored message (like above) to everyone
*engine call to send colored message (like above) to a team
*Console command to send colored message to player, team and everyone

And, depending on how things go time wise and such, I will also try and get these into 2.6:
Engine calls to change the ammunition for a given player and a given gun (not sure which ones, if any, yet, I have to find the place it keeps the ammunition values first)
A possible fix to make ->Created get called when a C4GameObj is created
Console command to change the player limit at runtime (if I can find all the places to change to make it work)
Console command and engine call to get the current player limit
Engine call to get the time for a player (like Player_Info) if I can figure out how
Console Command to change the time remaining/time limit for the game if I can figure out how
Console Command/engine call to get the time remaining/time limit for the game if I can figure out how
Console Command/Engine call to end the game by timing out if I can figure out how
Script to block certain presets from entering a zone
Script to allow only certain presets to enter a zone
These 2 I can do, I just have to figure out the math to move something "backwards N units"
*Changes to make "Health Is Full","Armour Is Full", "Ammunition is full" messages go over the network (I know where to change, the hard part is finding enough code to insert my hooks and making sure I get the right player ID and other information to pass though to the client)
*Changes to make various reports (e.g. harvester under attack) go over the network (if you hear the harvester under attack reports now, its probobly because you are on an SSAOW server which plays them itself). Need to figure out which sounds need to be sent over the network and where to hook to make that happen.

*these features reqire bhs.dll on the client to work


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
Re: scripts.dll 2.6 and beoynd [message #193534 is a reply to message #193175] Tue, 21 March 2006 18:12 Go to previous messageGo to next message
theplague is currently offline  theplague
Messages: 261
Registered: May 2004
Karma: 0
Recruit
nice work JW. here are two scripts people might find intresting...

pass a part of a name to this and it'll find the first person with that part of the name
GameObject *Get_Part_Name(const char *name1) {
	GenericSLNode *x = BaseGameObjList->HeadNode;
	int count = 0;
	GameObject *current;
	std::string name = StringToLower(name1);
	while (x != 0) {
		GameObject *o = As_SoldierGameObj((GameObject *)x->NodeData);
		if (o != 0) {
			std::string pname = StringToLower(Get_Player_Name(o));
			if (pname.find(name) != std::string::npos) {
				current = o;
				count++;
			}
		}
		x = x->NodeNext;
	}
	if (count == 1 && current && Commands->Get_ID(current)) return current;
	else return 0;
}


This is just to see how many people have this part in their names
int Get_Part_Names(const char *name1) {
	GenericSLNode *x = BaseGameObjList->HeadNode;
	int count = 0;
	std::string name = StringToLower(name1);
	while (x != 0) {
		GameObject *o = As_SoldierGameObj((GameObject *)x->NodeData);
		if (o != 0) {
			std::string pname = StringToLower(Get_Player_Name(o));
			if (pname.find(name) != std::string::npos) {
				count++;
			}
		}
		x = x->NodeNext;
	}
	return count;
}


http://users.tpg.com.au/ling44/av_firefox.gifhttp://users.tpg.com.au/ling44/av_rg.gif
Re: scripts.dll 2.6 and beoynd [message #193540 is a reply to message #193175] Tue, 21 March 2006 20:05 Go to previous messageGo to next message
jonwil is currently offline  jonwil
Messages: 3555
Registered: February 2003
Karma: 0
General (3 Stars)

ok, will add those 2 engine calls to 2.6.
Also, NeoSaber of the RenAlert team has told me of a possible issue to do with vehicle turrets where they appear to be jerky whewn they turn that I will look into.
And there was a request for colors like PM color (and other related colors) to be made changeable. Will do my best to make this happen as well as adding engine call to get the colors back from the game.

Also, the commands to send the colored message will (either via a different version or a special flag) let you specify that you want to use one of the various colors (e.g. team color, PM color etc) that engine calls will exist to retrieve.


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: Tue, 21 March 2006 20:08]

Report message to a moderator

Re: scripts.dll 2.6 and beoynd [message #193542 is a reply to message #193175] Tue, 21 March 2006 20:54 Go to previous messageGo to next message
Viking is currently offline  Viking
Messages: 1692
Registered: July 2005
Location: Earth
Karma: 0
General (1 Star)
"A hud.ini feature so mods can make it so that you cant see the enemies player name"

FUCKING YES MAKE RED ALERT APB USE IT! CUS THAN THE SPY MIGHT BE USEFUL!



Toggle Spoiler


QUOTES
"The Renegade community revolves around having something awesome, and not sharing it so you can be on top of the mountain." -Canadacdn

Crimson wrote on Thu, 17 May 2007 05:22

Memphis wrote on Tue, 15 May 2007 03:54

...fatally die to death...


I don't know if you meant to do that, but triple redundancy for teh win. I LOL'ed.


Awesome l337 people= Icedog90, Blazea58, Canadacdn, Crimson, jonwil
Re: scripts.dll 2.6 and beoynd [message #193608 is a reply to message #193175] Wed, 22 March 2006 22:47 Go to previous messageGo to next message
jonwil is currently offline  jonwil
Messages: 3555
Registered: February 2003
Karma: 0
General (3 Stars)

.dook, one more 2.6 feature that I plan to add:
I am going to change keycfg.exe, keys.cfg and the keyhook code so that you can set a key to "none" and it will not be assigned to any key (but can still be reassigned later).


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: Wed, 22 March 2006 22:51]

Report message to a moderator

Re: scripts.dll 2.6 and beoynd [message #193651 is a reply to message #193175] Thu, 23 March 2006 10:19 Go to previous message
Ma1kel is currently offline  Ma1kel
Messages: 956
Registered: July 2005
Location: Kingdom of the Netherland...
Karma: 0
Colonel
...

Previous Topic: Attack Helicopter's Carrying two People.
Next Topic: Mod installer?
Goto Forum:
  


Current Time: Wed May 15 18:57:20 MST 2024

Total time taken to generate the page: 0.00938 seconds