ADR

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

ADR

Bericht door Hans Kamp » 22 mar 2004, 21:24

Ik weet dat mensen hier niet zo wild zijn van Advanced Dungeons & Rabbits, maar wie is er mee vertrouwd?

Ik heb op dit moment niet direct een probleem, maar ik wou weten wie het (naast mij) geïnstalleerd hebben, en welke wijzigingen ze daar hebben aangebracht.

Gebruikersavatar
Carlo Claessen
Berichten: 1280
Lid geworden op: 02 jul 2005, 14:05

Bericht door Carlo Claessen » 23 mar 2004, 01:22

ik nog wel, maar ik stap over op zaraths mods, deze is verreweg van status veilig, er zitten nogal wat lekken in maar hij werkt wel rond zaterdag of zondag ga ik de adr versie verwijderen dus roep maar, oh ja, ik heb ook de vertaling liggen dus
''Do not meddle in the affairs of wizards, for they are subtle and quick to anger. '' J.R.R Tolkien

Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

Bericht door Hans Kamp » 23 mar 2004, 07:14

Heb je een voorbeeldforum met die mod?

Gebruikersavatar
Carlo Claessen
Berichten: 1280
Lid geworden op: 02 jul 2005, 14:05

Bericht door Carlo Claessen » 23 mar 2004, 12:22

heb je de link gepbed

wil de site nog voor mezelf houden
''Do not meddle in the affairs of wizards, for they are subtle and quick to anger. '' J.R.R Tolkien

DraGonX
Berichten: 239
Lid geworden op: 22 jan 2004, 19:05

Bericht door DraGonX » 23 mar 2004, 12:27

carloclaessen schreef:heb je de link gepbed

wil de site nog voor mezelf houden
Ik heb de mod ook die H.K. bedoelt maar bij mij wilt ie ook niet goed werken (helaas) :cry:

Gebruikersavatar
Carlo Claessen
Berichten: 1280
Lid geworden op: 02 jul 2005, 14:05

Bericht door Carlo Claessen » 23 mar 2004, 12:52

ook jij hebt de link via pb gekregen
''Do not meddle in the affairs of wizards, for they are subtle and quick to anger. '' J.R.R Tolkien

DraGonX
Berichten: 239
Lid geworden op: 22 jan 2004, 19:05

Bericht door DraGonX » 23 mar 2004, 15:53

Ik heb mij geregistreed maar ik met het nog actieveren dus doe ik vanaaf wel even :thumb:

Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

Bericht door Hans Kamp » 25 mar 2004, 09:58

Ik ben niet helemaal tevreden over de ADR-MOD.

Wat ik veranderd heb is:
- de kosten voor genezen (heal) en herrijzen (resurrect). Dat is afhankelijk van het aantal hitpoints en niet langer van het karakter-level;
- upleveling-systeem. De hoeveelheid experience die je nodig hebt voor een nieuw karakter-level neemt per karakter-level toe. De hoeveelheid experience om van level 1 naar level 2 te gaan is drastisch verlaagd.

Wat ik wil veranderen is:
- er moet een kans zijn, dat verslagen monsters items droppen, varierend van potions, items als armors, helms, gloves, etc.;
- er moet ook een kans zijn, dat verslagen monsters geen geld droppen;
- de items die winkels verkopen moeten bij bezoek gerandomiseerd worden;
- de kans dat de duurzaamheid (durability) van een wapen afneemt, gaat van 100 % (=altijd) naar 5 %, maar de maximum duurzaamheid gaat wel fors omlaag.

DraGonX
Berichten: 239
Lid geworden op: 22 jan 2004, 19:05

Bericht door DraGonX » 25 mar 2004, 12:14

Je bent er 1 vergeten de leden tegen elkaar laten vechten :shock:

En TOP dat je er aan mee werkt !

Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

Bericht door Hans Kamp » 25 mar 2004, 13:24

Ja, daar hebben we het inderdaad over gehad... maar dat vergt wat meer en ingewikkelder programmeerwerk. De tabel phpbb_users moet dan met een waar/onwaar-veld worden uitgebreid, bijv. allows_pvp (PVP = Person Versus Person).

