[ create a new paste ] login | about

Link: http://codepad.org/3DZGShEs    [ raw code | fork ]

hurracane - C, pasted on Dec 16:
setupCode()
{
	
	amount_of_triggers 		= 4;
	level.finalcode 		= "1:2:1:4";
	level.triggersequence		= "1:2:3:4";
	level.correct_string_code	= "^2Code correct!";
	level.wrong_string_code		= "^1Code Wrong!";
	level.correct_string_trigs	= "^2Correct sequence.";
	level.wrong_string_trigs	= "^1Wrong sequence!";
	level.list_of_restricted_guids 	= [];
	
	door 	= getent("firstdoor","targetname");
	door2 	= getent("seconddoor","targetname");
	
	// Calls thread for numbers 1-9 	-- these are the numbers on the numpad
	// Calls thread for number 10 		-- this is the enter button at the numpad
	// Calls thread for numbers 11-20	-- these are the triggers in the second room
	
	for(i = 1 ; i < (11 + (amount_of_triggers + 1)) ; i++)
		thread waitForInput(i, door, door2);
}
waitForInput(number, door1, door2)
{
	if(number <= 10)
	{
		if(number == 10)
			trig = getent("enterkey","targetname");
		else
			trig = getent(getText(number) + "key","targetname");
	}
	else if(number > 10)
		trig = getent(getText(number) + "trig","targetname");
		
	while(1)
	{
		trig waittill("trigger", player);
		if(number < 10)
			player thread addCode(number, "numlock");
		else if(number == 10)
			player thread addCode("final", "numlock", door1);
		else if(number > 10)
			player thread addCode(number, "triggersequence", door2);
		
	}
}
addCode(code, section, entity_door)
{
	if(section == "numlock")
	{
		if(code == "final")
		{
			if(self.finalcode == level.finalcode)
			{
				self iprintln(level.correct_string_code);
				entity_door.origin += (0,0,10000); // tijdelijk
				wait 3; //  tijdelijk
				entity_door.origin -= (0,0,10000); // tijdelijk
			}
			else
				self iprintln(level.wrong_string_code);
			
			self.finalcode = "";
		}
		if(!isDefined(self.finalcode))
		{
			self.finalcode = "";
			self.finalcode += code;
		}
		else
			self.finalcode += ":" + code;
	}
	else if(section == "triggersequence")
	{
		for(i=0;i<level.list_of_restricted_guids.size);
			if(level.list_of_restricted_guids[i] != 0 && level.list_of_restricted_guids == self getGuid())
				return;
				
		if(!isDefined(self.triggersequence))
		{
			self.triggersequence = "";
			self.triggersequence += (code - 10);
		}
		else
			self.triggersequence += ":" + (code - 10);
		
		if(self.triggersequence == level.triggersequence)
		{
			self iprintln(level.correct_string_trigs);
			entity_door.origin += (0,0,10000);
			wait 3;
			entity_door.origin -= (0,0,10000);
		}
		else if(!isSubStr(level.triggersequence, self.triggersequence))
		{
			self iprintln(level.wrong_string_trigs);
			added = false;
			place_in_array = 0;
			for(i=0;i<level.list_of_restricted_guids.size;i++)
				if(level.list_of_restricted_guids[i] == 0)
				{
					level.list_of_restricted_guids[i] == self getGuid();
					place_in_array = i;
					added = true;
				}
			if(!added)
			{
				place_in_array = level.list_of_restricted_guids.size;
				level.list_of_restricted_guids[level.list_of_restricted_guids.size] = self getGuid();
			}
			self waittill("disconnected");
			level.list_of_restricted_guids[place_in_array] = 0;
		}
	}
}
isSubStr(string, littlestring)
{
	if(littlestring.size > string.size)
		return false;

	for(i = 0; i < string.size - littlestring.size; i++)
	{
		if(getSubStr(string, i, littlestring.size) == littlestring)
			return true;
	}
	return false;
}
getSubStr(string, start, count)
{
	if(start + count > string.size)
	{
		iprintlnbold("getSubStr error");
		return "";
	}
	temp = "";
	for(i = start; i < start + count; i++)
		temp += string[i];
		
	return temp;
}
getText(num)
{
	switch(num)
	{
		case 1:
		case 11:
			return "first";
		case 2:
		case 12:
			return "second";
		case 3:
		case 13:
			return "third";
		case 4:
		case 14:
			return "fourth";
		case 5:
		case 15:
			return "fifth";
		case 6:
		case 16:
			return "sixth";
		case 7:
		case 17:
			return "seventh";
		case 8:
		case 18:
			return "eighth";
		case 9:
		case 19:
			return "nineth";
			
		default:
			iprintlnbold("^1Couldn't find the right number in getText, returning ''first''");
			return "first";
	}
}
/*
Targetnames van triggers (trigger_damage) zijn:
firstkey		secondkey		thirdkey
fourthkey		fifthkey		sixthkey
seventhkey		eighthkey		ninethkey
				enterkey

Targetnames hoeven niet in dezelfde volgorde te staan. 
"firstkey" hoeft niet noodzakelijk op toets "1" te staan.
Als in het script de code "1:5:2" wordt opgegeven zal dit verwijzen naar de volgende triggers:
"firstkey:fifthkey:secondkey" Echter kunnen triggers in het spel op een andere plaats geplaatst worden.

Stel: de "firstkey" trigger zit bij cijfer 1, de "secondkey" bij 2, enz...
De  code "1:2:3" is dan letterlijk "1, 2, 3"
Als je van "firstkey" de vijfde trigger maakt, van secondkey de vierde en van thirdkey de zevende,
dan wordt de code: "5, 4, 7" 

Hierdoor is het onmogelijk om vanuit het script af te leiden wat de code is.

Tweede deel:
Het script 'ondersteund' 9 triggers (trigger_use) met volgende targetnames:
firsttrig		secondtrig
thirdtrig		fourthtrig
fifthtrig		sixthtrig
seventhtrig		eighthtrig
ninethtrig

Je moet het script zelf zeggen hoeveel triggers je wil.
Als je 5 triggers hebt pas je het variabel "amount_of_triggers" aan.
amount_of_triggers = 5;
*/


Create a new paste based on this one


Comments: