[Help] Reset Bug

Holder

New Member
Joined
Dec 27, 2010
Messages
434
Reaction score
43
Значи има рестарт бъг в сървърът и за секунди можеш да направи десетки рестарти.

Надявам се някой е имал вземане даване с този бъг и може да каже как се е справил с него. Ползвам S3 Ep1 SCF Files. Ето и начина за правене на бъгът:
1. Влизам в акаунта си и влизам с героя в лоренсиа и съм 400 левел
2. Втори играч влиза в акаунта ми, не му дава да избере герой и той не избира и не влиза да играе и просто излиза от акаунта.
3. Аз отивам в друг град с "м" и влизам в сайта и правя рестарт - успешен. Местя се в Лоренсиа от сайта правя рестарт, местя се в нориа, от сайта правя рестарт и т.н всичките успешни, за секунди и от админ панела гледам как ставам 4, 5, 6, 7 ,8 рестарта и т.н

Проблема според мен е следният:
- Вторият играч като излезе от акаунта, сайта мисли, че акаунта е извън линия.
- Рестарт модулът вижда, че акаунта не е на линия, вижда, че героя ми е 400 левел и като рестартирам той пуска функцията да направи 400 левел на 1-ви в дб, но поради факта, че героя ми е още на линия, не успява или успява, но след като героят смени град пак се появява 400 левел, защото не е излязъл за да се ъпдейтва от дб, а стои в игра, и този цикъл се повтаря постоянно, но въпреки, че модулът не може да ъпдейтва героя на 1-ви левел, успява да добави рестарт в дб-то..

Как да се реши проблема, според мен, но ест нямам идея как да го направя съвети?:
- Сайта като влизаш с малки букви или големи няма никаква разлика, просто си влизаш в акаунта има защита. Но в клиента, явно няма и би трябвало ако акк ми е test и се опитам да вляза с Test да ми изпише, че акаунта е вече в игра а не да ме пусне и да бъгне.
- 2-ри начин за справяне, когато вторият играч излезе да изпише и на първият disconnect..

Абсолютно ми изби разума този бъг, някой нещо да каже (освен, че съм преебан) ?
 
Last edited:
смени датасървърите от тях е проблема!
 
  • Like
Reactions: Wikko0
Пробвах с тези 3-те и бъга пак го има, пробвах и с 4-ти от един фр, датасървъри 1 и 2, но пак го има. Бъгът се получава всъщност като отида от CS в GS тоест Lorencia - DeepLoren и напред назад. Не в Noria - Lorencia объркал съм се. Ето и като изляза какво дава като скриин. Ако няма други насоки да продължа да търся dataserver-и и от по нови версии, дали ще се получи бъг ако им взема датасървърите примерно с4 или с6 ?

http://darksteam.net/releases/[release]-infinitymu-season-3-episode-1-server-files-8648.html
http://darksteam.net/releases/[release]-muserver-season-3-episode-1-a-3618.html
http://darksteam.net/releases/[release]-full-season-3-episode-1-free-15394.html
 

Attachments

  • Untitled.jpg
    Untitled.jpg
    35.5 KB · Views: 22
Last edited:
Еми тествах със 17 датасървъра от с3 някои от по високи, някои даже не тръгнаха бъга става на всеки един от тях.. а това което е на снимката на джоин сървъра го пише всеки път, се вижда как става бъга.. утре ще видя да продължа да търся датасървъри, ако все пак някой има..
 
Най-добре смени версията, защото след като смениш датасървърите могат да възникнат други проблеми.
 
  • Like
Reactions: Wikko0 and nowallz
Е, не няма как да сменявам версия, ще търся дата сървъри и това е. А интересно ми е обаче, как точно dataserver-а прави този бъг, тоест заради дата сървърите, 2-рият играч може да влезе в акаунта и ако не бяха повредени, щеше да го дисконектва и нямаше да може да влезе с главни ?
 
Last edited:
По принцип 1 пич имаше същия проблем. Той го оправи от датасървърите, има само 3 варианта.
1. DataServer
2. JoinServer
3. GameServer

Но GameServer-а зависи от горните 2.
 
  • Like
Reactions: Wikko0
Моля за отговори:

1. Проблем ли е акаунтите да са само от Цифри разбрах, че не се слагат цифри, като защита от SQL - ако махна тази защита какво може да стане ?
2. Докато бях с бъгът, в сайта не ме отчита на линия, но ГМ успя да ме дисконектне с /Disconnect player, има ли шанс, резет модулът, като му е зададено да направи резет на даден играч, преди да направи функцията си, да резетне играчът първо да направи дисконект, подобен на ГМ-то, така че дори и да си с бъгът просто да те диск ?
(Или да се направи job, когато някой ползва модула от сайта GS да ползва командата и да дисконектва играчът преди да е успял да резетне ?) Или нз, някой да се сеща за други опции ?

Ползвах тази команда от QA и очаквах да дисконектне играчите, но не ги дисконектна, само направи така, че в сайта да не изписва, че са на линия, но всички си бяха вътре 3-ма човека, интересно защо:
Code:
UPDATE MEMB_STAT
SET ConnectStat='0'
WHERE ConnectStat>0