Het vergt ook nog veranderingen in het gebruikersprofiel en in het Administratiepaneel. Ik hoop dat ook voor elkaar te krijgen. De andere zaken die ik heb opgenoemd zijn volgens mij vrij eenvoudig te programmeren. Omdat ik nog niet ervaren ben, vind ik het vrij eng om het Administratiepaneel en het gebruikersprofiel te herprogrammeren. :(

Ik kan wel zeggen welke wijzigingen ik zelf heb toegepast (het voldoet misschien niet aan de werkelijke mod-eisen):

1. Kosten genezen en herrijzen afhankelijk maken van hitpoints (niet van karakterlevel):

Code: Selecteer alles

#
# OPEN
#
adr_temple.php
#
# FIND
#
$heal_price = ceil( $adr_general['temple_heal_cost'] * $adr_char['character_level'] );
$resurrect_price = ceil( $adr_general['temple_resurrect_cost'] * $adr_char['character_level'] );
#
# REPLACE WITH
#
$sql = "SELECT character_hp,
			character_mp, 
			character_hp_max, 
			character_mp_max FROM " . ADR_CHARACTERS_TABLE . " WHERE character_id = $user_id";
if ( !($result=$db->sql_query($sql)))
{
	message_die(GENERAL_ERROR , 'Can not read user database');
}
$info = $db->sql_fetchrow($result);
$hitpoints_to_heal = $info['character_hp_max'] - $info['character_hp'];
$heal_price = ceil($adr_general['temple_heal_cost'] * $hitpoints_to_heal);
$resurrect_price = ceil($adr_general['temple_resurrect_cost'] * $info['character_hp_max']);

2. Progressief leveling-up-systeem

Code: Selecteer alles

#
# OPEN
#
adr/includes/adr_functions_stats.php
#
# FIND
#
function adr_seek_levelup($user_id)
#
# ADD BEFORE
#
// Begin ProgExpReq MOD
function adr_calc($lvl, $base_xp)
{
	return $base_xp * $lvl * ($lvl + 1) / 2;
}

function adr_calc_exp_req($user_id)
{
	global $db;

	$sql = "SELECT cl.class_update_xp_req, c.character_level FROM " . ADR_CHARACTERS_TABLE . " c, " . ADR_CLASSES_TABLE . " cl
		WHERE cl.class_id = c.character_class
		AND c.character_id = $user_id";

	if (!($result = $db->sql_query($sql) ))
	{
		message_die(GENERAL_ERROR, 'Could not check user experience',"", __LINE__, __FILE__, $sql);
	}
	$level = $db->sql_fetchrow($result);
	return adr_calc($level["character_level"], $level["class_update_xp_req"]);
}

// Eind ProgExpReq MOD
#
# FIND
#
	if ( $level['character_xp'] >= $level['class_update_xp_req'] )
	{
		$level_up = TRUE;
	}
#
# REPLACE WITH
#
// Begin ProgExpReq MOD

	$xp_req = adr_calc_exp_req($user_id);

	if ( ($level['character_xp'] >= $xp_req) && ($xp_req > 0))
	{
		$level_up = TRUE;
	}
// Eind ProgExpReq MOD
#
# FIND
#
	if ( ( $level['character_xp'] < $level['class_update_xp_req'] ) && $from == 'character_page' )
	{
		exit;
	}
#
# REPLACE WITH
#
// Begin ProgExpReq MOD
	if ( $level['character_xp'] < adr_calc_exp_req($user_id) && $from == 'character_page' )
	{
		exit;
	}
// End ProgExpReq MOD
#
# FIND
#
	$xp_req = intval($level['class_update_xp_req']);
#
# REPLACE WITH
#
// Begin ProgExpReq MOD
	$xp_req = intval(adr_calc_exp_req($user_id));
// End ProgExpReq MOD

#
# OPEN
#
adr_character.php
#
# FIND
#
	$exp_percent_width = floor(( $row['character_xp'] / $row['class_update_xp_req']) * 300 );
#
# REPLACE WITH
#
// Begin ProgExpReq MOD
	$xp_req = adr_calc_exp_req($searchid);
	if ($xp_req == 0)
		$exp_percent_width = floor(( $row['character_xp'] / $row['class_update_xp_req']) * 300 );
	else
		$exp_percent_width = floor(( $row['character_xp'] / adr_calc_exp_req($searchid)) * 300 );

// Eind ProgExpReq MOD
#
# FIND
#
		'EXP_MAX' => $row['class_update_xp_req'],
#
# REPLACE WITH
#
// Begin ProgExpReq MOD
		'EXP_MAX' => adr_calc_exp_req($searchid),
// Eind ProgExpReq MOD

# SAVE ALL, UPLOAD ALL
Edit: Fout in MOD verwijderd.
Laatst gewijzigd door Hans Kamp op 26 mar 2004, 18:45, 2 keer totaal gewijzigd.

DraGonX
Berichten: 239
Lid geworden op: 22 jan 2004, 19:05

Bericht door DraGonX » 26 mar 2004, 11:17

Thx ik ga in het weekend eff checken !

Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

Bericht door Hans Kamp » 26 mar 2004, 12:07

Het komend weekend zal ik werken aan:
- de kans dat de duurzaamheid (durability) van een wapen afneemt, gaat van 100 % (=altijd) naar 5 %, maar de maximum duurzaamheid gaat wel fors omlaag.
De durability van:
- een wapen gaat alleen omlaag (kans 5%) als een aanval op de tegenstander (monster) door het karakter succes heeft;
- handschoenen, armor, helm, schild, etc. gaat alleen omlaag (kans 5%, wel onafhankelijk van elkaar) als een aanval op het karakter door het monster succes heeft;
- ringen en amuleten gaat alleen omlaag als er sprake is van regeneratie van mana en hitpoints (kans 100%).

Als dat klaar is, kom ik met de volgende MODs.

Ik denk dat dit topic verplaatst moet worden naar phpBB Modifications -> MOD Ontwikkeling.

Misschien dat een moderator dat wil/kan beoordelen...

-----

De durability MOD (waar ik overigens een probleem mee heb):

Code: Selecteer alles

#
# OPEN
#
adr/includes/adr_global.php
#
# FIND
#
function adr_previous( $lang_key , $direct , $nav='' )
#
# ADD BEFORE
#
// Begin BetterDurSys MOD
function adr_chance_to_reduce_dur($item, $user_id)
{
	$dice = rand(0, 99);
	if ($dice < 5)
	{
		adr_use_item($item, $user_id);
	}
}
// End BetterDurSys MOD
#
# OPEN
#
adr_battle.php
#
# FIND
#
		adr_use_item($armor , $user_id);
#
# REMOVE
#

#
# FIND
#
		adr_use_item($buckler , $user_id);
#
# REMOVE
#

#
# FIND
#
		adr_use_item($gloves , $user_id);
#
# REMOVE
#

#
# FIND
#
		adr_use_item($helm , $user_id);
#
# REMOVE
#

#
# FIND
#
		adr_use_item($amulet , $user_id);
#
# REMOVE
#

#
# FIND
#
		adr_use_item($ring , $user_id);
#
# REMOVE
#

#
# FIND
#
			$power = ( $item['item_type_use'] == 6 ) ? ( $item['item_power'] * 3 ) : ( $item['item_power'] * 2 );
#
# ADD AFTER
#
// Begin Better DurSys MOD
//			adr_use_item($weap , $user_id);
// Eind Better DurSys MOD

#
# FIND
#
			$battle_message .= sprintf($lang['Adr_battle_attack_success'] , $damage ).'<br />' ;
#
# ADD AFTER
#
// Begin Better DurSys MOD
			adr_chance_to_reduce_dur($weap, $user_id);
// Eind Better DurSys MOD

#
# FIND
#
			$battle_message .= sprintf($lang['Adr_battle_opponent_attack_success'] , $damage );
#
# ADD AFTER
#
// Begin Better DurSys MOD

// Dit gedeelte werkt niet. De variabelen $armor, $buckler, $helm, $gloves worden niet vastgehouden, alleen aan het begin van het gevecht

//			adr_chance_to_reduce_dur($weap, $user_id);
			echo "Chance to Reduce!";

			$armor = intval($HTTP_POST_VARS['item_armor']);
			$buckler = intval($HTTP_POST_VARS['item_buckler']);
			$helm = intval($HTTP_POST_VARS['item_helm']);
			$gloves = intval($HTTP_POST_VARS['item_gloves']);
			
			adr_chance_to_reduce_dur($armor, $user_id);
			adr_chance_to_reduce_dur($buckler, $user_id);
			adr_chance_to_reduce_dur($gloves, $user_id);
			adr_chance_to_reduce_dur($helm, $user_id);
// Eind Better DurSys MOD
Misschien dat er iemand mij kan helpen met het bovenstaande probleem.

-----

Kans op geen geld MOD

Code: Selecteer alles

#
# OPEN
#
adr_battle.php
#
# FIND
#
		$reward = rand ( $adr_general['battle_base_reward_min'] , $adr_general['battle_base_reward_max'] );
		if (( $monster['monster_level'] - $challenger['character_level'] ) > 1 )
		{
			$reward = floor( ( ( $monster['monster_level'] - $challenger['character_level'] ) * $adr_general['battle_base_reward_modifier'] ) / 100 );
		}
#
# ADD BEFORE
#
// Begin NoMoney MOD
		if (rand(0, 99) < 40)
			$nomoney = 1;
// End NoMoney MOD
#
# REPLACE (fragment after previous FIND) WITH
#
// Begin NoMoney MOD

		// Get the money earned
		if ($nomoney)
			$reward = 0;
		else
		{

			$reward = rand ( $adr_general['battle_base_reward_min'] , $adr_general['battle_base_reward_max'] );
			if (( $monster['monster_level'] - $challenger['character_level'] ) > 1 )
			{
				$reward = floor( ( ( $monster['monster_level'] - $challenger['character_level'] ) * $adr_general['battle_base_reward_modifier'] ) / 100 );
			}
		}
// End NoMoney MOD

#
# FIND
#
		$message = sprintf($lang['Adr_battle_won'] , $exp , $reward , $board_config['points_name'] );
#
# REPLACE WITH
#
// Begin NoMoney MOD
		if ($nomoney)
			$message = sprintf($lang['Adr_battle_won_exp_only'], $exp, $board_config['points_name'] );
		else
			$message = sprintf($lang['Adr_battle_won'] , $exp , $reward , $board_config['points_name'] );
// End NoMoney MOD
#
# OPEN
#
adr/language/lang_english/lang_adr.php
#
# FIND
#
	$lang['Adr_battle_won']='Je wint het gevecht! Je verdient %s experience en %s %s';
#
# ADD AFTER
#
// Begin NoMoney MOD
	$lang['Adr_battle_won_exp_only']='Je wint het gevecht! Je verdient %s experience, maar geen %s';
// End NoMoney MOD
# SAVE ALL, UPLOAD ALL
-----

Herberekening kans om te raken:

Code: Selecteer alles

#
# SQL
#
ALTER TABLE `phpbb_adr_battle_list` ADD `battle_challenger_level` INT NOT NULL AFTER `battle_challenger_id` ;
ALTER TABLE `phpbb_adr_battle_list` ADD `battle_opponent_level` INT NOT NULL AFTER `battle_opponent_id` ;

#
# FIND
#
	$sql = "INSERT INTO " . ADR_BATTLE_LIST_TABLE . " 
		( battle_type , battle_turn ,  battle_result , battle_text , battle_challenger_id , battle_challenger_hp , battle_challenger_mp , battle_challenger_att , battle_challenger_def , battle_opponent_id , battle_opponent_hp , battle_opponent_mp , battle_opponent_att , battle_opponent_def )
		VALUES ( 1 , $turn , 0 , '' , $user_id , $hp , $mp , $att , $def , $monster_id , $monster_base_hp , 0 , $monster_base_att , $monster_base_def )";
#
# REPLACE WITH
#
// Begin ChanceToHit MOD
	$sql = "INSERT INTO " . ADR_BATTLE_LIST_TABLE . " 
		( battle_type , battle_turn ,  battle_result , battle_text , battle_challenger_id , battle_challenger_hp , battle_challenger_mp , battle_challenger_att , battle_challenger_def , battle_opponent_id , battle_opponent_hp , battle_opponent_mp , battle_opponent_att , battle_opponent_def, battle_challenger_level, battle_opponent_level )
		VALUES ( 1 , $turn , 0 , '' , $user_id , $hp , $mp , $att , $def , $monster_id , $monster_base_hp , 0 , $monster_base_att , $monster_base_def, $level, $monster_level )";
// Eind ChanceToHit MOD
#
# FIND first occurrence of
		if ( (( ( $diff + $dice ) > 10 ) && $dice != 0 ) || $dice == 20 )
# REPLACE WITH
// Begin ChanceToHit MOD
		$char_ar = $bat['battle_challenger_att'];
		$char_def = $bat['battle_challenger_def'];
		$char_level = $bat['battle_challenger_level'];

		$monster_ar = $bat['battle_opponent_att'];
		$monster_def = $bat['battle_opponent_def'];
		$monster_level = $bat['battle_opponent_level'];

		$chance = adr_chance_to_hit($char_ar, $char_def, $char_level, $monster_ar, $monster_def, $monster_level);
		if (rand(0, 99) < $chance)
// Eind ChanceToHit MOD

#
# FIND second occurence of
		if ( (( ( $diff + $dice ) > 10 ) && $dice != 0 ) || $dice == 20 )
#
# REPLACE WITH
#
// Begin ChanceToHit MOD
		$char_ar = $bat['battle_challenger_att'];
		$char_def = $bat['battle_challenger_def'];
		$char_level = $bat['battle_challenger_level'];

		$monster_ar = $bat['battle_opponent_att'];
		$monster_def = $bat['battle_opponent_def'];
		$monster_level = $bat['battle_opponent_level'];

		$chance = adr_chance_to_hit($monster_ar, $monster_def, $monster_level, $char_ar, $char_def, $char_level);
		if (rand(0, 99) < $chance)
// Eind ChanceToHit MOD
#
# OPEN
#
adr/includes/adr_global.php
#
# FIND
#
// The following functions are used on every page of the mod , so they are always defined
#
# AFTER, ADD
#
// Begin ChanceToHit MOD
function adr_chance_to_hit($att_ar, $att_def, $att_lvl, $def_ar, $def_def, $def_lvl)
{
	$res = 100 * ($att_ar / ($att_ar + $def_def)) * 2 * ($att_lvl / ($att_lvl + $def_lvl));

	if ($res < 5)
		$res = 5;
	if ($res > 95)
		$res = 95;

	return $res;
}
// Eind ChanceToHit MOD
De aanvals- en verdedigingskracht van monsters moeten worden aangepast.

Gebruikersavatar
Nick V
Berichten: 774
Lid geworden op: 18 okt 2003, 00:41
Locatie: Niet Nu!
Contacteer:

Bericht door Nick V » 28 mar 2004, 20:44

heeft iemand misschien een nederlandse vertaling voor me liggen ik heb deze mod ookal een tijdje amar sommige dingen weet ik echt niet hoe ik ze in ut neds moet doen, ben ook blij dat amper iemand van deze mod gehoord heeft *fluistert* :bier:

Gebruikersavatar
V!ncent
Berichten: 1138
Lid geworden op: 03 apr 2003, 20:08
Locatie: 127.0.0.1
Contacteer:

Bericht door V!ncent » 28 mar 2004, 20:48

ik vind het wel leuk dat je dit doet :) maar deze mod is toch alleen nog maar in beta te verkrijgen :)

