logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: [1] 2  Send TopicPrint
Hot Topic (More than 10 Replies) English conversion help (script?) (Read 5736 times)
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
English conversion help (script?)
Aug 30th, 2014 at 1:19pm
Print Post  
So I have this really weird map series I downloaded and is running on my server. It's a long series of maps that begins with 01Escape, 02Village, 03Temple and looks to end somewhere around map 47.

Anyway it's a delicious mix of styles even within each map, really eclectic and oftentimes bizarre. I've spent the last few evenings exploring a bit among them and it's exploration at it's finest.

My issue is that there are *hundreds* of translator events, triggers, etc and they are all in Czech. I'm missing a huge amount of the backstory as well as in-map direction clues.

My question(s): has anyone created a way to deal with conversion that doesn't mean spending hours per map converting one-at-a-time? Is there a way to scrape all the selected text from an .unr file into a text file like notepad? If such a tool does not exist I might consider making one. I'd really like to enjoy these maps fully.

I know how to open a map with tools like UTPT and get the needed actor values. Instead I'm looking if anyone has ever tried to automate this process. If not this could be a major project to undertake, and that's even if I can find a decent Czech conversion software that won't destroy the meanings. 

Edit: OK, I did find a partial conversion at Bob's site. That's a good start, but it's not very well done. I think I'm going to redo it if I can find help with the conversions.
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
SFJake
Full Member
***
Offline


Oldunreal member

Posts: 248
Joined: Aug 15th, 2010
Gender: Male
Re: English conversion help (script?)
Reply #1 - Aug 30th, 2014 at 5:07pm
Print Post  
So you're talking about Redeem Your Space.

The subject of translating it was seen before and I do wish someone did it.

I tried to translate it with the help of translation software and logic... it did not go far. Its probably not even written perfectly in that language in the first place, meaning translating it without knowledge of the language is pretty much impossible. At the best of my efforts, the effort didn't just lack a bit of the feeling, I barely could even guess what he meant sometimes.

Its really not that difficult to get all the translator events and the few other texts manually. The real job is really just to translate them.

So the real problem is just, who can translate them?
  
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #2 - Aug 30th, 2014 at 11:10pm
Print Post  
I'm going to do this since I have next week off. I've found several efforts for it already but this will be an entire conversion.

Do you think it would be completely improper to just remake all the maps? I want to do an entire English conversion as well as remove the useless wormhole sections. I will not alter the maps or anything, I just want to make them coop friendly.

Any Czech speakers out there that will translate for pizza?
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
AlCapowned
Full Member
***
Offline


Oldunreal member

Posts: 168
Joined: Dec 22nd, 2009
Re: English conversion help (script?)
Reply #3 - Aug 31st, 2014 at 12:22am
Print Post  
I think Leo(T.C.K.) at least did a partial translation already, you should ask him about it.
  
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #4 - Aug 31st, 2014 at 1:26am
Print Post  
I actually spoke to him first about this since I knew he had worked on it.

I've pulled a selection of the messages and ran them through Google translate as well as several other free online converters. Google seems to do the best but it still misses words here and there. In order to get this thing done whole and finished in a coherent manner I think I'll convert what I can then fill in the blanks with the same style Paci was using in his stuff.

It doesn't make sense to convert this in partial English. It's going to need restated. For instance one of the translated events reads:
Quote:
My Log: I was awakened from hibernation, but what's going on? Alarm is triggered. Something had to crash into the ship, or from us by someone Rise? I should have a look around

Checking the translation alternatives lets me understand what Rise is supposed to mean so I'd rewrite this as
Quote:
My Log: I awoke from hibernation to an alarm. Did something crash into the ship or is someone awake? I should have a look around


Doing it like this is probably more than I'd ever do to someone else's work without direct permission but RYS is a special case. So many people want this done and multiple servers would use it. Unless anyone has strong objections I'm going to do it.

BTW are there any map errors that need addressed? I've played about half the maps so far and nothing glaring jumped out but in honesty I was using my mover commander to open doors here and there.
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
Masterkent
Developer Team
Offline



