Würfelmod

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
MalkContent
Mitglied
Beiträge: 40
Registriert: 18.08.2008 00:59

Würfelmod

Beitrag von MalkContent »

hallo, ich bin auf der Suche nach einem Mod, mit dem man Würfelwürfe mit einer beliebigen Anzahl beliebig seitiger Würfel ausführen, das Ergebnis in der für den User unantastbaren in Datenbank ablegen das ganze dann mit Grafiken (ala Smileys) verknüpfen kann

gibt es soetwas schon für phpBB?

vielen Dank im Voraus

Edit:
Ich kenn das von hier: www.blutschwerter.de
Ist dort über [dice=Würfelseiten]Würfelanzahl[/dice] (vllt wars auch umgekehrt) zugänglich, das Ergebnis, was bei Post abgespeichert wird, ist dann über [dice0], [dice1], [dice2] etc. zugänglich, d.h. [dice{N-ter Würfelwurf im Post}] wird mit dem Post verknüpft und das ergebnis wird, wie gesagt, durch die Würfelgrafiken ein bisschen hübscher dargestellt.
Ich wäre sehr dankbar, wenn jemand das kennt oder sogar coden kann.
Wenn man in der Sprache drin ist, ist das ganze glaube ich nicht übertrieben schwierig, hab aber atm nicht die Nerven schon wieder ne neue Sprache zu lernen x)
Aber wenn das jemand coded, seh ich zu, dass ich ein paar schnieke Würfel render, versprochen :)
Zuletzt geändert von MalkContent am 18.08.2008 11:54, insgesamt 1-mal geändert.
Dunstkreis
Mitglied
Beiträge: 11
Registriert: 15.08.2008 13:36

Beitrag von Dunstkreis »

Hört sich interessant an.
Im coden bin ich nicht grad ne Niete, allerdings kenn ich mich im phpBB Code noch nich sooo gut aus...

Wenn hier jemand auch Interesse an sowas hat, ich würd gerne mithelfen!
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Ein Würfel MOD ( als BBCode ) steht schon in den Startlöschern... ist aber noch nicht veröffentlicht:

Dice Roller/Random Number Generator
Benutzeravatar
MalkContent
Mitglied
Beiträge: 40
Registriert: 18.08.2008 00:59

Beitrag von MalkContent »

danke für den Hinweis, ich hab mich mal mit dem Herrn Coder kurzgeschlossen :)
wenn alles gut geht, gibts bald nen schnieken Würfelmod mit schnieken Würfeln ^^
Thaelisin
Mitglied
Beiträge: 55
Registriert: 15.11.2008 18:52

Beitrag von Thaelisin »

Also ich bin auch auf der suche nach einem Würfelmod, der am besten alle Würfel beherrscht (also manuell wählbar mit was für vielseitigen würfeln man wirft). Aber falls es nur einen fpr d6 und d20 gibt wäre mir schon sehr geholfen.
Und wenn ich grade dabei bin. Gibts einen MOD der, wenn man in einem thread schreibt, die Funktion "Meisterinformationen oder sowas anzeigt. So das wenn man im thread dann liest und man dann erst im text auf das Feld klicken muss um die "Meisterinfos" zu sehen?
Ascaron55
Mitglied
Beiträge: 30
Registriert: 18.10.2008 20:57
Wohnort: Springen
Kontaktdaten:

Beitrag von Ascaron55 »

Meinst du sowas wie einen Spoiler?
http://ascaron.grafnetz.de/viewtopic.ph ... 3&p=17#p17
Dass du dann auf " [...] Anzeigen" klicken musst, um den Text zu sehen?
MfG

Ascaron
Benutzeravatar
MalkContent
Mitglied
Beiträge: 40
Registriert: 18.08.2008 00:59

Re: Würfelmod

Beitrag von MalkContent »

Ich reanimier diesen Thread mal, weil die Entwicklung des Dice Mod auf phpbb.com seit über einem halben Jahr nicht wirklich voran kommt

Ich bin selber was das programmieren/strukturieren angeht recht bewandert, was Webapplikationen, Protokolle und Datenbanken angeht allerdings noch relativ unerfahren (Basiskenntnisse).

Ich habe ein Konzept für ein Würfelmod, bin aber nicht im Stande dieses zu verwirklichen, weil mir die Kenntnisse fehlen und würde mich freuen, wenn jemand es für mich machen könnte, bzw. es mir sogar beibringen könnte.

Der Mod soll beim Posten eine Eingabe von [dice]{x}W{y}[/dice] ODER [dice={x}]{y}[/dice] erkennen, je nachdem was einfacher ist. (Die Variante ohne W würde den Code sogar von vorn herein international halten)
Dann sollen x-Mal random von 1 bis y in einen Array der Länge X abgespeichert werden.
Dieser Array soll in die Datenbank abgespeichert werden und dort mit der Adresse des Posts versehen werden, ebenso mit einem Index, der angibt um den wievielte Würfelwürf in diesem Post es sich handelt.
Dann soll der tatsächlich gepostete BBCode von [dice]{x}W[y}[/dice] in [dice]{z}[/dice] oder von [dice={x}]{y}[/dice] in [dice={z}][/dice] umgewandelt werden.
z entspricht dabei der Nummer des Würfelwurfs.
Der gespeicherte Array könnte dann evtl so aussehen, dass die nullte Stelle = z, die erste Stelle = x und die zweite Stelle = y ist und erst die nachfolgenden Stellen die erwürfelten Zahlen enthalten.

