Home » Renegade Discussions » Mod Forum » complete changelog for scripts.dll 2.7
complete changelog for scripts.dll 2.7 [message #197618] |
Tue, 25 April 2006 06:27 |
|
This is a complete changelog for new features in scripts.dll 2.7.
I am still hard at work finishing the last features (like the radar) but rest assured that I will push 2.7 out the door as soon I can (and I will make sure the big stuff has been tested)
Complete changelog: (items marked with a * will require bhs.dll 2.7 on the client to function)
Bug fixes to the nick exploit fixes, the ID console command and the PINFO console command so that it will correctly check the entire nickname list.
The WOLSEND console command is now gone.
New console command WOLNAME that is used by LFDS WOL to set the WOL server name (remember that even with LFDS XWIS, the server still thinks its a GameSpy server and behaves as such)
New console command DISARM to disarm all C4 of a player
New console command DISARMP to disarm all proximity C4 of a player
New console command DISARMB to disarm all beacons of a player
New code to send the special packet that WOLSEND used to send (but to send it properly so people on all NAT conections can join)
A new hook that will trigger anytime the "The version of player x is y" message is printed. Hook is passed the player ID and version.
*void DLLEXPORT Set_Wireframe_Mode(unsigned int mode); //Sets the wireframe mode. Will remain in effect untill changed by another call to Set_Wireframe_Mode
*Code to send Disable_All_Collisions, Disable_Physical_Collisions and Enable_Collisions over the network
*void DLLEXPORT Load_New_HUD_INI(GameObject *obj,const char *ini); //Loads a new hud ini at runtime (the only things that can be changed at runtime are texture filenames and most but not all color related tags). Note that once you load an ini file, things will stay the same until changed again.
*void DLLEXPORT Update_PT_Data(); //Indicates that PT data updating has been completed and triggers a send of the PT data over the network. Bear in mind that the PT data, once changed, stays changed until its changed again to something else.
*A fix to the Remove_Weapon engine call such that it sends properly over the network now (and functions correctly)
*New code for custom HUD. The following parts exist in the new HUD code:
You can define colors which will then be used later on in the code.
You can customize the health and shield numbers
You can customize the bullet count and clip count numbers
You can customize the weapon name and image
You can hide the names of enemy soldiers, with an exceptions list (e.g. spy presets go there so that spies are not hidden)
You can define a texture entry which then has one or more rectangles taken from that texture. This is how the generic elements of the custom HUD are drawn.
You can change the health and shield bars.
You can hide the weaon box (the bakground behind the weapon numbers and image)
You can hide the info box (which covers everything thats not text on the other side to the weapon box except the radar including the health and shield bars)
You can customize the compass text (i.e. the text that says "N,S,E,W etc)
You can customize the radar. As of right now, objectives and "radar markers" wont be displayed. Only normal objects will be displayed. Also, functionality to allow for a scrolling map (like renalert showed off a while back) may or may not make it into 2.7.
You can customize the "time remaining" and "credits" text (hide it, draw new text elsewhere)
You can hide the player/team list
You can customize the health/shield icon (in normal renegadethis is the little cross next to the health number). Unlike normal renegade, you wont be able to make it flash back and forth (like when you have almost no health)
You will be able to hide the powerup icons (that is the icons and text that display when you get a powerup)
Several engine calls that disarm beacons now use the new Disarm_Beacon engine call to correctly disarm the beacon.
Bug fixes to a couple of classes (like cGameData) in light of some new discoveries.
Change to Console_Output so that it can be properly used like printf (so you can do Console_Output("abc is %d\n",abc) for example)
*void Send_Message_With_Obj_Color(GameObject *obj,const char *Msg); //send a messages in a given objects color
*void Send_Message_With_Team_Color(int Team,const char *Msg); //Send a message in a given teams color
void Damage_Occupants(GameObject *obj,float Damage,const char *Warhead); //Damage all the occupants of a vehicle
int Get_Current_Bullets(GameObject *obj); //Get loaded bullets for an objects current gun
int Get_Current_Clip_Bullets(GameObject *obj); //Get clip/backpack bullets for an objects current gun
int Get_Current_Total_Bullets(GameObject *obj); //Get total bullets for an objects current gun
int Get_Total_Bullets(GameObject *obj,const char *weapon); //Get total bullets for a specific gun (if the object doesnt have the gun, return is zero)
int Get_Clip_Bullets(GameObject *obj,const char *weapon); //Get clip/backpack bullets bullets for a specific gun (if the object doesnt have the gun, return is zero)
int Get_Bullets(GameObject *obj,const char *weapon); //Get loaded bullets bullets for a specific gun (if the object doesnt have the gun, return is zero)
int Get_Current_Max_Bullets(GameObject *obj); //Get max loaded bullets for an objects current gun
int Get_Current_Clip_Max_Bullets(GameObject *obj); //Get max clip/backpack bullets for an objects current gun
int Get_Current_Total_Max_Bullets(GameObject *obj); //Get total bullets for an objects current gun
int Get_Max_Total_Bullets(GameObject *obj,const char *weapon); //Get max total bullets for a specific gun (if the object doesnt have the gun, return is zero)
int Get_Max_Clip_Bullets(GameObject *obj,const char *weapon); //Get max clip/backpack bullets bullets for a specific gun (if the object doesnt have the gun, return is zero)
int Get_Max_Bullets(GameObject *obj,const char *weapon); //Get max loaded bullets bullets for a specific gun (if the object doesnt have the gun, return is zero)
int Get_Position_Total_Bullets(GameObject *obj, int position); //Get total bullets for an objects gun at a specific position
int Get_Position_Bullets(GameObject *obj,int position); //Get loaded bullets for an objects gun at a specific position
int Get_Position_Clip_Bullets(GameObject *obj,int position); //Get clip/backpack bullets for an objects gun at a specific position
int Get_Position_Total_Max_Bullets(GameObject *obj, int position); //Get total bullets for an objects gun at a specific position
int Get_Position_Max_Bullets(GameObject *obj,int position); //Get loaded bullets for an objects gun at a specific position
int Get_Position_Clip_Max_Bullets(GameObject *obj,int position); //Get clip/backpack bullets for an objects gun at a specific position
void Set_Current_Bullets(GameObject *obj,int bullets); //Set current loaded bullets for an object
void Set_Current_Clip_Bullets(GameObject *obj,int bullets); //Set current clip/backpack bullets for an object
void Set_Position_Bullets(GameObject *obj,int position,int bullets); //Set position loaded bullets for an object
void Set_Position_Clip_Bullets(GameObject *obj,int position,int bullets); //Set position clip/backpack bullets for an object
void Set_Bullets(GameObject *obj,const char *weapon,int bullets); //Set loaded bullets for an object
void Set_Clip_Bullets(GameObject *obj,const char *weapon,int bullets); //Set clip/backpack bullets for an object
const char *Get_Team_Name(int Team); //Get a teams name
const char *Get_Vehicle_Name(GameObject *obj); //Get the name of a vehicle (as used for the HUD display)
INIClass *Get_INI(char const *filename); //Open an INI file and read stuff from it. You can then use the members of INIClass to read from the ini file.
void Release_INI(INIClass *ini); //Close an INI file
void Disarm_Beacon(GameObject *obj); //Disarm a beacon
void Disarm_Beacons(int ID); //Disarm all beacons for a player
GameObject *Find_Harvester(int team); //Find this teams current harvester, if any
int GetMaxPlayerID(); //Get the maximum currently used player ID
const char *Get_Powerup_Weapon(const char *Powerup); //Get the weapon name that a powerup will grant if collected
GameObject *Get_Vehicle_Owner(GameObject *obj); //Gets the owner (if any) of a vehicle
TeamPurchaseSettingsDefClass *Get_Team_Purchase_Definition(unsigned long team); //Gets the TeamPurchaseSettingsDefClass for a team (which you can then read from)
PurchaseSettingsDefClass *Get_Purchase_Definition(unsigned long team, unsigned long type); //Gets the PurchaseSettingsDefClass for a given team and type (which you can then read from)
const char *Get_Definition_Name(unsigned long id); //Convert a definition/preset ID into a name
unsigned long Get_Definition_ID(const char *name); //Convert a definition/preset name into an ID
unsigned int Get_Team_Cost(const char *preset,unsigned int team); //Get the cost of a preset for a given team. Returns zero if the preset is not found in any of the purchase terminal data or if it is one of the free units.
unsigned int Get_Cost(const char *preset); //Get the cost of a preset. Returns zero if the preset is not found in any of the purchase terminal data or if it is one of the free units.
*void Set_Enlisted(unsigned int team, unsigned int position, unsigned int presetid, unsigned int stringid, const char *texture); //Change an enlisted soldier for a team
*void Set_Beacon(unsigned int team, unsigned int cost, unsigned int presetid, unsigned int stringid, const char *texture); //Change the beacon for a team
*void Set_Refill(unsigned int team, unsigned int stringid, const char *texture); //Change the refill for a team
*void Set_Preset(unsigned int team, unsigned int type, unsigned int position, unsigned int cost, unsigned int presetid, unsigned int stringid, const char *texture); //Change a preset given a type and team
*void Set_Alternate(unsigned int team, unsigned int type, unsigned int position, unsigned int altpos, unsigned int presetid, const char *texture); //Change an alternate given a type and a team
new script, JFW_Damage_Occupants_Death which damages all occupants when the vehicle this script is on dies.
*new script, JFW_HUD_INI which goes on a soldier and loads a new hud.ini (see above for details of that)
*new script, JFW_Wireframe_Mode which goes on a map and sets the wireframe mode for this map
Versions of JFW_Character_Buy_Poke, JFW_Refill_Buy_Poke, JFW_Vehicle_Buy_Poke, JFW_Powerup_Buy_Poke, JFW_Preset_Buy_Poke, JFW_Group_Purchase_Poke, JFW_Powerup_Buy_Poke_Timer, JFW_Weapon_Buy_Poke, JFW_Preset_Buy_Poke_Timer & JFW_Preset_Buy_Poke_Custom that play a sound if the poker has not got enough cash for the purchase.
Versions of JFW_Switch_Door, JFW_Switch_Lock_Door, JFW_Toggle_Door, JFW_Toggle_Lock_Door, JFW_Switch_Door_Team & JFW_Toggle_Door_Team that use the object they are attached to as the object to act on (instead of needing to pass the object ID in)
new script, JFW_Lock_Sound which, when poked, plays one sound if the poker doesnt have <key> and a different sound if they do.
new script, JFW_Vehicle_Extra which creates an object and attaches it to a given bone of another object. When the object is destroyed, so is the attachment.
new script JFW_Vehicle_Extra_2 which is like JFW_Vehicle_Extra but also passes damage done to the host to the attachment. Also, it attaches JFW_Vehicle_Extra_Attach to the object.
new script JFW_Vehicle_Extra_Attach which is used to pass damage done to the attached object to the main object. In order for this to work, both the objects need to have identical settings for armour, skin, health, shield etc.
new script, JFW_Advanced_Guard_Tower_2. This does the same things as M00_Advanced_Guard_Tower but allows you to customize the locations of the missile and guns relative to the building controler. Unlike JFW_Advanced_Guard_Tower, this uses M00_Advanced_Guard_Tower_Missile and M00_Advanced_Guard_Tower_Gun which should prevent any bugs in JFW_Advanced_Guard_Tower_Missile and JFW_Advanced_Guard_Tower_Gun from being a problem.
New scripts from WD, MDB_Weapon_Scope_Global, MDB_Base_Defense_Popup_No_VTOL, MDB_Base_Defense_Popup_VTOL_Only, MDB_Base_Defense_Popup, MDB_Base_Defense, MDB_Base_Defense_No_VTOL, MDB_Base_Defense_VTOL_Only and MDB_Send_Custom_Enemy_Seen.
The defence scripts are going to be used for various defences in Reborn (MDB_Base_Defense_Popup_VTOL_Only would be perfect for a proper TD-style popup SAM site using the model that is in buildings.zip)
Some new #defines in scripts.h for the values you can pass to Set_Obj_Radar_Blip_Shape and Set_Obj_Radar_Blip_Color
This is the complete list of features that will be in 2.7. No scripts exist yet that use the new PT functionality or the new bullet/weapon stuff but I am sure that people (myself included) will write some now that its there to be used
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: complete changelog for scripts.dll 2.7 [message #197753 is a reply to message #197618] |
Tue, 25 April 2006 22:20 |
|
Here is a description of how JFW_Vehicle_Extra_2 and JFW_Vehicle_Extra_Attach will work.
On startup, JFW_Vehicle_Extra_2 will
Create the attach object
Set its team to the same as the team of the main object
Attach JFW_Vehicle_Extra_Attach to the object, passing in the ID of the main object.
When the main object is destroyed, it will kill the attach object.
When the main object is damaged, the health and shield of the attach object will be set to the same thing as the main object.
When the main object is entered, the team of the attach object will be set to the team of whoever entered. Also, anyone in the attach object of a team other than the one that is now the team of the attach object will be kicked out (as such, the attach object will need to be a vehicle with the same settings for health, shield, max health, max shield, skin and shield type as the main object)
When the main object is exited, if there is now no-one in the vehicle (i.e. its empty), the team of the attach object will be set to neutral.
JFW_Vehicle_Extra_Attach works as follows
When the attach object is killed or damaged, the main object is also killed or damaged.
This way, if the main object is neutral, anyone can enter the attach object or main object. If its a specific team, only people who are of that team can enter the attach object.
Also, there will be a new engine call to kick any players of <team> out of a vehicle.
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, 25 April 2006 22:22] Report message to a moderator
|
|
|
|
|
|
|
Re: complete changelog for scripts.dll 2.7 [message #197874 is a reply to message #197618] |
Wed, 26 April 2006 18:00 |
|
I am planning to (depending on how things go) have a release for this by the end of the month.
I probobly wont be able to get the scrolling map feature for the radar in though.
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: complete changelog for scripts.dll 2.7 [message #198194 is a reply to message #197618] |
Sat, 29 April 2006 07:19 |
|
I have pretty much completed the new PT code. The new radar code is almost complete too.
Baring any further problems (and assuming I can write the documentation for all this new stuff), I will have 2.7 out this weekend or next week I hope (then if necessary, I will release a 2.7.1 to fix any bugs).
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: complete changelog for scripts.dll 2.7 [message #198198 is a reply to message #197618] |
Sat, 29 April 2006 08:25 |
|
Sir Kane
Messages: 1701 Registered: March 2003 Location: Angerville
Karma: 0
|
General (1 Star) |
|
|
jonwil wrote on Tue, 25 April 2006 08:27 |
You can customize the radar. As of right now, objectives and "radar markers" wont be displayed. Only normal objects will be displayed. Also, functionality to allow for a scrolling map (like renalert showed off a while back) may or may not make it into 2.7.
|
Stop editing my posts moderator fag. Also, stop copying my ideas ratwil.
Proud N9500 and proud N6270 user. Creator of the IEE libraries (original bhs.dll) and the RB series software.
[Updated on: Sun, 30 April 2006 06:10] Report message to a moderator
|
|
|
Re: complete changelog for scripts.dll 2.7 [message #198208 is a reply to message #197618] |
Sat, 29 April 2006 09:59 |
|
Spice
Messages: 1448 Registered: November 2003 Location: Ohio
Karma: 0
|
General (1 Star) |
|
|
If the code was finished and released, He wouldn't need to steal your ideas. Cool, it was your idea. He did the bulk work and made it happen. Aswell as sending it out to the community.
|
|
|
|
|
|
|
Goto Forum:
Current Time: Mon Nov 04 08:46:29 MST 2024
Total time taken to generate the page: 0.00852 seconds
|