Posts: 1337
Location: Russia
Joined: Apr 5th, 2013
Gender: Male
Re: English conversion help (script?)
Reply #5 - Aug 31st, 2014 at 11:52am
Print Post  
gopostal wrote on Aug 30th, 2014 at 11:10pm:
Do you think it would be completely improper to just remake all the maps?

If I decided to introduce minor changes in some maps, modification of the original packages would be the last option that I would consider. When I fixed various defects related to Operation Na Pali maps, I used scripts (included in mutator) for almost everything I wanted to change; the only exception was 1 map with broken lighting that caused clients to crash - I had to rebuild it. At different moments I released 16 revisions of the mutator, and all updates were very small in size (the latest one has about 138 kib).

For localization purposes, however, I would first consider the built-in means provided by Unreal. For a given map MapName.unr you can create file MapName.int that would look like

Code
Select All
[LevelInfo0]
Title=International title

[TranslatorEvent0]
Message=International message
Hint=International hint

[TranslatorEvent1]
Message=Another international message 


in order to override the original strings.

If you can't find a ready tool for extracting translator messages, you could log them via simple script shown below:

Code
Select All
class LocalizationLogger expands Mutator;

function PostBeginPlay()
{
	LogLevelInfo();
	LogLevelSpecialEvents();
	LogLevelTranslatorEvents();
}

function Tick(float DeltaTime)
{
	SwitchToNextLevel();
}

function bool IsNonDefaultVar(Actor A, string PropertyName)
{
	local string ClassName;

	if (ClassIsChildOf(A.class, class'LevelInfo'))
		ClassName = string(class'LevelInfo');
	else if (ClassIsChildOf(A.class, class'SpecialEvent'))
		ClassName = string(class'SpecialEvent');
	else if (ClassIsChildOf(A.class, class'TranslatorEvent'))
		ClassName = string(class'TranslatorEvent');
	else
		ClassName = string(A.class);

	return A.GetPropertyText(PropertyName) != ConsoleCommand("Get" @ ClassName @ PropertyName);
}

function LogLocalized(string S)
{
	log("****" @ S, 'Localized_string');
}

function LogPropertyVar(Actor A, string PropertyName)
{
	if (IsNonDefaultVar(A, PropertyName))
		LogLocalized(PropertyName $ "=" $ A.GetPropertyText(PropertyName));
}

function LogLevelInfo()
{
	if (IsNonDefaultVar(Level, "LevelEnterText") ||
		IsNonDefaultVar(Level, "IdealPlayerCount") ||
		IsNonDefaultVar(Level, "Title"))
	{
		LogLocalized("[" $ Level.name $ "]");
		LogPropertyVar(Level, "LevelEnterText");
		LogPropertyVar(Level, "IdealPlayerCount");
		LogPropertyVar(Level, "Title");
		LogLocalized("");
	}
}

function LogLevelSpecialEvents()
{
	local SpecialEvent A;

	foreach AllActors(class'SpecialEvent', A)
	{
		if (IsNonDefaultVar(A, "DamageString") ||
			IsNonDefaultVar(A, "Message"))
		{
			LogLocalized("[" $ A.Name $ "]");
			LogPropertyVar(A, "DamageString");
			LogPropertyVar(A, "Message");
			LogLocalized("");
		}
	}
}

function LogLevelTranslatorEvents()
{
	local TranslatorEvent A;

	foreach AllActors(class'TranslatorEvent', A)
	{
		if (IsNonDefaultVar(A, "Message") ||
			IsNonDefaultVar(A, "Hint") ||
			IsNonDefaultVar(A, "M_HintMessage") ||
			IsNonDefaultVar(A, "M_NewMessage") ||
			IsNonDefaultVar(A, "M_TransMessage"))
		{
			LogLocalized("[" $ A.Name $ "]");
			LogPropertyVar(A, "Message");
			LogPropertyVar(A, "Hint");
			LogPropertyVar(A, "M_HintMessage");
			LogPropertyVar(A, "M_NewMessage");
			LogPropertyVar(A, "M_TransMessage");
			LogLocalized("");
		}
	}
}

