Seite 1 von 2

Bar-Mod von Zarath

Verfasst: 24.01.2008 14:38
von .:Falo:.
Hi @ all,

ich habe den Bar-Mod von Zarath eingebaut. Mit diesem können User sich betrinken und wenn sie dann etwas posten, wird der Text umgewandelt, sodass es halt aussieht, als ob jemand das geschrieben hat, der komplett breit ist ;-)
Ich möchte allerdings, dass dies nicht in allen Foren funktioniert. Also müsste ich im Code irgendwo schreiben, dass das Verändern nur in bestimmten Foren gemacht wird... Müsste man doch einfach mit einer "if-Abfrage" machen können, oder? Hab leider kp wie ich das machen soll. Hier mal die Dateien, wo dies irgendwo gemacht werden muss:

Verfasst: 26.01.2008 11:20
von .:Falo:.
*bump*

Verfasst: 28.01.2008 21:41
von .:Falo:.
So, ich hab jetzt noch ein bisschen rumprobiert und anscheinend eine Lösung gefunden, die ich aber gerne noch bestätigt haben würde, nicht das dadurch irgendwas nicht mehr so läuft wie es soll...

Die folgenden Codes sind für die Umwandlung der Texte verantwortlich:

includes/functions.php:

Code: Alles auswählen

//
// Start drunk create functions...
//
function drunk_letters($rand, $higher)
{
	$alpha = array_merge(range("a", "z"));
	$return_alpha = array();
	for ($i = 0; $i < 26; $i++)
	{
		if ( rand(1,$rand) > $higher ) { $return_alpha[] = $alpha[$i]; }
	}
	return $return_alpha;
}

function drunk_replace($alpha)
{
	$alpha_count = count($alpha);
	$replaces = array();
	for ($i = 0; $i < $alpha_count; $i++)
	{
		$replaces[] = "/" . $alpha[$i] . "/";
	}

	return $replaces;
}
function drunk_replaces($alpha)
{
	//
	// Create drunk replacement vars!
	//
	$drunk_a = array('aa', 'ah', 'oa', 'aa', 'ah', 'oa', 'A', 'ahhh');
	$drunk_b = array('B', 'vb', 'vb');
	$drunk_c = array('C', 'cj', 'sj', 'zj', 'cj', 'sj', 'zj');
	$drunk_d = array('D');
	$drunk_e = array('E', 'eh', 'eh');
	$drunk_f = array('F', 'fFf', 'fff', 'fFf', 'fff');
	$drunk_g = array('G');
	$drunk_h = array('H', 'hh', 'hhh', 'Hhh', 'HhH', 'hh', 'hhh', 'Hhh', 'HhH');
	$drunk_i = array('I', 'Ii', 'ii', 'Iii', 'iI', 'Ii', 'ii', 'Iii', 'iI');
	$drunk_j = array('J', 'jj', 'Jj', 'jj', 'Jj');
	$drunk_k = array('K');
	$drunk_l = array('L');
	$drunk_m = array('M', 'mM', 'MmM', 'mm', 'mmm', 'mmmm', 'mmmmm', 'mM', 'MmM', 'mm', 'mmm', 'mmmm', 'mmmmm');
	$drunk_n = array('N', 'Nn', 'nn', 'nnn', 'nNn', 'Nn', 'nn', 'nnn', 'nNn');
	$drunk_o = array('ao', 'oo', 'aOoo', 'ooo', 'Ooo', 'ooOo');
	$drunk_p = array('P', 'pah');
	$drunk_q = array('Q', 'ku', 'kukeleku', 'ququ', 'ku', 'kukeleku', 'ququ');
	$drunk_r = array('R', 'erR', 'Rr');
	$drunk_s = array('ss', 'sSss', 'ZSssS', 'sSzzsss', 'zzZzssZ');
	$drunk_t = array('T');
	$drunk_u = array('U', 'Uh', 'uhhu', 'uhU', 'Uhuhhuh');
	$drunk_v = array('V', 'vz');
	$drunk_w = array('W', 'Ww');
	$drunk_x = array('X', 'xz', 'kz', 'iks', 'xz', 'kz', 'iks');
	$drunk_y = array('Y');
	$drunk_z = array('Z', 'zZ', 'Zzz', 'ZSz', 'ZzzZz', 'szz', 'sZZz', 'Zsszzsz', 'zZ', 'Zzz', 'ZSz', 'ZzzZz', 'szz', 'sZZz', 'Zsszzsz');
	//
	// End drunk replacement vars!
	//

	$alpha_count = count($alpha);
	$replaces = array();
	for ($i = 0; $i < $alpha_count; $i++)
	{
		$temp_var = 'drunk_' . $alpha[$i];
		$rand = rand(0, count(${$temp_var})-1);
		$replaces[] = ${$temp_var}[$rand];
	}

	return $replaces;
}
//
// End drunk create functions...
//

