anpera.net
http://anpera.homeip.net/phpbb3/

Eine Frage zu Modulen
http://anpera.homeip.net/phpbb3/viewtopic.php?f=53&t=2771
Seite 1 von 1

Autor:  Montekar [ Do 17 Aug, 2006 13:51 ]
Betreff des Beitrags:  Eine Frage zu Modulen

Ja hallo erstmal :)
ich habe eine kleine Frage: Wie kann man ein Modul 'dazu bringen', das bei jedem neuen Tag eine Variable (bzw. ein Teil eines Arrays) auf 0 gesetzt wird? Ich habe es so probiert, aber das ging leider nicht:

[php]
function xxx_dohook($hookname, $args){
if ($hookname=="newday") {
$session['user']['beispiel']=0;
}
return $args;
}
[/php]

Autor:  Morpheus [ Do 17 Aug, 2006 14:08 ]
Betreff des Beitrags: 

Aus einem meiner Module:

$this->bbcode_second_pass_code('', ' "prefs"=>array(
...
"wielangnoch"=>"Wie lange wirkt der freiwillige Aderlass noch?,int|0",
...
switch($hookname){
...
case ("newday"):
$wln=get_module_pref("wielangnoch");
if ($wln>1) {
$wielangnoch--;
set_module_pref("wielangnoch",$wln);
output("`n`6Du spuerst noch immer die wohltuende Wirkung des Aderlasses.`n");
$session['user']['hitpoints']*=1.1;
} elseif (get_module_pref("wielangnoch")==1) {
set_module_pref("wielangnoch",0);
output("`n`6Die Wirkung des Aderlasses hoert auf.`n");
}')

Autor:  Montekar [ Do 17 Aug, 2006 14:31 ]
Betreff des Beitrags: 

vielen dank :)

Autor:  Montekar [ Do 17 Aug, 2006 16:23 ]
Betreff des Beitrags: 

Ach ja ich hätte noch eine Frage...
Ich brauche für ein Modul etwas, damit beim kämpfen ab und zu etwas gefunden wird, wie Edelsteine ungefähr... Kann mir da auch jemand helfen? :)

Autor:  Eliwood [ Do 17 Aug, 2006 16:26 ]
Betreff des Beitrags: 

@ Erster Post: Naja. Weisst du, warum es nicht geht/ging?
Die Variable "$session" muss erst global gemacht werden... :P
(global $session;)

Autor:  Montekar [ Do 17 Aug, 2006 16:54 ]
Betreff des Beitrags: 

Ach so ja stimmt :D
Hätt ich mir eigentlich auch denken können...
:bash: ^^

Autor:  Montekar [ Do 17 Aug, 2006 20:18 ]
Betreff des Beitrags: 

Weiss auch noch jemand das zweite? :)

Offtopic: Cooles Bild Eliwood ;)

Autor:  Eliwood [ Do 17 Aug, 2006 20:25 ]
Betreff des Beitrags: 

Du könntest dich in den hook "alter-gemchance" einhaken... Da 0 zurück geben und selbst was überweisen.

// Das ist Roy - Sohn von Eliwoood =P

Autor:  Morpheus [ Do 17 Aug, 2006 21:18 ]
Betreff des Beitrags: 

Also die Frage verstehe ich wahrlich nicht...mach es doch ganz konventionell, z.B. so...