function SwitchToNextLevel()
{
	local Teleporter Telep;

	foreach AllActors(class'Teleporter', Telep)
		if (InStr(Telep.URL, "/") > 0 || InStr(Telep.URL, "#") > 0)
		{
			Level.ServerTravel(Telep.URL, false);
			return;
		}
} 


Compile it to make LocalizationLogger.u, then in game use command "open FirstMapOfTheCampaign?mutator=LocalizationLogger.LocalizationLogger". If the campaign constitutes a linear sequence of levels, then the script should log strings related to every map one by one.

The log file will contain lines like

Code
Select All
Localized_string: **** [LevelInfo0]
Localized_string: **** Title=Some title
Localized_string: ****
Localized_string: **** [TranslatorEvent0]
Localized_string: **** Message=Some message
Localized_string: **** Hint=Some hint
Localized_string: ****
Localized_string: **** [TranslatorEvent1]
Localized_string: **** Message=Another message 


"Localized_string: **** " can be removed via the "find-and-replace" thing supported by any normal text editor, so you can easy get

Code
Select All
[LevelInfo0]
Title=Some title

[TranslatorEvent0]
Message=Some message
Hint=Some hint

[TranslatorEvent1]
Message=Another message 


And now you need to translate the text somehow.

Quote:
Any Czech speakers out there that will translate for pizza?

You could try to ask Nikola on newbiesplayground.net. She maintains (or used to?) this localization project:

http://www.oldunreal.com/wiki/index.php?title=English_.int_(RYS)
  
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #6 - Aug 31st, 2014 at 1:34pm
Print Post  
I cannot thank you enough MasterKent, that's precisely what I wanted to use for this. It will be an easy matter to translate in chunks and should make it fairly easy to rescript this in the author's theme and voice.

I'll do this via mutator then but I'm going to add some optional functionality to it that the server admin can decide on. I've noticed that the maps need some extra playerstarts and I want to add the ability to skip the wormholes. They interrupt the game flow too many times and it's when most people leave the maps on my server.

Does anyone else know of anything that needs addressed for this? I'm going to begin work today.

Thanks again MK. You demonstrate why OldUnreal and it's community is the reason I still play this old ass game  Wink

Update: This worked flawlessly. I now have everything in a singular text file that I can begin scrubbing clean to translate.

I posted the compiled mod with a quick readme:
http://s000.tinyupload.com/index.php?file_id=00056305125208553611

Enjoy anyone that wants to read the story of a map series without having to play the entire thing. With minimal effort you get a nice (mostly linear) text file of the thing. This is AWESOME Smiley

Second update:
Towards the end of the file I'm seeing this
Code
Select All
Warning: Failed to load '48Epilogue': Can't find file '48Epilogue'
Warning: Failed to load 'Level None.MyLevel': Can't find file '48Epilogue' 


A quick google doesn't show anything. Was this a mistake?
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
Masterkent
Developer Team
Offline



Posts: 1337
Location: Russia
Joined: Apr 5th, 2013
Gender: Male
Re: English conversion help (script?)
Reply #7 - Aug 31st, 2014 at 7:01pm
Print Post  
gopostal wrote on Aug 31st, 2014 at 1:34pm:
I've noticed that the maps need some extra playerstarts and I want to add the ability to skip the wormholes.

Such things should be easy to do. Any actor included in the current map can be accessed via the following helper-function

Code
Select All
function Actor GetMapActor(string ActorName)
{
    return Actor(DynamicLoadObject(Level.outer.name $ "." $ ActorName, class'Actor', true));
} 


The result can be casted to a suitable subclass of Engine.Actor if necessary:

Code
Select All
function EliminatePlayerStart(string ActorName)
{
    local PlayerStart A;
    A = PlayerStart(FindMapActor(ActorName));
    A.bSinglePlayerStart = false;
    A.bCoopStart = false;
} 


