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
_________________ R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†
Zuletzt geändert von Meteora am Fr 03 Mär, 2006 21:59, insgesamt 9-mal geändert.
|