DraGonX
Berichten: 239
Lid geworden op: 22 jan 2004, 19:05

Bericht door DraGonX » 29 mar 2004, 12:49

Pc 4 live schreef:ik vind het wel leuk dat je dit doet :) maar deze mod is toch alleen nog maar in beta te verkrijgen :)
Ja helaas wel :cry:

Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

Bericht door Hans Kamp » 29 mar 2004, 15:04

Ik neem aan dat jullie het over de originele ADR mod hebben, en niet over de modjes die ik hierboven gaf?

Gebruikersavatar
V!ncent
Berichten: 1138
Lid geworden op: 03 apr 2003, 20:08
Locatie: 127.0.0.1
Contacteer:

Bericht door V!ncent » 29 mar 2004, 15:41

jah :) en hoever staat het met je mod? echt ik denk wel dat het vet strak zal worden als gebruikers tegen elkaar kunnen vechten ;) :P

Gebruikersavatar
Nick V
Berichten: 774
Lid geworden op: 18 okt 2003, 00:41
Locatie: Niet Nu!
Contacteer:

Bericht door Nick V » 29 mar 2004, 19:18

ja ech wel 8) alleen ik ga wel de ''steal'' functie uitzetten anders is het in 1 uurtje saai :?

Gebruikersavatar
Nick V
Berichten: 774
Lid geworden op: 18 okt 2003, 00:41
Locatie: Niet Nu!
Contacteer:

