[Release] SMS GameMaster + Timing

MapTuH4y

New Member
Joined
Apr 29, 2010
Messages
1,113
Reaction score
180
IF WITH SMS...
MobioScript:
PHP:
<?PHP

function mssql_real_escape_string($str) { return str_replace("'","''",$str); }



$item   = mssql_real_escape_string($_REQUEST["item"]);
$fromnum  = mssql_real_escape_string($_REQUEST["fromnum"]);
$extid   = mssql_real_escape_string($_REQUEST["extid"]);

$mobio_remote_addrs = array("87.120.176.216", "194.12.244.114");

$servID  = 3503;

$db_serv = 'localhost'; //LET IT LIKE THAT :)
$db_user = 'sa'; //YOUR MSSQL USER
$db_pass = 'sqlpassword'; //YOUR MSSQL PASSWORD
$db_name = 'MuOnline'; //YOUR DATABASE NAME - USUALLY MuOnline(where character table is located)
$ctl = '32';  //YOUR CTLCODE (OLD VERS- 8 / NEW- 32)
$gmtime = '24'; //THE GM TIME(WICH IS BEFORE THE MAX LEVELS)
$max = '10';  //THE MAXIMUM GMLEVELS


if(in_array($_SERVER['REMOTE_ADDR'], $mobio_remote_addrs)) {

    $sms_reply = 'Greshka. Spazvaite to4no instrukciite!';
    $conn = mssql_connect($db_serv, $db_user, $db_pass);
    if($conn) {
        mssql_select_db($db_name);
        $res = mssql_query("SELECT CtlCode FROM Character WHERE name='$item'");
        $lvl = mssql_query("SELECT GMlevel FROM Character WHERE name='$item'");
        if(mssql_num_rows($res)!=0 && mssql_num_rows($lvl)!=$max) {
            mssql_query("UPDATE Character SET CtlCode='32',GMTime=' ".(time()+3600*$gmtime)."',GMlevel='1' where name='$item'");  }
        
   elseif(mssql_num_rows($res)!=0 && mssql_num_rows($lvl)==$max) {}

        $res = mssql_query("SELECT CtlCode FROM Character WHERE name='$item'");
        $lvl = mssql_query("SELECT GMlevel FROM Character WHERE name='$item'");

        if(mssql_num_rows($res)!=1) {

            $sms_reply = "Vie uspeshno stanahte GameMaster!!! Shte ste GM za {$gmtime} chasa .";
        }
  elseif(mssql_num_rows($res)==$ctl && mssql_num_rows($lvl)==$max) {

            $sms_reply = "Vie uspeshno stanahte GameMaster ZAVINAGI!!!";
        }
    }
    file("http://mobio.bg/paynotify/pnsendsms.php?servID=$servID&tonum=$fromnum&extid=$extid&message=".urlencode($sms_reply));
}
?>

SQL Query:
Code:
alter table character add GMtime varchar(20) null, GMlevel varchar(20) null


GM Remove function:
AS PHP:
PHP:
$max = '10';  //THE MAXIMUM GMLEVELS 
mssql_query("update character set ctlcode='0' WHERE GMTime<='".time()."' and GMlevel=='".($max)."' and CtlCode>='2'");

AS SQL Agent JOB TSQL Query - recommended:
update character set ctlcode='0' WHERE GMTime<='".time()."' and GMlevel!='MAX GMLEVEL HERE' and CtlCode>='2'
INFO:
SQL Query се execute в Query Analyzer-а, за да създаде колоната за времето.
GM Remove Function се слага или като SQL Job или в скрипта за GM-тата, както дамиан каза
Кода за премахването на гм-тата можеш да го сложиш в сайта където се показват всички гм-та.

credits: M3,Damian & Mobio(for credits script)

