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

Admin RP-Emotes
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=2312
Seite 1 von 3

Autor:  Meteora [ Fr 03 Mär, 2006 18:16 ]
Betreff des Beitrags:  Admin RP-Emotes

Dieser Hack erlaubt es im Chat einige Veränderungen der spielmechanik durchzuführen.

Unter anderem Wetteränderung, Wiederbelebung und Tötung eines Spielers. Andere Emotes sind in Entwicklung.

Viel spass dabei:

common.php, suche:
$this->bbcode_second_pass_code('', '
//output("$replacements replacements (".($replacements/strlen($straight)).")`n");
while (strpos($commentary,"*hic**hic*"))
$commentary = str_replace("*hic**hic*","*hic*hic*",$commentary);
}//end if
')
Füge DANACH hinzu:
$this->bbcode_second_pass_code('', 'if((substr($commentary,0,6)=='/rpcmd')){
//Begin Command Mod by Hadriel v1.6
/* HISTORY: *\
| v1.0 -> release |
| v1.1 -> added 'settings' |
| v1.2 -> bugfixes |
| v1.3 -> bugfixes |
| v1.4 -> added comments |
| -> added this history |
| -> added 'addnews' |
| v1.5 -> bugfixes |
| v1.6 -> bugfixes |
| v1.7 -> added something o__Ô |
\*______________________________*/
// Commands seen at silienta-logd.de | Idea by DoM
if($session['user']['superuser']>=3){
$intro = explode(' ',$commentary,2);
$parts = explode(';',$intro[1]);

switch($parts[0]){
case "userb":
/*
case 1: /rpcmd userb;[userlogin];fullife
-> user [userlogin] gets full life

case 2: /rpcmd userb;[userlogin];onehp
-> user has only 1 hp left

case 3: /rpcmd userb;[userlogin];gold;[pieces]
-> user gets [pieces] gold. can be -[pieces].

case 4: /rpcmd userb;[userlogin];gems;[pieces]
-> user gets [pieces] gems. can be -[pieces].

*/
if(!empty($parts[1])){
switch($parts[2]){
case "fullife":
$frm = "hitpoints = maxhitpoints";
break;
case "onehp":
$frm = "hitpoints = 1";
break;
case "gold":
$frm = "gold = gold + (".$parts[3].")";
break;
case "gems":
$frm = "gems = gems + (".$parts[3].")";
break;
}
mysql_query("UPDATE accounts SET ".$frm." WHERE login = '".$parts[1]."';");
}
return false;
break;
case "addnews":
/*
case 1: /rpcmd addnews;[news]
-> adds a news '[News]'

case 2: /rpcmd addnews;Ich heisse %user% und trage %wep% und %arm%.
-> adds a news 'Ich heisse [username] und trage [userweapon] und [userarmor]

*/
if(!empty($parts[1])){
$parts[1] = str_replace('%user%',$session['user']['name'],$parts[1]);
$parts[1] = str_replace('%wep%',$session['user']['weapon'],$parts[1]);
$parts[1] = str_replace('%arm%',$session['user']['armor'],$parts[1]);
addnews($parts[1]);
return false;
}else{
return false;
}
break;
case "weather":
/*
case 1: /rpcmd weather;Sonnig und Warm
-> Change Weather to 'Sonnig und Warm'

case 2: /rpcmd weather;Sonnig und Warm;[Loginname_of_a_user]
-> Change Weather to 'Sonnig und Warm - Extra für [Name_of_[Loginname_of_a_user]]'
*/
if(!empty($parts[2])){
$sql = "SELECT name FROM accounts WHERE login = '".$parts[2]."';";
$res = mysql_query($sql);
if(mysql_num_rows($res)>0){
$row = mysql_fetch_assoc($res);
$extra = '`0 - Extra für '.$row['name'];
}
}
output('Weather called '.$parts[1].$extra);
savesetting('weather',$parts[1].$extra);
$commentary = '/me ändert das Wetter per göttlicher Macht auf '.$parts[1].$extra;

break;
case "rebirth":
/*
case 1: /rpcmd rebirth;[Loginname_of_a_user]
-> [Loginname_of_a_user] will be alive

*/
if(!empty($parts[1]) && $parts[1]!=$session['user']['login']){
$sql = "SELECT name FROM accounts WHERE login = '".$parts[1]."' AND alive=0 AND loggedin=1;";
$res = mysql_query($sql);
if(mysql_num_rows($res)>0){
$row = mysql_fetch_assoc($res);
$commentary = '/me schenkt '.$row["name"].'`0 neues Leben.';
mysql_query("UPDATE accounts SET alive = 1, hitpoints = maxhitpoints WHERE login = '".$parts[1]."' AND alive=0 AND loggedin=1;");
output('Rebirth called '.$parts[1]);
}else{
return false;
}
}else{
output('Rebirth called '.$parts[1].' - ERROR!');
return false;
}
break;

case "die":
/*
case 1: /rpcmd die;[Loginname_of_a_user]
-> [Loginname_of_a_user] will be dead (works only at the same place!)

*/
$currentpage=$session['user']['restorepage'];
if (strstr($currentpage, "?comscroll=") !=""){
$position=strrpos($currentpage,"?comscroll=");
$currentpage=substr($currentpage,0,$position);
}
if (strstr($currentpage, "&comscroll=") !=""){
$position=strrpos($currentpage,"&comscroll=");
$currentpage=substr($currentpage,0,$position);
}
if (strstr($currentpage, "&c=") !=""){
$position=strrpos($currentpage,"&c=");
$currentpage=substr($currentpage,0,$position);
}
if (strstr($currentpage, "?c=") !=""){
$position=strrpos($currentpage,"?c=");
$currentpage=substr($currentpage,0,$position);
}
output($currentpage);
if(!empty($parts[1]) && $parts[1]!=$session['user']['login']){
$sql = "SELECT name FROM accounts WHERE login = '".$parts[1]."' AND alive=1 AND loggedin=1 AND restorepage LIKE '%".$currentpage."%';";
$res = mysql_query($sql);
if(mysql_num_rows($res)>0){
$row = mysql_fetch_assoc($res);
$commentary = '/me lässt einen Blitz in '.$row["name"].'`0 hineinfahren. '.$row["name"].'`0 stirbt.';
mysql_query("UPDATE accounts SET alive = 0, hitpoints=0 WHERE login = '".$parts[1]."' AND alive=1 AND restorepage LIKE '%".$currentpage."%';");
output('Die called '.$parts[1]);
}else{
return false;
}
}else{
output('Die called '.$parts[1].' - ERROR!');
return false;
}
break;
case "setting":
/*
case 1: /rpcmd setting;[setting_name];[setting_value]
-> Setting [setting_name]'s value will be [setting_value]

*/

if(!empty($parts[1])){
if(!empty($parts[2])){
output("Changed setting ".$parts[1]." (original value ".($settings[$parts[1]]?$settings[$parts[1]]:"`iUNSET`i").") to ".$parts[2]."`n");
savesetting($parts[1],$parts[2]);
}
}
return false;

break;
default:
return false;
break;
}
}else{
return false;
}
//End Command mod by hadriel
}
')