includes/functions_post.php:

Code: Alles auswählen

	// Drunk Code //
	if ( $userdata['user_drunk'] > time() )
	{

		$message_words = explode(' ', str_replace("\r\n", ' ', $post_message));
		$msg_num = count($message_words);
		for ($ix = 0; $ix < $msg_num; $ix++)
		{
			$word_array = '';

			if ( trim($message_words[$ix]) != '<br />' && trim($message_words[$ix]) != '<br>' )
			{
				if ( is_numeric(trim($message_words[$ix])) )
				{
					$word_len = strlen($message_words[$ix]);
					$message_words[$ix] = rand('0', str_repeat('9', $word_len));
				}
				else
				{
					$switch = ((time() - $userdata['user_drunk']) / 600);
					switch ($switch)
					{
						case $switch > 6:
							$rand = 10;
							$higher = 1;
							break;
						case $switch > 5:
							$rand = 7;
							$higher = 1;
							break;
						case $switch > 4:
							$rand = 4;
							$higher = 1;
							break;
						case $switch > 3:
							$rand = 5;
							$higher = 2;
							break;
						case $switch > 2:
							$rand = 5;
							$higher = 3;
							break;
						case $switch > 1:
							$rand = 3;
							$higher = 2;
							break;
						default:
							$rand = 7;
							$higher = 5;
					}

					$str_letters = drunk_letters($rand, $higher);
					$str_replace = drunk_replace($str_letters);
					$str_replaces = drunk_replaces($str_letters);

					$message_words[$ix] = preg_replace($str_replace, $str_replaces, $message_words[$ix]);
				}
			}


		}
		$post_message = implode(' ', $message_words);
	}
Soweit wie ich das verstanden habe, wird in der functions.php NUR geschrieben, was verändert werden soll, der eigentliche Vorgang wird aber durch die functions_post.php ausgeführt, oder?
Deswegen habe ich jetzt einfach den Code der functions_post.php so verändert, dass ich vor dem Codeblock

Code: Alles auswählen

if(in_array($forum_id, array(xxx,xxx)))
{
und danach ein
eingefügt habe. für die "xxx" kann ich jetzt die Foren-IDs eintragen, wo der Beitragstext verändert werden soll und in allen anderen Foren bleibt der Beitrag normal.
Müsste alles passen, oder?

Verfasst: 02.02.2008 17:04
von femu
Ich würde jetzt spontan sagen, daß des gehen müsste. Probier's einfach mal aus. Du machst ja eh ein Backup der Original Datei. Von daher kann eigentlich nichts passieren.

Wenn's geht, sag einfach Bescheid. Dann können eventuelle andere Nutzer dieser Modifikation das entsprechend ergänzen ;-)

Verfasst: 03.02.2008 12:56
von .:Falo:.
Jep, scheint zu klappen! Kann ich weiterempfehlen ;-)

Verfasst: 03.02.2008 13:13
von Ambience
gibts davon auch ne demo? Sieht lustig aus der Mod.

Ambience

Verfasst: 03.02.2008 15:30
von .:Falo:.
Hier ist ein Post aus meinem Forum, wo du den Effekt mal sehen kannst ;-)


Es gibt verschiedene Stufen, je besoffener du bist, desto unleserlicher wird der Text. Im obrigen Post sind glaube ich beide komplett dicht ;-)

Übrigens:
Du musst zuerst den Shop-Mod von Zarath installieren und dann kannst du die Bar als Addon dazu installieren...

Verfasst: 03.02.2008 18:35
von Kalileo
wo gibt es den mod denn zum downloaden, in dem forum hier find ich ihn ned, und auf der von zarath geht dass bei mir irgendwie ned, wenn ich auf download klick öffnet sich die selbe seite auf der ich schon bin nochmal *heul*

Verfasst: 03.02.2008 19:48
von .:Falo:.
Jo stimmt, die Seite ist down... Hab ihn mal auf meinem Webspace hochgeladen:


@ Kalileo: Kann es sein, dass du dich in meinem Forum registriert hast, um das zu testen? Ist ein bisschen blöd, wenn du deine alte Mail-Adresse in eine Erfundene änderst, da man so immer Mails zurückbekommt, dass diese nicht existiert... Wenn du nicht aktiv sein willst, dann kann ich dich auch wieder löschen, sag einfach Bescheid...

Verfasst: 04.02.2008 10:35
von Kalileo
wow... wie hast du das rausgefunden ;)
danke für den link^^ ich werd den mod jez bei mir auch
einbauen, ich find den cool^^

achja noch ne frage: wie kann ich diese .rar datei öffnen?
sonst lad ich die mods immer im .zip .

edit: hat sich erledigt, hab n bisschen gegooglet