Как найти скрипт для дисконнекта аккаунта в MU online и на сайтах

Автор Ales, 2008 Нояб. 24, 00:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlineскриптымодулидисконнектаккаунтвеб-сайт

Ales

Я столкнулся с такой проблемой. После того как игроки выходят ис игры, а потом пытаются зайти им говорят что их акк уже в канекте. То есть акк виснет. Я знаю что есть скрипты для дц аккаунта через сайт. Не мог бы кто подсказать скрип дисконнекта акаунта через сайт. Очень нужно.

KURTIS

с помощу этого скрипта акк вроди бы не должен зависть ну точно не уверен.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[WZ_CONNECT_MEMB]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[WZ_CONNECT_MEMB]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE WZ_CONNECT_MEMB

@uid varchar(20),
@server varchar(20),
@uip varchar(20)
AS

Begin

BEGIN TRANSACTION

SET NOCOUNT ON

IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED)
WHERE memb___id = @uid )
Begin
UPDATE MEMB_STAT
SET ip = @uip , connectstat = 1 , servername = @server , ConnectTM = (getdate())
WHERE memb___id = @uid
End
ELSE
Begin
INSERT INTO MEMB_STAT ( memb___id,ip,connectstat,servername) valueS (
@uid,
@uip,
1,
@server
)
End

IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

Ales

Спасибо за ответ! Но я немножко непонел что значит недолжен зависнуть?? Буду рад новым ответам по теме!

Ales

Ну неужели некто незнает скрипты дисконнекта для который можно использывать на сайте му онлайн?

KURTIS

На вот ещё 2 скрипта
1.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[WZ_CONNECT_MEMB]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[WZ_CONNECT_MEMB]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE WZ_CONNECT_MEMB

@uid varchar(20),
@server varchar(20),
@uip varchar(20)
AS

Begin

BEGIN TRANSACTION

SET NOCOUNT ON

IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED)
WHERE memb___id = @uid )
Begin
UPDATE MEMB_STAT
SET ip = @uip , connectstat = 1 , servername = @server , ConnectTM = (getdate())
WHERE memb___id = @uid
End
ELSE
Begin
INSERT INTO MEMB_STAT ( memb___id,ip,connectstat,servername) valueS (
@uid,
@uip,
1,
@server
)
End

IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
2.
CREATE PROCEDURE WZ_DISCONNECT_MEMB

@uid varchar(10)
AS
Begin

BEGIN TRANSACTION

SET NOCOUNT ON

IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED)
WHERE memb___id = @uid )

Begin
UPDATE MEMB_STAT
SET DisConnectTM = (getdate()), connectstat = '0' WHERE memb___id = @uid
End
ELSE
Begin
INSERT INTO MEMB_STAT ( memb___id,ConnectStat,DisConnectTM) values (
@uid,
0,
(getdate())
)
End

IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SET NOCOUNT OFF

Незнаю поможет ли, прост случайно нашел...

leparkour

у кавото есть такой скрипт для сайта Дарк Стайле ? очень надо)

RANDALL

<?php
/*============================================================*
|| ########################################################## ||
|| # Dark Style Web 4.3.6                # ||
|| # ------------------------------------------------------ # ||
|| # Disconnect Script                       # ||
|| # ------------------------------------------------------ # ||
|| # Original Script by Sanbird                      # ||
|| # ------------------------------------------------------ # ||
|| # Modification by SkyLinE27  # ||
|| # ------------------------------------------------------ # ||
|| # ------- Disconnect Script IS FREE SOFTWARE ------- # ||
|| # ------------------------------------------------------ # ||
|| ########################################################## ||
*============================================================*/