By default, Engine.PlayerStart actors have bStatic == true, such actors cannot be dynamically spawned or removed. In order to eliminate an existing start point we can disable the corresponding PlayerStart (but not destroy it entirely); in order to create a new start point, we can use a custom subclass of Engine.PlayerStart such that its bStatic == false.

Quote:
Update: This worked flawlessly. I now have everything in a singular text file that I can begin scrubbing clean to translate.

Unfortunately, the script above cannot be considered as a comprehensive extractor of strings that are subject to localization (sorry, I should note this before). I covered some basic cases with LevelInfo, SpecialEvents and TranslatorEvents, but there are other standard classes that contain string variables declared as localized, e.g. Engine.ZoneInfo and Engine.Trigger.

The following variant offers better coverage than the prior one, but, in theory, it still may skip something important. If you want to make a really comprehensive translation, you cannot 100% rely solely on this method.

Code
Select All
class LocalizationLogger expands Mutator;

function PostBeginPlay()
{
	LogLevelName();
	LogLevelInfo();
	LogLevelSpecialEvents();
	LogLevelTranslatorEvents();
	LogLevelTriggers();
	LogLevelZones();
}

function Tick(float DeltaTime)
{
	SwitchToNextLevel();
}

function bool IsNonDefaultVar(Actor A, string PropertyName)
{
	local string ClassName;

	if (ClassIsChildOf(A.class, class'LevelInfo'))
		ClassName = string(class'LevelInfo');
	else if (ClassIsChildOf(A.class, class'SpecialEvent'))
		ClassName = string(class'SpecialEvent');
	else if (ClassIsChildOf(A.class, class'TranslatorEvent'))
		ClassName = string(class'TranslatorEvent');
	else if (ClassIsChildOf(A.class, class'Trigger'))
		ClassName = string(class'Trigger');
	else if (ClassIsChildOf(A.class, class'ZoneInfo'))
		ClassName = string(class'ZoneInfo');
	else
		ClassName = string(A.class);

	return A.GetPropertyText(PropertyName) != ConsoleCommand("Get" @ ClassName @ PropertyName);
}

function LogLocalized(string S)
{
	log("****" @ S, 'Localized_string');
}

function LogPropertyVar(Actor A, string PropertyName)
{
	if (IsNonDefaultVar(A, PropertyName))
		LogLocalized(PropertyName $ "=" $ A.GetPropertyText(PropertyName));
}

function LogLevelName()
{
	log("Map:" @ Level.outer.name);
	log("============================================================");
}

function LogLevelInfo()
{
	if (IsNonDefaultVar(Level, "DamageString") ||
		IsNonDefaultVar(Level, "LevelEnterText") ||
		IsNonDefaultVar(Level, "IdealPlayerCount") ||
		IsNonDefaultVar(Level, "Title"))
	{
		LogLocalized("[" $ Level.name $ "]");
		LogPropertyVar(Level, "DamageString");
		LogPropertyVar(Level, "LevelEnterText");
		LogPropertyVar(Level, "IdealPlayerCount");
		LogPropertyVar(Level, "Title");
		LogLocalized("");
	}
}

function LogLevelSpecialEvents()
{
	local SpecialEvent A;

	foreach AllActors(class'SpecialEvent', A)
	{
		if (IsNonDefaultVar(A, "DamageString") ||
			IsNonDefaultVar(A, "Message"))
		{
			LogLocalized("[" $ A.Name $ "]");
			LogPropertyVar(A, "DamageString");
			LogPropertyVar(A, "Message");
			LogLocalized("");
		}
	}
}

function LogLevelTranslatorEvents()
{
	local TranslatorEvent A;

	foreach AllActors(class'TranslatorEvent', A)
	{
		if (IsNonDefaultVar(A, "Message") ||
			IsNonDefaultVar(A, "Hint") ||
			IsNonDefaultVar(A, "M_HintMessage") ||
			IsNonDefaultVar(A, "M_NewMessage") ||
			IsNonDefaultVar(A, "M_TransMessage"))
		{
			LogLocalized("[" $ A.Name $ "]");
			LogPropertyVar(A, "Message");
			LogPropertyVar(A, "Hint");
			LogPropertyVar(A, "M_HintMessage");
			LogPropertyVar(A, "M_NewMessage");
			LogPropertyVar(A, "M_TransMessage");
			LogLocalized("");
		}
	}
}