ChangeLOG:
// 04/05/2011 GM Add Mobio Script function - Modded! (now you just need to edit $gmtime to the hours you want they to be gm)
// 04/05/2011 GM Remove Query for SQL Agent Job & for PhP - Fixed!
// 30/04/2011 TSQL ако искате да ги премахва чрез SQL Agent Job - Added!
// 15/06/2011 GM Remove Query for SQL Agent Job & for PhP - Fixed!
// 29/06/2011 GMlevels(MOBIO,GMRemove functions and the sql query are the edited scripts) & CtlCode changable - ADDED! - HOT!!
// 29/06/2011 SOME MISTAKES - Corrected!
 
Last edited:
ммм това ми харесва бравос :)
 
Ами то някой беше направил тема за такова че му трябва и дамиян ми даде ифовете а аз го сглобих но след това видях че RaFa вече го е направил...(почити същото :D)
 
Ами то някой беше направил тема за такова че му трябва и дамиян ми даде ифовете а аз го сглобих но след това видях че RaFa вече го е направил...(почити същото :D)

По-добре, че си го направил, моят код е доста старичък,а и мобио вече са с 2 сървъра.

В кода ти забелязах, че използваш $gmtime само за съобщението, връщано от кода, но не и при изчисляването на секундите. Също така можеш да сложиш една променлива за избиране на CtlCode (при по-старите версии 8,12, докато при по-новите е 32). А и при ъпдейт кода можеш да го промениш, така, че да не се използва ctlcode за Гейм Мастър:

Code:
update character set ctlcode='0' where name='$charname' and ctlcode<>'1' and ctlcode<>'0'
 
Сега се сетих че ще е малко трудно да взема $charname (а няма и смисъл) и го редактирах с малка част от твоя код(where GMTime<=....)
После ще го добавя и функцията след като изпратят 3,4... смса да стават GM-та завинаги(естествено който иска може да не го ползва).
 
Last edited:
Целия код за премахване на гм може да се замени с това
PHP:
mssql_query("update character set ctlcode='0' WHERE GMTime<='".time()."' and ctlcode='8'");
 
всичко е ОК ама след 24ч не им се махат прават пак си седат ГМ ?
 
@Kultorista:
SQL Query:
Code:
alter table character add GMtime varchar(20) null


GM Remove function:

PHP:
mssql_query("update character set ctlcode='0' WHERE GMTime<='".time()."' and ctlcode='8' or ctlcode='8'");

INFO:
SQL Query се execute в Query Analyzer-а, за да създаде колоната за времето.
GM Remove Function се слага или като SQL Job или в скрипта за GM-тата, както дамиан каза

SQL Agent JOB TSQL Query:
update character set ctlcode='0' WHERE GMTime<='".time()."' and ctlcode='8' or ctlcode='8'

1st post EDITED!
 
Last edited:
  • Like
Reactions: kulturista
// 04/05/2011 GM Remove Query for SQL Agent Job & PhP - Fixed!
 
Last edited:
  • Like
Reactions: kulturista
Айде и аз да зема да кажа нещо по този код тъй като гледам допускаш грешка след грешка ето и каде ти е грешката сега

CtlCode = 0 / Normal User
CtlCode = 1 / Banned User

така написан кода след 24 часа ще премахне е само ГМ-та ами и всички блокирани играчи ще стант нормали играчи и ефекта че си ги банирал е 0-в
Code:
mssql_query("update character set ctlcode='0' WHERE GMTime<='".time()."' and CtlCode>='1'");
update character set ctlcode='0' WHERE GMTime<='".time()."' and CtlCode>='1'

ето как трябва да е
Code:
mssql_query("update character set ctlcode='0' WHERE GMTime<='".time()."' and CtlCode>='2'");
update character set ctlcode='0' WHERE GMTime<='".time()."' and CtlCode>='2'
 
Last edited:
  • Like
Reactions: MapTuH4y
Да се направи така като си станал вече 10 пъти гм за 24 часа да останиш за винаги.
 
Добре като се прибера ще го направя :)