Der Code [dice]{z}[/dice] oder [dice={z}][/dice] gibt dann wünschenswerter Weise folgendes wieder:

Würfelwurf{z} mit {x}W{y}:
x(0),x(1),x(2),...,x(n-1)

(z würde für die Wiedergabe nicht aus dem Array gelesen, sondern aus dem BBCode, ist aber nicht so wichtig [vermutl. ist das hier in Klammern eh missverständlich, wenn dem so ist, einfach ignorieren ^^])

Wenn es keinen Würfelwurf mit Index Z gibt, wird einfach der BBCode ausgeschrieben (oder in der Luxusvariante ein Fehler angezeigt).

Abgesehen davon ist nur noch kritisch, dass beim Löschen eines Posts, egal über welches Menü etc., auch die zugehörigen Würfelwürfe aus der Datenbank gelöscht werden!

Alles weitere wäre nur noch Design-Sache. Z.B. wäre es gut, wenn:
- nur real existierende Würfel möglich wären ->y darf nur 2 (Münze), 4, 6, 8, 10, 12, 20 sein; das würde auch bedeuten, dass man die Zahlenform, die in den Arrays gespeichert wird auf low-Integer o.Ä. setzen kann um Speicherplatz zu sparen (macht natürlich nicht viel her, schön und schnieke gecoded wär es trotzdem) =)
- die Textausgabe des Ergebnisses eine Bildausgabe wäre, wenn Bilder in entsprechender Nomenklatur in einem Zielordner vorhanden sind (ich habe für den Dicemod alle Würfel/Ergebnis Kombinationen für einzelne Würfel gerendert etc. und würde sie natürlich auch hierfür zur Verfügung stellen). In diesem Zielordner würde für das Ergebnis 4 auf einem W20 z.B. ...Zielordner\W20\4.gif abgefragt. Wenn vorhanden, würde er das Bild darstellen, ansonsten ", 4" schreiben (das Komma und das Leerzeichen würden wegfallen, wenn es der erste Würfel in der Reihe wäre)
- die Anzahl der erlaubten Würfel in einem Wurf bestimmbar wäre: 1<=x<=20 z.B. würde bedeuten, dass eine Eingabe von [dice]0W10[/dice], [dice]-3W10[/dice] oder [dice]2000W10[/dice] nicht möglich wären
- die Anzahl der erlaubten Würfelwürfe pro Post bestimmbar wären: z <= 10 z.B. damit keine Milliarde einzelne Arrays durch einen Post in die Datenbank geschrieben werden können.
- und für die Jubiläumsversion irgendwann: GUI im ACP in dem man die Ordner für die Bilder, die Nomenklatur und die Regulationen von x, y und z einstellen kann ^^



Ich wäre für jede Hilfe äußerst dankbar, weil ich im Moment keinerlei Ahnung habe, wie ich einen BBCode "zu Fuß" erkennen lassen kann, geschweige denn, wie ich mit php oder womit ich es machen müsste, einen Random-Befehl ausführe, geschweige denn Post-IDs erkenne, Arrays erstelle und in der Forumsdatenbank abspeichere UND wieder abrufe.
Und ich würde mich natürlich sehr freuen, wenn es jemand einfach macht, aber wenn ich entweder zusätzlich oder stattdessen Informationen bekomme, wie ich es selber machen kann, würde ich mich noch deutlich mehr freuen, weil ich, vor allem für zukünftige Projekte einfach gerne auch was selber machen mag um nicht anderen mit meinen Ideen auf der Tasche zu liegen =)

Vielen Dank für die Mühe und ich hoffe auf eure Hilfe =)
Benutzeravatar
MalkContent
Mitglied
Beiträge: 40
Registriert: 18.08.2008 00:59

Re: Würfelmod

Beitrag von MalkContent »

hmmm *bump* :/
Benutzeravatar
MalkContent
Mitglied
Beiträge: 40
Registriert: 18.08.2008 00:59

Re: Würfelmod

Beitrag von MalkContent »

Hallo
nun da ich endlich wieder einen Monat Zeit habe, wollte ich mich endlich an den Würfelmod setzen.
Statt alles selber zu machen, was mir auf Grund meiner geringen Erfahrung mit der phpbb Struktur und php code zu schwierig ist, will ich den Code von folgendem Mod modifizieren:
Dice BBCode by surfer 247

Prinzipiell macht die mod schon fast alles, was ich will (Liste steht oben).
Dennoch möchte ich folgende Modifikationen vornehmen:
-Abgespeicherte Würfelwürfe anstelle von Integern für das Gesamtergebnis als Array von Integern speichern, um auf die Einzelergebnisse zurückgreifen zu können
-Bilddateien in die Ergebnisausgabe einbinden
-Code für den Abruf der gespeicherten Ergebnisse ändern