if (isset($_POST['dc_start'])){
$user=$_POST['acc'];
$pw=$_POST['pw'];

if (empty(
$user)){$dc_msg_error phrase_login_wrong_acc_pw;
}

if (empty(
$pw)){$dc_msg_error phrase_login_wrong_acc_pw;
}

$pass_check mssql_query("SELECT [memb__pwd], [memb___id], [fpas_ques] FROM [memb_info] WHERE [memb___id] = '$user'");
$pass_check mssql_fetch_row($pass_check);

if(
$Web['MD5'] == 1){
$pass_db           bin2hex($pass_check[0]);
$pass_check        mssql_query("
declare @btInStr VARCHAR(10), @btInStrIndex VARCHAR(10);
set @btInStr     = '"
.$pw."';
set @btInStrIndex = '"
.$user."';
DECLARE @btOutVal BINARY(16)
EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT;
select @btOutVal;
"
);
$pass_check mssql_fetch_row($pass_check);
$pass_entered bin2hex($pass_check[0]);
}
else{
$pass_db           $pass_check[0];
$pass_entered=$password;
}
if (
$pass_db != $pass_entered){ $dc_msg_error phrase_login_wrong_acc_pw;
}


///////////////////////////////////////////////////////////////////////////
// Script to Disconnect a User from the Joinserver and                   //
// remove also the account entry from the database.                      //
// 100% Solution to the "User is already connected" problem.             //
// Made by: Sandbird                                                     //
// Thanks to : Savoy, Deathway and Darkfuture for their help             //
///////////////////////////////////////////////////////////////////////////

function ascii2hex($ascii) {
$hex '';
for (
$i 0$i strlen($ascii); $i++) {
$byte strtoupper(dechex(ord($ascii{$i})));
$byte str_repeat('0'strlen($byte)).$byte;
$hex.=$byte." ";
}
$hex=str_replace(" """$hex);
return 
$hex;
}

function 
hex2ascii($hex){
$ascii='';
$hex=str_replace(" """$hex);
for(
$i=0$i<strlen($hex); $i=$i+2) {
$ascii.=chr(hexdec(substr($hex$i2)));
}
return(
$ascii);
}

function 
dc_user($host$port$user)
{

$mystring "C11405"; // Header packet. I used a packet sniffer to get this packet.It could be different for every gameserver.
$mystring .= ascii2hex($user); // Insert into the packet the username after you convert it to hex first.
$zeros strlen($mystring);
for (
$i;$i<=39-$zeros;$i++){
$mystring .="0"; // The packets must be 40 bits long so we fill the rest of the packet with zeros.
}
$packet hex2ascii($mystring); // Convert the whole string to ascii
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);

if (!
$x = @socket_connect($socket$host$port)) // attempt to connect
{
print 
"<div class="msg-error"><ul><li>Can't connect to server.Maybe server is offline</li></ul></div>";
}
else
{
socket_write($socket$packetstrlen($packet)); // Send the dc packet
socket_close($socket); // Close connection
print "<div class="msg-ok"><ul><li>Disconnect request sent</li></ul></div>";
}

/////////////////////////////////////////////////////////
// This will also delete the entry from the database   //
/////////////////////////////////////////////////////////
$sql mssql_query("UPDATE MEMB_STAT SET ConnectStat ='0' WHERE  memb___id='$user'");
/////////////////////////////////////////////////////////
}
if(!
$dc_msg_error){
dc_user("127.0.0.1""55970"$user); // Run the function: Connect to port 55970 (Joinserver port) and dc the user. Where $user=username
}
if(
$dc_msg_error){
print 
"<div class="msg-error"><ul><li>$dc_msg_error</li></ul></div>";
}
}


?>

<form method="post" name="loginform" action="">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td height="23" width="67">
Логин:
</td>
<td height="23">
<INPUT class=txt-simple maxLength=10 size=15 name=acc>
</td>
</tr>
<tr>
<td height="23" width="67">
Пароль:
</td>
<td height="23">
<INPUT class=txt-simple type=password maxLength=10 size=15 name=pw>
</td>
</tr>
<tr>
<td colspan="2" height="25">
<input value="Disconnect!" class="bt1" type="submit" name=dc_start>
</td>
</tr>
</tbody></table>
</form>

user_MU

Не пашет ваш скриптег.
Пишет что Disconnect request sent и ничего с персом не происходит.

Syler

Скрипт отличный, проверил ни одной дырки нет, есть но маленькая, ничего с ней не добиться :)
Что бы скрипт заработал надо выставить конфиг настройки + в самом низу проверить порт Joinservera, поставить такой какой у вас естестно :)
Удачи, скрипт рабочий, проверенно-доказанно!

Lelush

Цитата: Ales от 2008 Нояб. 24, 00:42  Я столкнулся с такой проблемой. После того как игроки выходят ис игры, а потом пытаются зайти им говорят что их акк уже в канекте. То есть акк виснет. Я знаю что есть скрипты для дц аккаунта через сайт. Не мог бы кто подсказать скрип дисконнекта акаунта через сайт. Очень нужно.
меня тоже давно интересовал этот вопрос может ктонибудь подскажет как это реализовать

MaMoHT

Вот натуральный скрипт дисконнекта
<?php
// Modification by SkyLinE & HuKaTuH
//For DarkStyle Web
//Script In Test Mode!It can crash your JS

//Original Script by Sanbird

if (isset($_POST['dc_start'])){
$user=$_POST['acc'];
$pw=$_POST['pw'];

if (empty($user)){die("Please Enter Account");
}

if (empty($pw)){die("Please Enter Password");
}


$dbuuu = "sa";                     //  DB Login
$dbppp = "079181923";                  //  DB Pass
$datab = "MuOnline";                  //  DB Name
$conn  = mssql_connect($host,$dbuuu,$dbppp)
or die ("<h1>Cannot connect to database</h1>");
$selected=mssql_select_db($datab, $conn);
$sql_pw_check = mssql_query("SELECT memb__pwd FROM MEMB_INFO WHERE memb__pwd='$pw' and memb___id='$user'");
$pw_check = mssql_num_rows($sql_pw_check);
mssql_close($conn);
if ($pw_check <= 0){ Die("incorrect password");
}


///////////////////////////////////////////////////////////////////////////
// Script to Disconnect a User from the Joinserver and                   //
// remove also the account entry from the database.                      //
// 100% Solution to the "User is already connected" problem.             //
// Made by: Sandbird                                                     //
// Thanks to : Savoy, Deathway and Darkfuture for their help             //
///////////////////////////////////////////////////////////////////////////

function ascii2hex($ascii) {
$hex = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hex.=$byte." ";
}
$hex=str_replace(" ", "", $hex);
return $hex;
}