function LogLevelTriggers()
{
	local Trigger A;

	foreach AllActors(class'Trigger', A)
	{
		if (IsNonDefaultVar(A, "Message"))
		{
			LogLocalized("[" $ A.Name $ "]");
			LogPropertyVar(A, "Message");
			LogLocalized("");
		}
	}
}

function LogLevelZones()
{
	local ZoneInfo A;

	foreach AllActors(class'ZoneInfo', A)
	{
		if (A == Level)
			continue;
		if (IsNonDefaultVar(A, "DamageString"))
		{
			LogLocalized("[" $ A.Name $ "]");
			LogPropertyVar(A, "DamageString");
			LogLocalized("");
		}
	}
}

function SwitchToNextLevel()
{
	local Teleporter Telep;

	foreach AllActors(class'Teleporter', Telep)
		if (InStr(Telep.URL, "/") > 0 || InStr(Telep.URL, "#") > 0)
		{
			Level.ServerTravel(Telep.URL, false);
			return;
		}
} 


  
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #8 - Sep 1st, 2014 at 2:18am
Print Post  
This is 'good enough' for a language translation. Looking at the cleaned up logfile I'm guessing there is around 1800 lines of text to translate and rewrite. I'm fully aware some stuff will be missed but this will get the pack fully playable and understandable. I'll open a "missed translation" page when I get this much done to catch anything that slipped past. I'd guess a good English version of this pack would bring a decent deal of renewed interest in it and get a bunch of playthroughs. Hopefully that would translate (I see what I did there) into feedback so this is done right.

I've gotten the first map completely done and I'm currently writing the wrapper for the server mutator's functionality. I've tested the first map and the replacement text works just fine. Off we go! Smiley


Do the server admins here want me to post source code as-I-go or wait until it's done?
« Last Edit: Sep 1st, 2014 at 4:01am by gopostal »  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
.:..:
Oldunreal MasterPoster
Developer Team
*
Offline



Posts: 1503
Location: Finland
Joined: Aug 16th, 2005
Gender: Male
Re: English conversion help (script?)
Reply #9 - Sep 1st, 2014 at 2:50pm
Print Post  
Btw, if you have 227 installed you can also run: UCC.exe DumpInt <Map name>

That will automatically generate an .int file for the map for all localized text.
  

Shivaxi wrote on Jul 25th, 2013 at 12:50pm:
...and now im stuck trying to fix everything you broke for the next 227 release xD Tongue

(ಠ_ಠ)
Back to top
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #10 - Sep 1st, 2014 at 3:25pm
Print Post  
NOW you tell me  Wink  Thank you for that Dots, I'll double check I'm not missing anything.

Finished the third map a few minutes ago. Now the entire thing is making good sense. Even for words that mess up in translation I still feel pretty confident I'm getting it right. This is going to take a while but it's getting a little faster as I understand Paci's storyline better.
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #11 - Sep 3rd, 2014 at 2:41pm
Print Post  
I'm sorry to self-reply but I have a question that I cannot find an answer for.

I'm 10 maps in on the translation. The story is making good sense, enough that I've went back several times to clarify earlier edits. I even have a notebook with the timeline, people, ships, etc to keep it all straight. Oh, and I know a bit of Czech now too Smiley

Oh, my question....Well I'm getting nervous. I built my mod replacing these lines using CheckReplacment (as I've always done for this sort of thing). It won't be long until there is over 1000 lines in that function and I'm nowhere near 1/4th of the way. If this were you guys would you nest the replacements? Currently I have them like this:
Code
Select All
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
   local SpecialEvent SE;
   local TranslatorEvent TE;

   SE = SpecialEvent(Other);
   TE = TranslatorEvent(Other);
   