$this->bbcode_second_pass_code('', ' if ($battle){
include_once("battle.php");

if ($victory){
output("`2Es war ein harter Kampf, aber Du hast ihn gewonnen.`n`n",);
output("`2Du richtest Deine Rüstung wieder her ");
switch(e_rand(1,8)){
case 1:
case 2:
case 3:
case 4:
output("`3 und ziehst weiter.`n`n",);
addnav("Weiter","xy.php?op=z");
break;
case 5:
case 6:
output("`3 und als Du grade weiter ziehen willst, siehst Du etwas unter dem Körper von XXX liegen. Du siehst nach und findest ???`n`n",);
addnav("Weiter","xy.php?op=z");
break;
case 7:
output("`3 und als Du grade weiter ziehen willst, siehst Du etwas unter dem Körper von XXX liegen. Du siehst nach und findest ???`n`n",);
addnav("Weiter","xy.php?op=z");
break;
case 8:
output("`3 und als Du grade weiter ziehen willst, siehst Du etwas unter dem Körper von XXX liegen. Du siehst nach und findest ???`n`n",);
addnav("Weiter","xy.php?op=z");
break;
}')

Autor:  Montekar [ Fr 18 Aug, 2006 07:44 ]
Betreff des Beitrags: 

Ich meine beim ganz normalen kämpfen im Wald, das man halt wie Edelsteine etwas finden kann...
:???:

Autor:  Montekar [ Fr 18 Aug, 2006 14:40 ]
Betreff des Beitrags: 

:cry: :cry: :cry:
Bitte brauche dringend Hilfe weiss keiner wie das geht oder sagts nur keiner?
:(

Autor:  Eliwood [ Fr 18 Aug, 2006 14:43 ]
Betreff des Beitrags: 

1. Auch wir haben Freizeit oder müssen arbeiten? oO
2. Hast du meinen Beitrag überhaupt gelesen? ^^

Zitat:
Du könntest dich in den hook "alter-gemchance" einhaken... Da 0 zurück geben und selbst was überweisen.

Autor:  Montekar [ Fr 18 Aug, 2006 16:47 ]
Betreff des Beitrags: 

Ja aber das versteh ich nicht :(

Autor:  Eliwood [ Fr 18 Aug, 2006 21:42 ]
Betreff des Beitrags: 

Montekar hat geschrieben:
Ja aber das versteh ich nicht :(


oO

Ich muss mir nun echt wieder mal son Modul anschauen, um dir das vorzuwerfen? oO
Na gut.

[php]
// Für die Funktion _install()
module_addhook("alter-gemchance");

// Für die Funktion _dohook()
if($hookname === 'alter-gemchance') {
if(mt_rand(0,10) > 3) {
// Deine anderen Findendinger und sonstiger Code

$args['chance'] = 0; // Darf anschliessend keinen Edelstein finden
return $args;
}
else return $args;
}[/php]

Einfach anpassen. Das kannst du so nicht übernehmen ;)

Autor:  Montekar [ So 17 Sep, 2006 11:08 ]
Betreff des Beitrags: 

Hmmm... Also entweder bin ich zu blöd oder es geht nicht...
(Warscheinlich eher das erste ^^)

Ah ich hab ne Idee:

An welcher Stelle (und in welchem Script) wird denn das hier ausgegeben?

You receive 153 gold!
You receive 33 total experience!

Dann könnte man das doch eigentlich von Hand öffnen und dahinter was einfügen, oder?

Autor:  Eliwood [ So 17 Sep, 2006 13:31 ]
Betreff des Beitrags: 

Montekar hat geschrieben:
Dann könnte man das doch eigentlich von Hand öffnen und dahinter was einfügen, oder?


... Und beim nächsten Update ist dann alles wieder weg...
Warum meinst du, gibt es diese Module?? Um genau diesen Ansatz für eine Problemlösung auszulöschen.
Du musst dich mit einem Modul an den entsprechenden Stellen einhacken. Anders gelöst wäre es Schwachsinn.

Autor:  Montekar [ So 17 Sep, 2006 18:33 ]
Betreff des Beitrags: 

Ja aber dann würde es wenigstens überhaupt gehen...
*Module sehr kompliziert find*

Autor:  XChrisX [ So 17 Sep, 2006 20:26 ]
Betreff des Beitrags: 

Ohne jetzt groß auf die Vor- und Nachteile einer modulbasierten Engine eingehen zu wollen:

Nimm einfach ein Modul, dass sich in "battle-victory" einhookt. An der Stelle in der dohook kannst du dann einfach hinzufügen, was du willst und alles ist gut. :)
[php]<?php

function findloot_getmoduleinfo(){
$info = array(
"name"=>"Find Loot",
"author"=>"Christian Rutsch",
"version"=>"1.00",
"category"=>"SomeFunnyStuff",
);
return $info;
}
function findloot_install(){
module_addhook("battle-victory");
return true;
}
function findloot_uninstall(){
return true;
}
function findloot_dohook($hookname,$args){
global $session;
$chance = e_rand(1,100);
if ($chance > 90) {
$session['user']['gold'] += 1000;
output("`2Bei deinem Glück findest du in den Taschen von `^%s`2 noch `^1000 Goldstücke`2.", $args['creaturename']);
}
return $args;
}

?>[/php]

(Da das Modul nur einen einzigen Hook verwendet, erübrigt sich im Übrigen auch die Überprüfung während der dohook-Funktion, welcher hook grade läuft...)

Bei einem echten Modul sollten natürlich die Chance und der Wert per setting anpassbar sein. (Und sicherlich auch levelabhängig...)

Autor:  Nightborn [ Mo 18 Sep, 2006 08:56 ]
Betreff des Beitrags: 

Das wäre ein Modul mit Erklärungen, wer mehr wissen will

http://wiki.dragonprime.net/index.php?t ... ple_Module

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/