Ich werde hier die nächsten Tage meine Modifikationen am Code posten und wäre dankbar, wenn da jemand drübergucken könnte.

Um den Anfang zu machen, zuerst die Codesektion die (anscheinend) für die Generierung der Zufallsergebnisse zuständig ist.
Urcode:

Code: Alles auswählen

/*
BEGIN DICE MOD
*/
function encodediceBBCode($dice_roll, $post_id)
{
	global $db, $user;
	
	//check to see if this is a new code or an existing one (if an existing one was changed to mimmick a new one, it would have already been caught)
	$dice_info = array();
	if(preg_match('/([0-9]+)d([0-9]+)/i' , $dice_roll, $dice_info))
	{
	  	//make sure there is nothing extraneous and if there is, just return the original string (checks that it begins with the code and ends with the code)
	  	if(strpos($dice_roll, $dice_info[0])!=0 || strlen(substr($dice_roll,strlen($dice_info[0])))>0)
	  	{
		    return '[dice]' . $dice_roll . '[/dice]';
		}
		
		//this is a valid dice roll, add it to the database and encode it (1 => numdie , 2 => diesides)
		//generate the rolls
		$totalroll = '';
  		for($i=0 ; $i<(int) $dice_info[1] ; $i++)
		{
		    $totalroll .= rand(1,(int) $dice_info[2]) . ':';
		}
		//generate the random code
		do
		{
		  	$rollcode = '';
		  	for($i=0 ; $i<10 ; $i++)
		  	{
			    $rollcode .= chr(97+rand(0,25));
			}
			//ensure that this code is not already taken
			$sql = 'SELECT * FROM ' . DICE_TABLE . ' WHERE dice_code="' . $rollcode . '"';
			$db->sql_query($sql);
		}while($db->sql_fetchrow($result));
		//insert into the database
		$sql = 'INSERT INTO ' . DICE_TABLE . ' ' . $db->sql_build_array('INSERT', array(
			   'post_id'	=> $post_id,
			   'totalroll'	=> $totalroll,
			   'numdice'	=> (int) $dice_info[1],
			   'numsides'	=> (int) $dice_info[2],
			   'can_remove'	=> 0,
			   'dice_code'  => $rollcode,
			   'username'	=> $user->data['username']));
		$db->sql_query($sql);
		
		//return the new code so that it may be processed by the BBCode parser
		return '[dice]' . $rollcode . '[/dice]';
	}
	else
	{
	  	return '[dice]' . $dice_roll . '[/dice]';
	}
}
/*
END DICE MOD
*/
ModCode:

Code: Alles auswählen

		//this is a valid dice roll, add it to the database and encode it (1 => numdie , 2 => diesides)
		//generate the rolls
		$totalroll = array();
  		for($i=0 ; $i<(int) $dice_info[1] ; $i++)
		{
		    $totalroll[] = rand(1,(int) $dice_info[2]) . ':';
		}
Außerdem würde ich für folgenden Code gerne einen Ersatz finden, der Forum-, Topic- und Post-ID des Posts, in dem gepostet wird, statt einer Zufallsvariable verwendet, weiß aber nicht, wie ich auf die Post-ID zugreifen kann, d.h. habe ich ein bisschen Pseudocode geschrieben.

Code: Alles auswählen

//generate the random code
		do
		{
		  	$rollcode = '';
		  	for($i=0 ; $i<10 ; $i++)
		  	{
			    $rollcode .= chr(97+rand(0,25));
			}
			//ensure that this code is not already taken
			$sql = 'SELECT * FROM ' . DICE_TABLE . ' WHERE dice_code="' . $rollcode . '"';
			$db->sql_query($sql);
		}while($db->sql_fetchrow($result));

soll zu:

//generate the random code
		$i=0;
		do
		{
		  	$rollcode = {{(string)$post_id} . "nr" . {(string)$i}};
			//ensure that this code is not already taken
			$sql = 'SELECT * FROM ' . DICE_TABLE . ' WHERE dice_code="' . $rollcode . '"';
			$db->sql_query($sql);
		  	$i++;
		}while($db->sql_fetchrow($result));
Ich bin mir nicht 100%ig sicher, ob einzelne Posts alleine durch ihre Post_ID, die man im Browser als Link lesen kann, identifizierbar sind.
Beispiel:
http://www.phpbb.de/community/viewtopic ... 5#p1068346
d.h. der Post wird eindeutig durch das p1068346 identifiziert und forums und topic id sind egal(?)

Ich freue mich auf Antworten, weil ich (glaube ich) wirklich ein bisschen Hilfe von Leuten, die sich auskennen, gebrauchen kann.
More to come =)
Benutzeravatar
MalkContent
Mitglied
Beiträge: 40
Registriert: 18.08.2008 00:59

Re: Würfelmod

Beitrag von MalkContent »

bin fertig: http://www.phpbb.com/community/viewtopi ... 35&start=0
=)
wenn mir jemand zum Erstellen von ACP permission Optionen ein Tutorial zeigen könnte wär das super
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“