Edit: funktionsweise:

/rpcmd [command];[value];[extra]
bsp:
/rpcmd weather;Sonnig und Warm
oder:
/rpcmd weather;Sonnig und Warm;Ein_Username

Autor:  Arîzto [ Fr 03 Mär, 2006 18:33 ]
Betreff des Beitrags: 

Süper! THX! :D

Autor:  Eliwood [ Fr 03 Mär, 2006 18:55 ]
Betreff des Beitrags:  Re: Admin RP-Emotes

Achtung beim Töten eines Spielers:
Spieler ist an Orten ohne automatisches Versenden in das Totenreich und wird umgebracht => Er spielt munter weiter.

Schlechte, aber wirksame Lösung:
"Navs" gleichzeitig noch reparieren lassen, damit SPieler gezwungen ist, auf den Dorfpatz zu kommen.

Autor:  Arîzto [ Fr 03 Mär, 2006 19:03 ]
Betreff des Beitrags:  Re: Admin RP-Emotes

Eliwood hat geschrieben:
Schlechte, aber wirksame Lösung:
"Navs" gleichzeitig noch reparieren lassen, damit SPieler gezwungen ist, auf den Dorfpatz zu kommen.


Oder ÜBERALL eine Abfrage rein! -_-
Aber naja... wer will jemandem denn ein Messer in den Rücken rammen? :o

Autor:  Auric [ Fr 03 Mär, 2006 19:06 ]
Betreff des Beitrags: 

