Renegade Public Forums
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
Home » Renegade Discussions » Mod Forum » Stealth command help
Re: Stealth command help [message #408625 is a reply to message #407893] Wed, 28 October 2009 01:37 Go to previous messageGo to previous message
reborn is currently offline  reborn
Messages: 3231
Registered: September 2004
Location: uk - london
Karma:
General (3 Stars)
I still think it would be better to do this on the players Created event, no need for the timers then... It's a bit better in my opinion.



bool firstspawn[128]; //global array
bool IsPlayerStealth[128]; // global array


void Player_Join_Hook(int i,const char *Nick) {
firstspawn[i] = true;
IsPlayerStealth[i] = false; 
// etc etc etc


Then in the object hook, where it attaches the SSGM player script, also attach Hubba_Player (or whatever)...


void Hubba_Player::Created(GameObject *obj){
if(firstspawn[Get_Player_ID(obj)] == true){
for (int i = 1; i < 128; i++){
if(IsPlayerStealth[i] == true && Get_GameObj(i)){
Commands->Enable_Stealth(Get_GameObj(i),true);
}
}
firstspawn[Get_Player_ID(obj)] = false;
}



On the level_loaded event I would for loop through the array and set all the elements to false (just to make sure they are all false at the start of the map).


for (int i = 1; i < 128; i++){
IsPlayerStealth[i] = false;
}


You would need to set the players to true in this array when they become stealth, and false when they die. I would do something like this:


class StealthChatCommand : public ChatCommandClass {
	void Triggered(int ID,const TokenClass &Text,int ChatType) {
	GameObject *obj = Get_GameObj(ID);
	float Credits = Commands->Get_Money(obj);

	if(Credits >= 1000){	
		Commands->Give_Money(obj,-1000,false);
			char message[256];
				sprintf(message,"msg %s bought a Stealthsuit", Get_Player_Name_By_ID(ID));
				Console_Input(message); 
					//Commands->Enable_Stealth(obj,true);
					Commands->Attach_Script(obj,"Hubba_Stealth","");
		}
	else {
	Console_Input(StrFormat("ppage %d You need $1000.",ID).c_str());  
	}
}
};
ChatCommandRegistrant<StealthChatCommand> StealthChatCommandReg("!ss;!StealthSuit;!SS;!stealthsuit",CHATTYPE_ALL,0,GAMEMODE_AOW);




void Hubba_Stealth::Created(GameObject *obj)
{
Commands->Enable_Stealth(obj,true);
IsStealthPlayer[Get_Player_ID(obj)] = true;
}	

void Hubba_Stealth::Killed(GameObject *obj,GameObject *shooter)
{
IsStealthPlayer[Get_Player_ID(obj)] = false;
}
ScriptRegistrant<Hubba_Stealth> Hubba_Stealth_Registrant("Hubba_Stealth","");


class Hubba_Stealth : public ScriptImpClass {
void  Created(GameObject *obj);
void Killed(GameObject *obj,GameObject *shooter);
};






Also, who are you? It is not often that someone new comes to these forums who starts picking up the API.



[Updated on: Wed, 28 October 2009 01:39]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: I need of a modified scripts.dll
Next Topic: Level Edit Problem
Goto Forum:
  


Current Time: Mon Dec 30 10:26:22 MST 2024

Total time taken to generate the page: 0.01393 seconds