function hex2ascii($hex){
$ascii='';
$hex=str_replace(" ", "", $hex);
for($i=0; $i<strlen($hex); $i=$i+2) {
$ascii.=chr(hexdec(substr($hex, $i, 2)));
}
return($ascii);
}

function dc_user($host, $port, $user)
{

$mystring = "C11405";            // Header packet. I used a packet sniffer to get this packet.It could be different for every gameserver.
$mystring .= ascii2hex($user);         // Insert into the packet the username after you convert it to hex first.
$zeros = strlen($mystring);
for ($i;$i<=39-$zeros;$i++){
$mystring .="0";               // The packets must be 40 bits long so we fill the rest of the packet with zeros.
}
$packet = hex2ascii($mystring);      // Convert the whole string to ascii
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$x = @socket_connect($socket, $host, $port)) // attempt to connect
{
echo "Can't connect to server.Maybe server is offline";
}
else
{
socket_write($socket, $packet, strlen($packet)); // Send the dc packet
socket_close($socket);            // Close connection
print"<h1>You account has disconnected ! Enter The game !</h1>";
}

/////////////////////////////////////////////////////////
// This will also delete the entry from the database   //
/////////////////////////////////////////////////////////
$dbuuu = "sa";                     //  DB Login
$dbppp = "079181923";                  //  DB Pass
$datab = "MuOnline";                  //  DB Name
$conn  = mssql_connect($host,$dbuuu,$dbppp)
or die ("<h1>Cannot connect to database</h1>");
$selected=mssql_select_db($datab, $conn);
$sql = mssql_query("UPDATE MEMB_STAT SET ConnectStat ='0' WHERE  memb___id='$user'");
mssql_close($conn);
/////////////////////////////////////////////////////////
}

dc_user("127.0.0.1", "55970", $user);         // Run the function: Connect to port 55970 (Joinserver port) and dc the user. Where $user=username

}
else{ echo "
<table width="125" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>'<b>Your Account Is Already Connected' fix</b>
<td width="125" height="24"><form action="" method="post" name="form1" id="form1">
<label>
<INPUT maxLength=10 name=acc value="login">
</label>
</td>
</tr>
<tr>
<td><INPUT class=txt-simple type=password maxLength=10 name=pw value="pass"></td>
</tr>
<tr>
<td align="right">
<label>
<INPUT
type=hidden value=1 name=dc_start>
<input name="Submit" type="submit" id="Submit" value="Disconnect" />
</label>
</form></td>
</tr>
</table>


";

}
?>

Slink

Не один не работает может у когото ещё варианты кикието есть?

STINGER

Как по мне самый лучший выход, это найти джоин сервер с автодисконнектом, тоесть есле чар виснет и на него пытаются зайти, он автоматом дисконится... Стоял у меня этот джоин... кстати нужно поискать...

ASk1992

А не у кого модуля для muweb 0.8 disconnect akk?

GrInYa

скрипты работают толька если ктото застрял а если он на самом деле в онлане то ево не дисконектит

wa-Nadoo

В скрипте от RANDALL пофиксите небольшой баг: переменную $password поменяйте на $pw

DJAKS

а вот такой вопрос вот естли в  Mu Web 0,8  тухнит сервер то сайт пишет што они все онлайн как исправить такой баг подскажыте плизз

Deathless

Цитата: djaks от 2009 Окт. 10, 08:44  а вот такой вопрос вот естли в  Mu Web 0,8  тухнит сервер то сайт пишет што они все онлайн как исправить такой баг подскажыте плизз
Скорее всего с руками проблема, а вообще меняй свой МуВэб 0.8 на что-то поновее.

Atlant

у меня не работает данный скрипт . игрок не выходит из зависания. в чем мб ошибка?

StreetFighter

В скрипте есть баг !
Когда ты онлайн,сворачиваешь му,на сайте дисконишь себя ! (на серве ты онлайн, на сайте нет). Делаешь ресет на сайте,у тебя как бы 1 лвл,делаешь Switch Character у тебя сново 400 лвл. =)

Похожие темы (5)

Сообщений: 15
Просмотров: 13798

Сообщений: 32
Просмотров: 16086

Сообщений: 2
Просмотров: 3506