Richtig genial Hadriel. Einer der besten Hacks seit langem!

ich werd mich vieleicht noch mal dran machen, ein paar weitere Befehle dafür zu schreiben, wenn es dich nicht stört...

Autor:  Meteora [ Fr 03 Mär, 2006 19:19 ]
Betreff des Beitrags: 

Auric hat geschrieben:
Richtig genial Hadriel. Einer der besten Hacks seit langem!

ich werd mich vieleicht noch mal dran machen, ein paar weitere Befehle dafür zu schreiben, wenn es dich nicht stört...


danke für das lob... ein teil sollte aber auch an Dom und rikka gehen ;)

ich setz mal oben version 1.1 rein... mit fixes

€dit: v1.1 oben, bitte gesamten alten code mit dem neuen überschreiben!

Autor:  Arîzto [ Fr 03 Mär, 2006 19:24 ]
Betreff des Beitrags: 

Sagt mir bitte, dass ich nur irgend eine Kleinigkeit übersehen habe... -__-

Zitat:
Mir sagt: "/rpcmd weather;Warm und sonnig"

Autor:  Meteora [ Fr 03 Mär, 2006 19:26 ]
Betreff des Beitrags: 

Arîzto hat geschrieben:
Sagt mir bitte, dass ich nur irgend eine Kleinigkeit übersehen habe... -__-

Zitat:
Mir sagt: "/rpcmd weather;Warm und sonnig"


neue version oben ersetzen.

Autor:  Arîzto [ Fr 03 Mär, 2006 19:29 ]
Betreff des Beitrags: 

Habe ich, geht noch nicht...

Autor:  Meteora [ Fr 03 Mär, 2006 19:40 ]
Betreff des Beitrags: 

Arîzto hat geschrieben:
Habe ich, geht noch nicht...


mach mal deine common.php sichtbar ;)

Autor:  Arîzto [ Fr 03 Mär, 2006 19:49 ]
Betreff des Beitrags: 

Arîzto hat geschrieben:
Habe ich, geht noch nicht...


*Selberhau* *Nochmal* und ... *Nochmal*
*SichschnellbeiHaddyentschuldigt*

War per FTP die ganze Zeit auf 'nem falschen Server, weil ich vorhin was getestet habe :pein:


Aber dafür kann ich nur nochmal mehr sagen: Süper! ;)

Autor:  Meteora [ Fr 03 Mär, 2006 19:50 ]
Betreff des Beitrags: 

dann is ja jut, ich hab mich gewundert ;)

update auf version 1.3 oben. code wieder ersetzen.

Autor:  Arîzto [ Fr 03 Mär, 2006 19:52 ]
Betreff des Beitrags: 

Kleine Frage: Kannst evtl. immer so'n Bsp. wie vorhin kommentier hinter
[php]case "xxx"[/php]
packen?
Ist sicherlich hilfreich!

Autor:  Meteora [ Fr 03 Mär, 2006 19:53 ]
Betreff des Beitrags: 

klar, wird in version 1.4 drin sein.

mfg

Autor:  Arîzto [ Fr 03 Mär, 2006 19:55 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
klar, wird in version 1.4 drin sein.


Herzlichen Dank auch. [Dann muss ich nicht mehr so dumme Fragen stellen :lol: ]

Autor:  Meteora [ Fr 03 Mär, 2006 20:20 ]
Betreff des Beitrags: 

1.4 oben verfügbar.

code wieder ersetzen mit dem aktuellen.

mfg Hadriel

Autor:  Rikkarda [ Fr 03 Mär, 2006 20:37 ]
Betreff des Beitrags: 

jo ich fands auch klasse als ich es damals bei dom gesehen hab :) vor allem die freieswettereinstellung (weiss grad net, ob hadi die nu auch hier hat) nutz ich sehr häufig ;)

lg

Autor:  Devilzimti [ Fr 03 Mär, 2006 20:39 ]
Betreff des Beitrags: 

Hübsche Sache :D
Fand ich damals bei dOm auch schon immer lustig :D

Autor:  Meteora [ Fr 03 Mär, 2006 21:58 ]
Betreff des Beitrags: 

v 1.7 oben

Autor:  Andragor [ Sa 04 Mär, 2006 02:07 ]
Betreff des Beitrags: 

der Hammer .... gefällt mir sehr gut :D

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