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

Waldspecialeditor Addon
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=1498
Seite 1 von 2

Autor:  Meteora [ Fr 01 Jul, 2005 18:07 ]
Betreff des Beitrags:  Waldspecialeditor Addon

Soo... Fügt folgendes hinzu:

- Downloadbare Specials
- Namen für die Specials
- Eigenes Special mit Links zu anderen Specials

[INSTALLATION]

[SQL]

ALTER TABLE waldspecial ADD name VARCHAR(255) DEFAULT 'kein Name vorhanden',
ADD download TINYINT (2) DEFAULT '0';

[FILES]
Waldspecialeditor => ggf. ersetzen, ansonsten ins logd-root verzeichnis
Specdown.php => Benötigt Rechte für show_source, ins root-verzeichnis
Specmap.php => ggf. ersetzen, ansonsten ins specials-verzeichnis

[CODE]
common.php:
search:
[php]
$allowanonymous=array( [...] );
$allownonnav = array( [...] );
in-line find (twice):
"petition.php"=>true,
before add:
"specdown.php"=>true,
[/php]
index.php
einen link für specdown.php setzen

Dateianhänge:
Dateikommentar: Waldspecialeditor Addon
wse_addon.zip [5.38 KIB]
461-mal heruntergeladen

Autor:  dragonslayer [ Sa 02 Jul, 2005 15:05 ]
Betreff des Beitrags: 

Ich hatte mich auch mal dran gesetzt und den Waldspecialeditor ein wenig erweitert. "Meine" Version kann dann halt noch einzelne special an und ausschalten und ein paar Kleinigkeiten intern hab ich geändert.
[php]<?php
/* MOD:
Ersteller: http://www.plueschdrache.de
Datum: irgendwann 2004
Descr: - Ermöglicht jedem Waldspecial eine gewisse Wahrscheinlichkeit zuzuweisen, wie oft es auftritt
- Ermöglicht eine bessere Übersicht über die Waldspecials --> Descr-Feld
- Zählt die Häufigkeit wie oft welches Skript aufgerufen wurde
- Ermöglicht einzele Specials erst ab einem höheren DK zu spielen
- ist schön bunt

Sonst: Alles zwischen den "~~~~~" Linien darf gelöscht werden. "www.plueschdrache.de" darf nicht gelöscht / verändert / ausgeblendet werden!
--> Die user sehen's ja nicht .. also keine Panik
*/

/**
* @desc Modified by Dragonslayer for lotgd.drachenserver.de
* @longdesc +Inserted a possibility to turn specials on and off
+Inserted a link to the sourcecode
+Altered the DB and SQL Parts
-Removed/Altered some performance decreasing party
*/

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// INSTALL
/*
/////////////////////
// Datenbank Teil: //
////////////////////

// führe diesen Code im PHPmyAdmin o.ä. aus.

CREATE TABLE `waldspecial` (
`row_id` int(11) unsigned NOT NULL auto_increment,
`filename` varchar(255) default '0',
`descr` text,
`prio` int(5) unsigned default '0',
`dk` int(5) unsigned default '0',
`anzahl` int(11) unsigned default '0',
`released` tinyint(5) unsigned default '1',
PRIMARY KEY (`row_id`),
KEY `row_id` (`row_id`,`prio`,`dk`)
) TYPE=MyISAM;


/////////////////
// Datei Teil: //
/////////////////
1. Datei ins root Verzeichnis kopieren
2. superuser.php öffen und irgendwo in der Mitte
if ($session[user][superuser]>2){
addnav("www.plueschdrache.de"); // *g*
addnav("Waldspecial-Editor","waldspecialeditor.php");
}
3. öffne forest.php
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! Wir haben deutlich mehr an der forest gedreht... darum ist dieses Stückchen Quellcode NICHT GETESTET!!! !!!
!!! fragt Meteora --> der baut in letzter Zeit öfters gute Einbauanleitungen *g* !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

suche:
-------
$events = array();
while (false !== ($file = readdir($handle))){
if (strpos($file,".php")>0){
// Skip the darkhorse if the horse knows the way
if ($session['user']['hashorse'] > 0 &&
$playermount['tavern'] > 0 &&
strpos($file, "darkhorse") !== false) {
continue;
}
array_push($events,$file);
}
}
$x = e_rand(0,count($events)-1);
if (count($events)==0){
output("`b`@Arrr, dein Administrator hat entschieden, dass es dir nicht erlaubt ist, besondere Ereignisse zu haben. Beschwer dich bei ihm, nicht beim Programmierer.");
}else{
$y = $HTTP_GET_VARS[op];
$HTTP_GET_VARS[op]="";
//echo "$x including special/".$events[$x];
include("special/".$events[$x]);
$HTTP_GET_VARS[op]=$y;
}
}else{
output("`c`b`\$FEHLER!!!`b`c`&Es ist nicht möglich die besonderen Ereignisse zu öffnen! Bitte benachrichtige den Administrator!!");
}

ersetzte mit:
-------------
// Skip the darkhorse if the horse knows the way
if ($session['user']['hashorse'] > 0 && $playermount['tavern'] > 0) {$sql_add=" AND filename <> 'darkhorse.php'";}
$waldspecial = @mysql_result(mysql_query("SELECT filename FROM waldspecial WHERE prio <= ".e_rand(0,3)." AND dk <=".$session[user][dragonkills]." and released=1 ORDER BY RAND() LIMIT 1"),0,"filename");
if ($waldspecial=='') {output("`b`@Arrr, dein Administrator hat entschieden, dass es dir nicht erlaubt ist, besondere Ereignisse zu haben. Beschwer dich bei ihm, nicht beim Programmierer. Es könnte natürlich auch sein, dass es kein Waldspecial gibt, das für dich freigeschalten ist... zu dumm..");}
$y = $HTTP_GET_VARS[op];
$HTTP_GET_VARS[op]="";
include("special/".$waldspecial);
$HTTP_GET_VARS[op]=$y;

4. Das wars..
*/
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

require_once 'common.php';
page_header('Einstellungen Waldspecial');
addnav('Waldspecialeditor');
addnav('Files aktualisieren','waldspecialeditor.php?op=neu');
addnav('Eigenschaften festlegen','waldspecialeditor.php?op=edit');
addnav('Zurück');
addnav('Zur Grotte','superuser.php');
addnav('Zum Wald','forest.php');


if ($HTTP_GET_VARS[op]==''){
$ausgabe.='`7<h3>Waldspecialeditor</h3>`n
Mit diesem Tool kann festgelegt werden, welches Special ab welcher Anzahl an Drachenkills wie oft und mit welcher Wahrscheinlichkeit eintreten wird.';
}
elseif ($HTTP_GET_VARS[op]=='neu')
{

if ($handle = @opendir('special'))
{
$filename = array();
while (false !== ($file = @readdir($handle)))
{
if (strpos($file,".php")>0)
{
array_push($filename,$file);
}
}
if (count($filename)==0)
{
$ausgabe.='`b`@<h3>Keine Waldspecials vorhanden</h1>`n';
}
else
{
output('`7<b>Waldspecial Einstellungen:</b><br>',true);

// eingetragene specials auslesen
$sql='SELECT filename FROM waldspecial';
$result=mysql_query($sql);
$anzahl=mysql_num_rows($result);
// in array speichern
while($row=mysql_fetch_assoc($result))
{
$files[$row['filename']]='yupp';
}
// checken
$i=0;
while (list($key,$val)=each($filename))
{
if ($files[$val]!='yupp')
{
$sql="INSERT INTO waldspecial (row_id, filename, descr, prio, dk, anzahl) VALUES (NULL, '".$val."', 'keine Beschreibung vorhanden', 0, 0, 0)";
mysql_query($sql);
$i++;
}
else
{
$files[$val]='alt';
}
}
if ($i)
{
$ausgabe.="<b>Es wurden <u>$i</u> neue Waldspecials eingetragen. Diese können jetzt angepasst werden</b><br>";
}
}
}
else
{
$ausgabe.='`c`b`\$FEHLER!!!`b`c`&Kann den Ordner mit den Waldspecials nicht finden. Bitte benachrichtige den Admin!! Du bist der Admin?!?... Ja... das könnte sich zum Problem entwickeln';
}

// gelöschte Waldspecials aus DB löschen
$j=0;

if (count($files))
{
reset($files);
while (list($key,$val)=each($files))
{
if ($val!='alt')
{
$sql="DELETE FROM waldspecial WHERE filename='$key'";
mysql_query($sql);
$ausgabe.="$sql <br>";
$j++;
}
}
}

if ($j)
{
$ausgabe.="<b>Es wurden <b><u>$j</u></b> neue Waldspecials aus der Datenbank gelöscht</b><br>";
}

if ($ausgabe=='')
{
$ausgabe='<h2>Es gibt keine Veränderungen im special-Ordner... </h2>';
}

}
elseif($HTTP_GET_VARS[op]=='edit'){
$sql='SELECT * FROM waldspecial ORDER BY filename';
$result=mysql_query($sql);
$anzahl=mysql_num_rows($result);
if ($anzahl)
{
$ausgabe.='
`n`n
Waldspecial Editor`n`n
Priorität absteigend! Je niedrieger die Prio ist, desto öfters kommt das Special dran!`n
Achte darauf, dass mind. ein Waldspecial Prio 0 und DK 0 hat!`n`n
<form action="waldspecialeditor.php?op=save" method="POST">';
addnav('','waldspecialeditor.php?op=save');
$ausgabe.='<table width="600">';
$ausgabe.='<tr>
<td>SpecialNr.</td>
<td>file-Name</td>
<td>Priorität</td>
<td>MinDk</td>
<td>Anzahl</td>
<td>Freigeschaltet</td>
<td>Beschreibung</td>
</tr>';
$i=0;
while($row=mysql_fetch_assoc($result))
{
$color[0]='#008000';
$color[1]='#14EAD3';
$color[2]='#E6E629';
$color[3]='#F26A10';
$color[4]='#FF0000';

$ausgabe.='<tr style="background-color:'.$color[$row[prio]].'">';
$ausgabe.='<td>'.($i+1).'</td>';
$ausgabe.="<td><font color=black><a href='#' onclick=javascript:".popup('source.php?url=/special/'.$row[filename]).">$row[filename]</a></font></td>";
$ausgabe.="<td><select name='data[".$i."][prio]'>
<option value='0' ".($row[prio]=='0'?"selected":"")." style='background-color:".$color[0]."; color:black;'>sehr häufig</option>
<option value='1' ".($row[prio]=='1'?"selected":"")." style='background-color:".$color[1]."; color:black;'>häufig</option>
<option value='2' ".($row[prio]=='2'?"selected":"")." style='background-color:".$color[2]."; color:black;'>recht selten</option>
<option value='3' ".($row[prio]=='3'?"selected":"")." style='background-color:".$color[3]."; color:black;'>sehr selten</option>
<option value='4' ".($row[prio]=='4'?"selected":"")." style='background-color:".$color[4]."; color:black;'>deaktiviert</option>
</select>
</td>";
$ausgabe.="<td><input type='text' name='data[".$i."][dk]' value='$row[dk]' size='3'>
</td>";
$ausgabe.="<td><input type='text' name='data[".$i."][anzahl]' value='$row[anzahl]' size='5'>
</td>";
$ausgabe.="<td>
<select name='data[".$i."][released]'>
<option value='0' ".($row[released]=='0'?"selected":"")." style='background-color:".$color[0]."; color:black;'>nein</option>
<option value='1' ".($row[released]=='1'?"selected":"")." style='background-color:".$color[1]."; color:black;'>ja</option>
</select>
</td>";
$ausgabe.="<td><textarea class='input' name='data[$i][descr]' rows='3' cols='40'>".stripslashes($row[descr])."</textarea></td>";
$ausgabe.="<input type='hidden' name='data[".$i."][filename]' value='$row[filename]'>";
$ausgabe.="<input type='hidden' name='data[".$i."][row_id]' value='$row[row_id]'>";
$ausgabe.='</tr>';
$i++;
}

$ausgabe.='</table><br>';
$ausgabe.='<input type="submit" name="s1" value="Einstellungen speichern"></form>';
} // ende check ob was in DB steht
else
{ // steht nix in DB
$ausgabe.='<h1>Du solltest erstmal ein paar Specials importieren!</h1>';
}
}
elseif($HTTP_GET_VARS[op]=='save')
{
for ($i=0;$i<count($HTTP_POST_VARS[data]);$i++){

$sql='UPDATE waldspecial SET prio='.abs((int)$_POST['data'][$i]['prio']).', dk='.abs((int)$_POST['data'][$i]['dk']).', descr="'.mysql_escape_string($_POST['data'][$i]['descr']).'", anzahl='.abs((int)$_POST['data'][$i]['anzahl']).', released='.(int)$_POST['data'][$i]['released'].' WHERE row_id='.(int)$_POST['data'][$i]['row_id'] ;
mysql_query($sql);
//$ausgabe.=$HTTP_POST_VARS[data][$i][filename].'--> "'.$sql.'" <br><br>';
$check= mysql_error();
if ($check!='') $ausgabe.='<br><b>'.$check.'</b><br>';
$ausgabe.='<h2>Jupp, das wars.</h2>';
}
}

output($ausgabe,true);
page_footer();
?>[/php]

Autor:  Meteora [ Sa 02 Jul, 2005 15:17 ]
Betreff des Beitrags: 

dragonslayer hat geschrieben:
Ich hatte mich auch mal dran gesetzt und den Waldspecialeditor ein wenig erweitert. "Meine" Version kann dann halt noch einzelne special an und ausschalten und ein paar Kleinigkeiten intern hab ich geändert.


Das kann ja der normale Editor auch...

Autor:  dragonslayer [ Sa 02 Jul, 2005 15:48 ]
Betreff des Beitrags: 

Meiner Meinung nach konnte er das nicht, denn er nahm alle Specials die in seiner Liste auftauchten. Gut, die Specials die nicht in der Liste waren nahm er nicht, da hast du Recht. oder hatte ich da was übersehen?

Autor:  Meteora [ Sa 02 Jul, 2005 15:50 ]
Betreff des Beitrags: 

Priorität auf 'Deaktivieren' und schon kommt das special nicht mehr

Autor:  dragonslayer [ Sa 02 Jul, 2005 15:54 ]
Betreff des Beitrags: 

*gnaarfz*na gut, okay okay, ich seh den Wald vor lauter Bäumen nicht. Sorry! :)

Autor:  EA Neumann [ Mi 06 Jul, 2005 18:55 ]
Betreff des Beitrags: 

!!!--- please help me ---!!!

Hi,
also ich habe seit der Editor drauf ist folgende Probs -> es kommt häufig vor das im Wald folgendes steht:

Besonderes Ereignis

<- mehr nicht, und wenn man weiter kämpfen will kam es sein das man erst einmal 10 mal auch (B)ekämpfen oder (N)ervenkitzel klicken muss, aber manchmal kann man erst wieder Kämpfen (ohne das nur "Besonderes Ereignis" im Wald steht, wenn man ins Dorf oder woanders hingeht.
Ich weiß nun nicht ob es am Editor liegt, aber zuvor (vor dem Einbau des Editors) hätte ich keine Probs!!!
Hinweis es liegt nicht an den Einstellungen im Editor, also nicht das jemand denkt ich hätte nur vergessen die "spezials" im Editor zu aktivieren oder dergleichen ;)!!!

Meine source findet Ihr hier -> http://logd-online.de/source.php

Autor:  Kevz [ Mi 06 Jul, 2005 19:03 ]
Betreff des Beitrags: 

Das mit dem Ereignis kam bei mir auch des öfteren dh. musste ich den Editor wieder ausbauen, da sonst zuviele specails da sind ohne inhalt

Autor:  EA Neumann [ Mi 06 Jul, 2005 19:18 ]
Betreff des Beitrags: 

Kevz hat geschrieben:
Das mit dem Ereignis kam bei mir auch des öfteren dh. musste ich den Editor wieder ausbauen, da sonst zuviele specails da sind ohne inhalt


*HEUL* es muss doch auch eine Lösung geben, die da nicht gleich heißt -> "EDITOR WIEDER RAUS BAUEN" *HEUL*

Autor:  Meteora [ Mi 06 Jul, 2005 19:29 ]
Betreff des Beitrags: 

Das hat gar nichts mit dem editor zu tun, sondern mit falscher specialerstellung.

Irgendwo im Forum hat anp dazu was gepostet

Autor:  Kevz [ Mi 06 Jul, 2005 19:52 ]
Betreff des Beitrags: 

Nya is auch ne lösung^^

Autor:  EA Neumann [ Mi 06 Jul, 2005 20:28 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
Das hat gar nichts mit dem editor zu tun, sondern mit falscher specialerstellung.

Irgendwo im Forum hat anp dazu was gepostet


:shock: :shock: :shock:
Und wieso waren diese Probs vor dem Einbau des EDITOR nicht vorhanden ;)?!?
Könntst Du da mal etwas konkreter werden???

Autor:  Meteora [ Do 07 Jul, 2005 11:44 ]
Betreff des Beitrags: 

EA Neumann hat geschrieben:
Meteora hat geschrieben:
Das hat gar nichts mit dem editor zu tun, sondern mit falscher specialerstellung.

Irgendwo im Forum hat anp dazu was gepostet


:shock: :shock: :shock:
Und wieso waren diese Probs vor dem Einbau des EDITOR nicht vorhanden ;)?!?
Könntst Du da mal etwas konkreter werden???


ka, jedenfalls solltest du in allen specials, die nur "if($_GET[op]==""){"
haben diese mit
if($_GET[op]=="" || $_GET[op]=="search"){

ersetzen

Autor:  Kevz [ Do 07 Jul, 2005 11:46 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
if($_GET[op]=="" || $_GET[op]=="search"){



Genau daran liegt es^^

Autor:  EA Neumann [ Do 07 Jul, 2005 14:23 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
EA Neumann hat geschrieben:
Meteora hat geschrieben:
Das hat gar nichts mit dem editor zu tun, sondern mit falscher specialerstellung.

Irgendwo im Forum hat anp dazu was gepostet


:shock: :shock: :shock:
Und wieso waren diese Probs vor dem Einbau des EDITOR nicht vorhanden ;)?!?
Könntst Du da mal etwas konkreter werden???


ka, jedenfalls solltest du in allen specials, die nur "if($_GET[op]==""){"
haben diese mit
if($_GET[op]=="" || $_GET[op]=="search"){

ersetzen


Also daran kann es nicht (nur) liegen, denn öftmals erscheint im Wald z.B. folgendes:

Besonderes Ereignis

.....*textauszug aus irgend einem Spezial -> Kekse, kleines wesen usw*....

<- und mehr nicht, also fehlen oftmals die zu den gehörigen Auswahlmöglichkeiten - warum auch immer.
Und bei den zuvor angegebenen Spezials und weiteren etlichen ist kein "if($_GET[op]==""){" drinen, was ich mit "if($_GET[op]=="" || $_GET[op]=="search"){" ersetzen könnte ;) und die Probs sind immer noch da!!!

Meine Source -> [url]http://logd-online.de/source.php[/url]

Autor:  Meteora [ Do 07 Jul, 2005 15:59 ]
Betreff des Beitrags: 

wie gelangst du zu den Specials? Per Superuserauswahl oder 'normal', 'Nervenkitzel', 'Herumtreiben' ?

Autor:  EA Neumann [ Do 07 Jul, 2005 16:12 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
wie gelangst du zu den Specials? Per Superuserauswahl oder 'normal', 'Nervenkitzel', 'Herumtreiben' ?


:shock: Na, ganz normal im Wald mit einem nicht Admin- und oder Mod-Charakter -> Bekämpfen/Neverkitzel/Herumziehen!!!
Das Prob haben bis dato alle meine User mit denen ich bis dato kontakt hatte!!!

Autor:  Meteora [ Do 07 Jul, 2005 16:23 ]
Betreff des Beitrags: 

und wie sind sie auf das special gestossen? Per 'Etwas zum Bekämpfen suchen', 'herumtreiben' oder 'Nervenkitzel' ?

Autor:  EA Neumann [ Do 07 Jul, 2005 16:51 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
und wie sind sie auf das special gestossen? Per 'Etwas zum Bekämpfen suchen', 'herumtreiben' oder 'Nervenkitzel' ?


Egal wie ;) sprich es ist egal ob man "Nervenkitzel", "Bekämpfen" oder "Herumziehen" mit - es passiert bei jedem!!!!!!

Autor:  Meteora [ Do 07 Jul, 2005 17:02 ]
Betreff des Beitrags: 

komisch, sollte eigentich normal funktionieren...

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