Това е модулът, може ли преди да резетне играч да дискне играч като ГМ ?
Code:
<?php
session_start();
include "../../includes/config.php";
include "../../includes/zashtita.php";
if (preg_match("/index.php/", $_SERVER['HTTP_REFERER'])) {
    echo "";
} else {
        echo "<center>ERROR: You must loggin again.</center>";
    exit();
}
$user = secure($_SESSION['member_username']);
global $maxresets;
global $resetlevel;
global $resetmoney;
?>
<form id='reset'>
    <table align='center' width='510' class='maintable'>
	          <div align="center" class="proba2" style="font-size: 15px; padding-top: 3px; padding-bottom: 3px; margin-top: 5px; margin-bottom: 0px;">Reset Character</div>
        <tr>
            <td class="proba">&nbsp;</td>
			 <tr><td class="proba2" align='center'><font class=text-char>Reset Character information:</font></td></tr>
			 <tr><td class="proba1" align='center'><font class=text-char1>1. Maximum restarts: <font class=text-char><?php echo"$maxresets"?></font></font></td></tr>
			 <tr><td class="proba1" align='center'><font class=text-char1>2. Character must be at least <?php echo"$resetlevel"?> level to Reset!</font></td></tr>
			 <tr><td class="proba1" align='center'><font class=text-char1>3. Reset Character costs <?php echo"$resetmoney"?> zen.</font></td></tr>
			 <tr><td class="proba1" align='center'><font class=text-char1>4. Please remove all items from your personal store (Shop) before reset.</font></td></tr>
			 <tr><td class="proba1" align='center'><font class=text-char1>5. After the restart your character will be at level 1. </font></td></tr>
			 <tr><td class="proba1" align='center'><font class=text-char1>6. With every reset you get stronger and stronger.</font></td></tr>
			
  <td>&nbsp;</td>
        </tr>
        <tr>
            <td align='center'>Select Character:

                <select class="button" class='maintable' name='character'><optgroup label='Select a character'>
<?php
$charq = mssql_query("Select name from Character where AccountID='$user'");
for ($i = 0; $i < mssql_num_rows($charq); ++$i) {
    $row = mssql_fetch_row($charq);
    echo"
<option value='$row[0]'><span class='button'><b>$row[0]</span></option>
";
}
?>
                </select>

            </td>
        </tr>
        <tr>
            <td align='center'><input type="button" class="button" value='Reset Character' onclick="restartchar()">
            </td>
        </tr>

    </table>
</form>

<center id="info">
</center>
 
Last edited:
1. Няма смисъл от такова нещо.
2. Може да се направи, но много малко хора го могат.
 
  • Like
Reactions: Wikko0
Като казваш няма смисъл от такова нещо разбирам, че няма смисъл от защитата и не е проблем да се сложи така, че акаунтите да са само от числа ?
 
Като казваш няма смисъл от такова нещо разбирам, че няма смисъл от защитата и не е проблем да се сложи така, че акаунтите да са само от числа ?

кой нормален ще се логва само с числа? Аз не бих. А пробвал ли си има ли значение дали ще влиза с големи с малки или със същите букви цифри и там каквото има.
 
  • Like
Reactions: Wikko0
Еми няма какво да се тества, големи числа няма, има само числа, бъга не може да работи с числа. Смених повече джоин сървъра и повече датасървъра отколкото ми се иска да си спомня, но не можах да оправя бъгът. Ако ми кажеш, че наистина няма значение, дали ще са числа или букви направо правя числа, който не му изнася това е положението, никой не може да ми каже, че не съм опитал, пък и не смятам, че е толкова сериозно да пишеш числа.. драскаш телефонния номер или егн и е пирон в кисело мляко, както се вика..
 
Last edited:
Еми няма какво да се тества, големи числа няма, има само числа, бъга не може да работи с числа. Смених повече джоин сървъра и повече датасървъра отколкото ми се иска да си спомня, но не можах да оправя бъгът. Ако ми кажеш, че наистина няма значение, дали ще са числа или букви направо правя числа, който не му изнася това е положението, никой не може да ми каже, че не съм опитал, пък и не смятам, че е толкова сериозно да пишеш числа.. драскаш телефонния номер или егн и е пирон в кисело мляко, както се вика..

намери ме на скайп ако не съм те блокирал. прати ми клиент и файлове.
 
  • Like
Reactions: Wikko0
Файловете като ми ги дадоха условието беше да не ги давам/продавам, ще ти пратя ТВ като успея и ще ти драсна по скайпа, че не съм у нас. Надявам се така да можеш да помогнеш пак.
 
Решението е :

Enterprise Manager > MuOnline > MEMB_INFO > Design Table > memb___id > Collation > и избираш > Case Sensitive .

MuOnline > warehouse > Design Table > memb___id > Collation > и избираш > Case Sensitive

MuOnline > MEMB_STAT > Design Table > memb___id > Collation > и избираш > Case Sensitive

MuOnline > AccountCharacter > Design Table > memb___id > Collation > и избираш > Case Sensitive

MuOnline > VI_CURR_INFO > Design Table > memb___id > Collation > и избираш > Case Sensitive

55305358d1dae6f4.JPG


Проблеми които ще имаш след това :

- Ако си имал регистриран акаунт например " test " но си влизал в играта с акаунт " Test " , ще трябва да промениш акаунта в таблиците AccountCharacter , warehouse , MEMB_STAT , VI_CURR_INFO иначе в акаунт " test " няма да има никакви герой .

- Трябва да направиш всички акаунти с малки букви и съответно да добавиш strtolower() в register модула .

P.p : Съжалявам ако има правописни грешки но нямам кирилица .
 
Last edited:
  • Like
Reactions: Holder