// Intro map
	if ( string(SE) ~= "00Intro.SpecialEvent1" )
		SE.Message= "In the 21st century tension between world powers was rising...";
	if ( string(SE) ~= "00Intro.SpecialEvent2" )
		SE.Message= "Until the outbursts of hatred got out of control."; 


and so on...

My concern is that it will lag on server load if it has to iterate so many lines. Is this a valid concern and should I nest them with a map name check to bypass sections? I've never approached anywhere near this many lines in a class so I just don't know the way to go.
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
Masterkent
Developer Team
Offline



Posts: 1337
Location: Russia
Joined: Apr 5th, 2013
Gender: Male
Re: English conversion help (script?)
Reply #12 - Sep 3rd, 2014 at 4:29pm
Print Post  
gopostal wrote on Sep 3rd, 2014 at 2:41pm:
Code
Select All
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
   local SpecialEvent SE;
   local TranslatorEvent TE;

   SE = SpecialEvent(Other);
   TE = TranslatorEvent(Other);
   
// Intro map
	if ( string(SE) ~= "00Intro.SpecialEvent1" )
		SE.Message= "In the 21st century tension between world powers was rising...";
	if ( string(SE) ~= "00Intro.SpecialEvent2" )
		SE.Message= "Until the outbursts of hatred got out of control."; 


Such a code doesn't look optimal definitely. I would use something like this:

Code
Select All
// the mutator's PostBeginPlay
function PostBeginPlay()
{
	FixMaps();
	// and possibly anything else
}

function FixMaps()
{
	if (outer.name == '00Intro')
		FixMap_00Intro();
	else if (outer.name == '01Escape')
		FixMap_01Escape();
	// and so on...
}

function FixMap_00Intro()
{
	SetSpecialEventMessage("SpecialEvent1", "In the 21st century tension between world powers was rising...");
	SetSpecialEventMessage("SpecialEvent2", "Until the outbursts of hatred got out of control.");
	// and so on...
}

function Actor GetMapActor(string ActorName)
{
	return Actor(DynamicLoadObject(outer.name $ "." $ ActorName, class'Actor', true));
}

function SetSpecialEventMessage(string ActorName, string Message)
{
	local SpecialEvent A;
	A = SpecialEvent(GetMapActor(ActorName));
	if (A == none)
	{
		log("Error: SpecialEvent actor" @ ActorName @ "is not found");
		return;
	}
	A.Message = Message;
} 

  
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #13 - Sep 3rd, 2014 at 6:01pm
Print Post  
Roger that. I will nest the checks when I finish the translations. Thanks for that!
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 942
Joined: Jul 31st, 2008
Gender: Male
Re: English conversion help (script?)
Reply #14 - Sep 5th, 2014 at 4:21pm
Print Post  
Just wanted to post an update that I'm still going with this. I've translated up to map 26 so far. Thanks to MasterKent's code posts I was able to script replacements that won't lag the server and work just fine.
I added a couple of things that can be selected via an ini file. First, the mod can add these everywhere there is a translator event:



It's just a simple spinning "!" symbol. It's very handy for finding all the storyline parts (and it's a very rich storyline for being told like it's done via tweets). Also I added bSkipWormholes to the ini file so it just jumps from map to map. A question on that...here is the code I'm using:
Code
Select All
if (bSkipWormholes)
	{
		SkipWormholes("Teleporter0", "25LostPalace#");
	} 


Do I need to add the #pod?peer to the end? Not sure what those switches do.

Still to do is add the extra playerstarts. I'll get those tonight or tomorrow.

I hate to ask but does someone want to proof my translations for spelling errors/etc? I'm not kidding, you get cross-eyed as hell after doing them for a couple of hours. I want them to read right though and that's been a little tough to do. My primary goal has been to maintain Paci's voice but say it in a way that makes sense to English speakers and also stay within the character limit. Another person's view would be nice if you have the time.

btw, that moment when 1000 lines of code in a single class compiles...
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
Page Index Toggle Pages: [1] 2 
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo