Seite 1 von 5

[BETA][dt./engl. RPG-MOD incl. Battle]

Verfasst: 15.06.2003 15:28
von doctormord
hi,

anbei mal die erste beta des rpgmod.
er wurde ursprünglich in taiwan geschrieben von www.watermonster.org
und dann ins englische übersetzt. allerdings von jemandem, der eigentlich auch nur chinesisch spricht. nach langer suche habe ich diesen mod gefunden. englischen support gibt es meines erachtens nicht mehr.

ich habe versucht, mit snoopmores :D hilfe das teil ins deutsche zu übersetzen, was aber noch nicht vollständig abgeschlossen ist und ihn "einbaubar" zu machen.

die originalversion war aufs chinesische phpbb abgestimmt, sodass er in europäischen mods probleme gemacht hätte. die englische version war nur als premodded phpbb verfügbar, somit musste das teil erstmal komplett auseinandergenommen werden.

es wird sich sicher der ein oder andere bug finden, ich habe das teil in meinem phpbb 2.0.4 getestet und es läuft soweit.

die gröbsten schnitzer, wie falsche sql-queries, tabellen, funktionen, etc. sollten behoben sein, so hoffe ich. die fehler lagen im detail.

zur funktion dieses mods ist es erforderlich, dass ihr den points-mod installiert habt.

Installation:

Code: Alles auswählen

#########################################################################################
# 1. in phpmyadmin rpg1.sql & rpg2.sql ausführen                                        #
#########################################################################################

######################################################################################### 
# 2. kopiere dateien                                                                    #
#                                                                                       #
# /rpg.php      -> /rpg.php                                                             #
# /rpg/*        -> /rpg/*                                                               #
# /images/rpg/* -> /images/rpg                                                          #
# /templates/SubSilver/* -> /templates/SubSilver/*                                      #
######################################################################################### 

#########################################################################################
# 3. Öffne /includes/constants.php                                                      #
#########################################################################################

###################
## Suche nach:
###################

define('PAGE_GROUPCP', -11);

###################
## Danach einfügen:
###################

define('PAGE_RPG', -99);
	
#########################################################################################
# 4. Öffne /viewtopic.php                                                               #
#########################################################################################

###################
## Suche nach:
###################

//
// Define the little post icon
//

###################
## Davor einfügen:
###################

if ($postrow[$i]['user_robfail'] > 0)
{
$poster_avatar .= '<br>';
$robid = floor(($postrow[$i]['user_robfail'] - 1) / 4);
$robcnt = (($postrow[$i]['user_robfail'] - 1) % 4) + 1;
if ($robid <= 7)
{
for ($j=0; $j < $robcnt; $j++)
{
$poster_avatar .= '<img src="images/rpg/rob' . $robid . '.gif" />';
}
}
else
{
$poster_avatar .= '<center><img src="images/rpg/rob7.gif" />¡Ñ ' . ($postrow[$i]['user_robfail'] - 28) . '</center>';
}
$poster_avatar .= '<br><span class="smalltext">Als Räuber habe ich versagt</span>'; 
} 
	
	
###################
## Suche nach:
###################

	//
	// Again this will be handled by the templating
	// code at some point
	//

###################
## Davor einfügen:
###################


$rpgstatus = '<table width="142" class="" border="0" cellpadding="0" cellspacing="0">' .
'<tr><td width="35%"><span class="gensmall"> TITLE: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_medals'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> LVL: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_level'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> H P: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_cur_hp'] . ' / ' . $postrow[$i]['rpg_max_hp'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> M P: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_cur_mp'] . ' / ' . $postrow[$i]['rpg_max_mp'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> EXP: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_cur_exp'] . ' / ' . $postrow[$i]['rpg_max_exp'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> ATTACK: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_attack'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> DEFENSE: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_defense'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> MAGIC: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_magic'] . '</span></td></tr>' . 
'<tr><td><span class="gensmall"> SPEED: </span></td><td><span class="gensmall">' . $postrow[$i]['rpg_speed'] . '</span></td></tr></table>';

###################
## Suche nach:
###################

'POSTER_AVATAR' => $poster_avatar,

###################
## Danach einfügen:
###################

'POSTER_RPG' => $rpgstatus,
	


#########################################################################################
#  5. /templates/subSilver/viewtopic_body.tpl
#########################################################################################


###################
## Suche nach:
###################

<!-- BEGIN postrow -->
<tr>

################################
## Direkt darunter suche nach:
################################

{postrow.POSTER_FROM}

################################
## Direkt dahinter "Inline" einfügen:
################################

	<br />{postrow.POSTER_RPG}

#########################################################################################
#  6. /includes/functions_post.php
#########################################################################################

###################
## Suche nach:
###################

if (!defined('IN_PHPBB'))
{
	die('Hacking attempt');
}

###################
## Davor einfügen:
###################

include($phpbb_root_path . 'rpg/function_rpg.'.$phpEx);

###################
## Suche nach:
###################

	if ($mode != 'poll_delete')
	{
		$sql = "UPDATE " . USERS_TABLE . "
			SET user_posts = user_posts $sign 
			WHERE user_id = $user_id";
		if (!$db->sql_query($sql, END_TRANSACTION))
		{
			message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
		}

###################
## Ersetzen mit:
###################

	if ($mode != 'poll_delete')
	{

	// RPG_EXP_MOD START
		if( $mode == "newtopic" ) 
			{$reward_sql =  ",rpg_cur_exp = rpg_cur_exp + 3
			,rpg_cur_hp = rpg_cur_hp+floor( pow( log10( rpg_max_hp), 3 ) )
			,rpg_cur_mp=rpg_cur_mp+floor(pow(log10(rpg_max_mp),3))";} 
		if( $mode == "reply" ) 
			{$reward_sql = ",rpg_cur_exp = rpg_cur_exp + 2
			,rpg_cur_hp = rpg_cur_hp+floor( pow( log10( rpg_max_hp), 3 ) )
			,rpg_cur_mp = rpg_cur_mp+floor( pow( log10( rpg_max_mp), 3 ) )";} 
		if($mode=="delete")
			{$reward_sql=",user_points=user_points-100,rpg_cur_exp = rpg_cur_exp - 5";}
			$sql = "UPDATE " . USERS_TABLE . "
			SET user_posts = user_posts $sign $reward_sql 
			WHERE user_id = $user_id";
		if (!$db->sql_query($sql, END_TRANSACTION))
		{
			message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
		}
		$sql = "SELECT rpg_cur_exp, rpg_max_exp FROM " . USERS_TABLE . " WHERE user_id = $user_id"; 
			if ( !($result = $db->sql_query($sql)) ) 
			{ 
				message_die(GENERAL_ERROR, 'Error in RPG-Exp Upgrade!', '', __LINE__, __FILE__, $sql); 
			} 
		if ( $row = $db->sql_fetchrow($result) ) 
			{ 
				if ($row['rpg_cur_exp'] >= $row['rpg_max_exp']) 
				{ 
					$sql = 'UPDATE phpbb_users 
					SET rpg_level = rpg_level + 1, 
					rpg_attack=rpg_attack+1,
					rpg_defense=rpg_defense+1,
					rpg_magic=rpg_magic+1,
					rpg_speed=rpg_speed+1,
					rpg_cur_exp = rpg_cur_exp - rpg_max_exp, 
					rpg_max_exp = FLOOR( POW( 10, POW( rpg_level, (1/3) ) ) ) - FLOOR( POW( 10, POW( rpg_level - 1, (1/3) ) ) ), 
					rpg_max_hp = FLOOR( (POW( rpg_level, (1/4) ) ) * (POW( 10, POW( rpg_level + 2, (1/3) ) ) ) / (1.5 ) ),
					rpg_max_mp = FLOOR( (POW( rpg_level, (1/4) ) ) * (POW( 10, POW( rpg_level + 2, (1/3) ) ) ) / (PI()) )
        
					WHERE user_id = ' . $user_id; 
						if ( !($result = $db->sql_query($sql)) ) 
							{ 
								message_die(GENERAL_ERROR, 'µLªk§ó·sº©¹C°ÏÄÝ©Ê!!', '', __LINE__, __FILE__, $sql); 
							} 
						UpdateRPGProperties($user_id); 
				} 
			} 
	// RPG_EXP_MOD END


################################
## Das wars =D
################################

RPG-MOD Packet gibts hier

Eine etwas frühere Version des Mods, könnt ihr hier testen:

http://doc.wanken.de/premod/ | user: test/test

viel spass damit. und nicht glich schlagen, wenns nicht auf anhieb will :grin:

cheers

doc

edit:

noch 3 screenshots dazu:

[ externes Bild ]

[ externes Bild ]

[ externes Bild ]

Verfasst: 16.06.2003 23:23
von wraith
Die Testseite ist nicht erreichbar...
(404)

Cya wraith

Verfasst: 16.06.2003 23:40
von chris478
Find ich Super...allerdings muss man noch selbst viele Änderungen machen, die jedoch nicht allzu schwer sind.
Außerdem hast du noch ein paar Fehler im Posting Und noch ein paar Sachen die man beachten sollte:
  • Wenn man ein anders Prefix als phpbb_ nutzt, muss man das bei den ganzen Dateien im Ordner 'rpg' ändern
  • Es steht in deiner Anleitung kein Link für den overall_header
  • Das RPG funktioniert nur bei Users die Cookies nutzen. Bei Usern mit SessionID gehts nicht, weil die ID nicht übergeben wird
  • Hab ich das falsch eingebaut oder warum wird bei mir immer im Bild vom Schlachtfeld 'i@' angezeigt. Naja nachdem ichs auch 'eol.php' entfernt hab, wars auch am Schlachtfeld weg
P.S.: Wie kann man eigentlich -81 HP haben ??? :D Soviel hab nämlich ich gerade

Verfasst: 17.06.2003 10:35
von DeDonatis
ich habs eingebaut, aber es funzt net.

wenn ich die rpg.php aufrufe, komme ich wieder auf die index.php.

hab alles so eingebaut, wie es in der anleitung stand.

Verfasst: 17.06.2003 10:53
von DeDonatis
des weiteren stelle ich grad fest:

wenn ich in der config vom forum die cookies aktiviere kann ich mich weder ein noch ausloggen. "seite kann nicht angezeigt werden".

mache ich in der DB die cookies wieder raus, gehts wieder !?!?!?!?

Verfasst: 17.06.2003 11:01
von DeDonatis
chris478 hat geschrieben:Hab ich das falsch eingebaut oder warum wird bei mir immer im Bild vom Schlachtfeld 'i@' angezeigt. Naja nachdem ichs auch 'eol.php' entfernt hab, wars auch am Schlachtfeld weg
ehm...ich hab auch das i@ und bekomme es net weg.
was hast du genau gemacht !????

Verfasst: 17.06.2003 11:36
von doctormord
so mal ein paar fehler beseitigen =D...

zwecks dem "¡@"

eol.php öffen, suchen nach:

Code: Alles auswählen

$map_data .= '>¡@</td>';
ersetzen mit:

Code: Alles auswählen

$map_data .= '> </td>';
zwecks dem link in der overall_header.tpl

aufgerufen wird es wie folgt:

Code: Alles auswählen

http://www.deine_url.de/deinforum/rpg.php?action=menu
zwecks dem "falschen" image-pfad"
bei mir ist alles in /images/rpg
/images/rpg/ <-- eol.gif, rob0 - 7.gif
/images/rpg/eol
/images/rpg/eol/npc
/images/rpg/items

Verfasst: 17.06.2003 13:01
von chris478
Das einzige was jetzt noch fehlt ist ein FAQ. Hast du da vielleicht eins enddeckt? Die Sprache wär ja egal wegen systranbox.com :D

Verfasst: 17.06.2003 13:32
von fussle
uhaa ;) das ist ja der hammer, steht schon fest, wann der MOD "serienreif" ist ?

Verfasst: 17.06.2003 13:40
von doctormord
hmm. ein faq.. gute frage. =D

systran übersetzt zwar chinesisch/traditionell/vereinfacht allerdings killt er meist jeden sinn raus.

und die englischen übersetzungen in diesem mod, sind bisweilen auch ein wenig unlogisch und sogar fehlerhaft.

selbst einige amis die ich kenne, tun sich damit schwer. =D