Bericht door Nick V » 29 mar 2004, 19:18

ja ech wel 8) alleen ik ga wel de ''steal'' functie uitzetten anders is het in 1 uurtje saai :?

Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

Bericht door Hans Kamp » 30 mar 2004, 07:54

Pc 4 live schreef:jah :) en hoever staat het met je mod? echt ik denk wel dat het vet strak zal worden als gebruikers tegen elkaar kunnen vechten ;) :P
Ik vrees dat ik wat meer ervaring moet hebben in het programmeren van MODs. Ik weet bijvoorbeeld niet goed hoe je een Administratiepaneel en een profielpaneel wijzigt. De gebruiker die aangevallen wordt, moet toestemming geven. Ik denk dat er een tweede vereiste moet zijn: de gebruiker moet zijn ingelogd.

Ten tweede heb ik nog een probleem met de durability van verdedigingsitems (helm, harnas, handschoenen, schild, etc.) Waarschijnlijk ligt de oplossing in de uitbreiding van de battle-tabel (waarin ik het karakterlevel en het monsterlevel heb opgeslagen).

Het eerstvolgende dat ik waarschijnlijk implementeer is het droppen van goedkope items door monsters, en het kopen en vinden van items die tijdelijk je karaktereigenschappen en -vaardigheden veranderen.

Gesloten