These scripts require that you have PHP (with cli) installed. PHP-scripts require small tweaking to work on Windows, works as is on linux/unix/mac. You just need to edit certain variables mentioned below.
I have this directory structure:
/home/f-3000/fl/
/home/f-3000/fl/php/
/home/f-3000/fl/class_based_stuff/warrior/
/home/f-3000/fl/stuff/charname/
/home/f-3000/fl/logs/2011/
Yours don't have to be equal, but you must change the differences into scripts.

Edit paths in #scripts to point into location where you'll save the two php-files on this page.

#alias {.login}
{
	#script {php ./fl/php/load_prefs.php $character};
	#script {php ~/fl/php/start_logger.php $character};
	#read ./fl/tickers;
}

#action {^([Q]uit) Enter Aabahran with which Name?> $} {#alias {%*} {#var {character} {%%1};#send %%1}}

#action {^Password?> $} {#unalias {%%*}}

#action {^Prepare yourself. For you are about to <Enter> the Forsaken Lands!$}
{
	.login;
	#unaction {^([Q]uit) Enter Aabahran with which Name?> $};
	#unaction {^Password?> $};
}


Content of load_prefs.php:
Edit $main_path to point into location where you have files you use to load into Tintin++.
Debug-option also expects that you run the script from path under location where your files reside (in my case, /home/f-3000/fl/php/).
If you don't like the container-stuff in the script, just delete it or comment it out.

<?php

// if you call this file with debug as second argument, you'll get content that suits terminal (useful for checking that everything works dandy) (i.e. php load_prefs.php charname debug)

// this is where YOUR tintin-files reside
$main_path="/home/f-3000/fl/";

if(!isset($argv[1]))die("#showme load_prefs.php -> Missing argument 1! (character name);");

$path="$main_path/prefs_".$argv[1];
if(isset($argv[2])&&$argv[2]==="debug"){
	$path="../prefs_".$argv[1];
	define("N","\n");
}else{
	define("N",";");
}

echo "#var {prefs_loaded} {1}".N;

@$haku=file($path,FILE_IGNORE_NEW_LINES);
if($haku===false)die("#showme load_prefs.php -> Preferences file for {$argv[1]} not found!".N);
echo "#showme loading prefs...".N;
echo "#read $path".N;

$class=false;

$data=array(
	'class'=>'',
	'weapon'=>'',
	'instrument'=>'',
	'projectile'=>'',
	'prefs'=>'',
	);

foreach($haku as $item){
	$exped=explode("{",$item,2);
	$exped=explode("}",$exped[1],2);
	switch($exped[0]){
	case 'containers':
		$exped=explode("}{",trim(rtrim($exped[1],"} "),"{ "));
		$data['containers']=array();
		for($a=0;$a<count($exped);$a++){
			$b=$a+1;
			$data['containers'][$exped[$a]]=$exped[$b];
			$a=$b;
		}
		break;
	case 'class':
		$class=trim(rtrim($exped[1]," }")," {");
		break;
	}
}

// check if class is empty, so we can blame prefs-file if it's lacking!
if($class===false)
{
	die("#showme Prefs-file did not contain class-variable! Aborting...".N);
}

if($class==="")
{
	die("#showme Class-variable was empty in prefs-file! Aborting...".N);
}

// build container-stuff...
$container_help=array("#showme <caf>Containers:");
if(isset($data['containers'])){
	$main_containers=array("2","6","0"); // some day prefs should contain these...
	$container_help=array();
	foreach($data['containers'] as $key => $item){
		echo "#var {containers[$key]} {".$item."}".N;
		echo "#alias {"."$key} {get %0 \$containers[$key]}".N;
		echo "#alias {"."$key$key} {put %0 \$containers[$key]}".N;
		$star="*";
		if(!in_array($key,$main_containers))foreach($main_containers as $cont){
			echo "#alias {"."$cont$key} {get \$containers[$key] \$containers[$cont];get %0 \$containers[$key];put \$containers[$key] \$containers[$cont];}".N;
			echo "#alias {"."$cont$key$key} {get \$containers[$key] \$containers[$cont];put %0 \$containers[$key];put \$containers[$key] \$containers[$cont];}".N;
			$star="";
		}
		$container_help[]="#showme <caf>containers[$key] = $item $star";
	}
}
$container_help=implode(";",$container_help);
echo "#alias {.help_containers} {".$container_help."}".N;
// end container-stuff

// load class-based files...
echo "#showme Reading class ($class) based stuff...".N;
$path="$main_path/class_based_stuff/$class/";
exec("ls $path",$list);
foreach($list as $item){
	if(strpos($item,"~")!==false)continue;
	echo "#read $path$item".N;
}

// Load character-based settings...
$c=ucfirst($argv[1]);
$file="$main_path/stuff/$c/settings";
if(file_exists($file)){
	echo "#read $file".N;
}

//echo '#if {$affects_connected} {#chat message affects {class: $class}}'.N;

?>


Content of start_logger.php
Edit $path to point into location where you save your logs.

<?php

// this is where your FL log-files reside...
$path="/home/f-3000/fl/logs/";

$date=date("m-d");
$file=$path.date("Y")."/".$argv[1]."_$date";
echo '#log {a} {'.$file.'};';
echo '#showme <818>Logging to file "'.$argv[1].'_'.$date.'" ...;';

?>

Here is an example of prefs-file content:
Prefs-file name is in format prefs_charname.

#VARIABLE         {class}  {adventurer}
#VARIABLE         {containers}  {{2}{'backpack'}{3}{cow}{4}{bag}{5}{knapsack}{6}{quiver}{7}{sack}{8}{satchel}{9}{keg}}
#VARIABLE         {dualweapon}  {}
#VARIABLE         {emote_prefs} {{search_from}{a sack}{takeout}{}}
#VARIABLE         {instrument}  {}
#VARIABLE         {offhand}  {shield}
#VARIABLE         {prefs}  {{ap_coin}{on}{ap_slab}{on}{auto_pickup}{on}{dirt}{off}{disarm}{off}{trip}{off}{where}{1}}
#VARIABLE         {projectile}  {arrow}
#VARIABLE         {weapon}  {sub}

Preferences can be saved with Logout script.



  • You have no special abilities

  • This page is read-only | View other revisions | View recent changes | Preferences
    Last edited July 9, 2011 8:55 am by F-3000 (diff)

    Search: