[Help] Трябва ми 1 скрипт като на Dangerlink

Dea7h

Admiral General Aladeen
Joined
Jan 16, 2009
Messages
1,189
Reaction score
428
Трябва ми 1 скрипт като на Dangerlink и той е следния:
Правиш си герой с име Dark {Blade Knight} например , правиш му няколко реса , триеш го и си правиш герой пак с името Dark {примерно Soul Master} и след като го песнеш да се върнат ресовете от преди да си го изтрил ;):
Със това съм сигорен ,че ще помогнете не само на мен !
Благодаря Ви ! ;P:
 
дам знам че реал ще го праи за реал му-то ^^
 
Това може лесно да се направи. 1-во правиш една таблица с име resets примерно в която ще се записват името на героя и ресовете. Променяш си скрипта за ресовете да проверява колко реса е героя не от таблицата character ами от resets и си готов. Ако ми дадеш малко повече информация за сайта който ползваш ще ти направя скрипта :)
 
Сайта ми e xtyling уеба ;): Ще съм ти мн благодарен :* :D:
 
дай си скайпа. и трябва да ми пратиш сайта за да ти го наглася.
 
това може лесно да се направи. 1-во правиш една таблица с име resets примерно в която ще се записват името на героя и ресовете. променяш си скрипта за ресовете да проверява колко реса е героя не от таблицата character ами от resets и си готов. ако ми дадеш малко повече информация за сайта който ползваш ще ти направя скрипта :)

завърших го, но с нова база данни, не с таблица, написах процедурка за ресет на героите и нещо като лог система, да помни имената на изтрити герои в акаунт, но проблема е 1 гаден бъг, който не можах да оправя и се отказах от всичко....
следния проблем: така във всеки акаунт можеше да се създава същия този герой и се бъгваше цялата игра...
не ви го препоръчвам това :)
 
Сайта ми e xtyling уеба ;): Ще съм ти мн благодарен :* :D:

Понеже не ми даде сайта да ти вкарам скрипта ще те оставя сам да си го вкараш.
Това е необходимата таблица, за да работи скрипта
PHP:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Resets]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Resets]
GO

CREATE TABLE [dbo].[Resets] (
	[AccountID] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
	[Name] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
	[Resets] [int] NOT NULL 
) ON [PRIMARY]
GO
А това е файлът resetok.php
PHP:
<?php include"home.php"; ?>
</style></head><body leftmargin="0" topmargin="0">
<table align="center" border="1" bordercolor="#666666" cellpadding="0" cellspacing="0" frame="vsides" rules="none" width="760">
  <tbody><tr> 
    <td align="left" background="images/left_bg.gif" valign="top" width="204"><img src="images/left_top_news.gif" height="36" width="204">
      <?php include"pictures.php"; ?>
      <?php include"menu.php"; ?></td>
    <td background="images/xu.gif" height="190" width="1"></td>
    <td align="center" bgcolor="#ffffff" valign="top" width="553">	
      <table width="540" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td>&nbsp;</td>
          <td colspan="3">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td width="24">&nbsp;</td>
          <td colspan="3"><div align="center"><span class="style6">Reset Character</span></div></td>
          <td width="28">&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td colspan="3">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="28">&nbsp;</td>
          <td width="10">&nbsp;</td>
          <td width="79">&nbsp;</td>
          <td width="399"><?php

require("config.php");
include_once('sql_check.php');
_OQE01();





$_I6otf=mssql_connect("$_I6ooJ","$_I6Cto","$_I6i8Q");
$_I6iiJ=mssql_select_db("MuOnline",$_I6otf);

$_IfQ8O = stripslashes($_POST['character_name']);
$_I6L6J = stripslashes($_POST['login_name']);
$_IfI86 = stripslashes($_POST['password']);

if (
(eregi("[^a-zA-Z0-9_-]", $_IfQ8O)) ||
(eregi("[^a-zA-Z0-9_-]", $_I6L6J)) ||
(eregi("[^a-zA-Z0-9_-]", $_IfI86)) )
	{
	echo("Please use the following characters: A-Z 0-9");
        exit();
	}


$_IfQ8O = str_replace("'","","$_IfQ8O");
$_IfQ8O = str_replace(" ","","$_IfQ8O");

$_I6L6J = str_replace("'","","$_I6L6J");
$_I6L6J = str_replace(" ","","$_I6L6J");

$_IfI86 = str_replace("'","","$_IfI86");
$_IfI86 = str_replace(" ","","$_IfI86");


$_I6LiQ = mssql_query("SELECT memb___id FROM MEMB_INFO WHERE memb___id='$_I6L6J'"); 
$_I6lI8 = mssql_num_rows($_I6LiQ); 

$_IfjJt = mssql_query("SELECT Name FROM Character WHERE Name='$_IfQ8O' and AccountID = '$_I6L6J'"); 
$_Ifj6C = mssql_num_rows($_IfjJt); 

$_If0IQ = mssql_query("SELECT memb__pwd FROM MEMB_INFO WHERE memb__pwd='$_IfI86' and memb___id='$_I6L6J'"); 
$_If0Lf = mssql_num_rows($_If0IQ); 

$_IftOJ = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$_I6L6J'");
$_IftCJ = mssql_fetch_row($_IftOJ);


if (empty($_IfQ8O) || empty($_I6L6J) || empty($_IfI86)){
	echo " You dont have characters";}

elseif ($_I6lI8 <= 0){ 
echo "Your account doesn't exist. Please go back and try again.";}

elseif ($_Ifj6C <= 0){ 
echo "Your character doesn't exist in your account. Please go back and try again."; }

elseif ($_If0Lf <= 0){ 
echo "The password you entered is incorrect."; }

else{
$_I6J8j = mssql_query("Select Clevel,Resets,Money,LevelUpPoint,Class,ctlcode From Character where Name='$_IfQ8O'");
$_I66L1 = mssql_fetch_row($_I6J8j);
$query=mssql_query("SELECT AccountID,Name,Resets FROM Resets WHERE Name = '$_IfQ8O' AND AccountID = '$_I6L6J'");
if(mssql_num_rows($query)>0){
$result=mssql_fetch_row($query);
if($result[2]!=$_I66L1[1]){mssql_query("update character set resets='$result[2]' WHERE Name = '$_IfQ8O' AND AccountID = '$_I6L6J'");}
}
else{mssql_query("Insert into resets (AccountID,Name,Resets) values ('$_I6L6J','$_IfQ8O','$_I66L1[1]')");}

$_I6J8j = mssql_query("Select Clevel,Resets,Money,LevelUpPoint,Class,ctlcode From Character where Name='$_IfQ8O'");
$_I66L1 = mssql_fetch_row($_I6J8j);

$_IojJQ=$_I66L1[1] + (1);
$_IoJ0t=$_I66L1[2]-$_IfC6I;

$_IoJQl=$_IfC6I;


$_IoJ8t=$_I66L1[1] + 1;

$_IoJLo=$_I66L1[1] * $_IfLIL + $_IfLIL;

if ($_I66L1[1] > $_Ifiof-1){ 
echo "<font color=red><b>You are MAX resets possible, GG!</b>"; }

elseif ($_IftCJ[0] != 0){ 
echo "Please logoff before reset!"; }


elseif ($_I66L1[5]==8){ 
echo "<font color=red><b>Warning! GM cant reset! Good try! XTYLING will bann you :P</b></font>"; }




elseif ($_I66L1[0] < $_IfiQL){ 
echo " You need <font color=red>$_IfiQL</font> lvl to reset, your level is <font color=green>$_I66L1[0]</font>"; }



elseif ($_IoJ0t < 0){ 
echo " You need <font color=red>$_IoJQl</font> zen to reset!"; }






else {

if ($_I66L1[0]>0){
$_If1j0 = "
UPDATE dbo.Character
SET clevel=1
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET Resets = '$_IojJQ'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Resets SET Resets = '$_IojJQ'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET experience = '0'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET money = '$_IoJ0t'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET LevelUpPoint = '$_IoJLo'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET MapNumber = '0'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET MapPosX= '125'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET MapPosY= '125'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET strength = '25'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET dexterity = '25'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET vitality = '25'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET energy = '25'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET LevelUpPoint = '$_IoJLo'
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'
UPDATE dbo.Character SET [inventory]=CONVERT(varbinary(1080), null),[magiclist]=CONVERT(varbinary(180), null)
WHERE Name = '$_IfQ8O'
AND AccountID = '$_I6L6J'";}


$_Io680 = mssql_query($_If1j0);

echo "$_IfQ8O have done $_IoJ8t reset successfully.";
}
}
?></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="28">&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="28">&nbsp;</td>
          <td colspan="3"><p><p></td>
          <td>&nbsp;</td>
        </tr>
      </table>
    </td>
  </tr>
</tbody></table>
</body></html>
 
пич много ти благодаря :*:*:*:*:* да си жив и здрав ! :p
 
Някой може ли да ми настрои този файл от сайта ми.Ползвам Eva Web 0.2b.
Ще съм много благодарен а заявката за SQL съм я направил.Предварително благодаря :)
 

Attachments

  • reset.rar
    1.4 KB · Views: 2
Това ти е кода с включените промени. Не е зле другият път да се потрудиш малко сам :)

PHP:
<?php
session_start();
$request = $_SERVER['REQUEST_METHOD'];
if ($request == 'GET'){
	header("Location: $domein/index/home");
}
define('IN_VALID',True);
require('config.php');
if((isset($_POST['name']))){
$username = $_SESSION['uid'];
$name = addslashes(htmlspecialchars($_POST['name']));

$accountstatus = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='".$name."'") or die ('Немога да изпълня заявката!');
$row = mssql_fetch_assoc($accountstatus);

$characterinfo = mssql_query("SELECT cLevel,Resets,Money,LevelUpPoint,Class From Character where Name='".$name."'") or die ('Немога да изпълня заявката!');
$charinfo = mssql_fetch_assoc($characterinfo) or die ('Немога да изпълня заявката!');

$reseets = $charinfo['Resets']; // 1
$money = $charinfo['Money']; // 2 
$upts = $charinfo['LevelUpPoint']; // 3
$level = $charinfo['cLevel']; // 4
$resets = ($reseets + 1);

	if ($web['ExtraReset'] == 'Yes'){
	$resetmoeny = ($money - ($web['resetmoney']) * ($resets));
	$resetpoints = $upts + ($web['resetpoints']);
	}else{
		$resetmoeny = ($money - ($web['resetmoney']));
		$resetpoints = ($upts + ($web['resetpoints']));
	}
	
//print_r($charinfo);

if(empty($name)){
	$error = 'Не сте избрали герой или нямате такъв';
	$_SESSION['error'] = $error;
	header("Location: $domein/index/resetchar");
}else{
	if($row == 1){
	$error = 'Акаунта е в игра и неможете да резетнете героят си!';
	$_SESSION['error'] = $error;
	header("Location: $domein/index/resetchar");
	}else{
		 if ($resetmoeny < 0){
			if($web['ExtraReset'] == 'Yes'){
				$extrareset = ($web['resetmoney'] * $resets);
			}else{
				$extrareset = ($web['resetmoney']);
			}
			$error = 'На '.$name.' му трявбат '.number_format($extrareset).' Zen за резет!';
			$_SESSION['error'] = $error;
			header("Location: $domein/index/resetchar");
		}else{
			if ($resets > $web['maxresets']){
            $error = 'Резет лимита е ' .$web['maxresets']. ' неможете да резетнете героят си!';
			$_SESSION['error'] = $error;
			header("Location: $domein/index/resetchar");
				}elseif ($level < $web['resetlevel']){
					$error = 'Левелът за резет е '.$web['resetlevel'].' вие сте ' .$level. '';
					$_SESSION['error'] = $error;
					header("Location: $domein/index/resetchar");
				}else{
						$query=mssql_query("SELECT AccountID,Name,Resets FROM Resets WHERE Name = '$name' AND AccountID = '$username'"); 

						if(mssql_num_rows($query) > 0) {
							$result=mssql_fetch_row($query); 

							if($result[2] != $reseets) {
								mssql_query("update character set resets='$result[2]' WHERE Name = '$name' AND AccountID = '$username'");
							} 
						} 
						else {
							mssql_query("Insert into resets (AccountID,Name,Resets) values ('$username','$name','$reseets')");
						}

						mssql_query("UPDATE Resets SET Resets = '$resets' WHERE Name = '$name' AND AccountID = '$username'");

						if (($web['resetmode'] == 'No')){ // Keep stats
							$sql = "UPDATE Character SET [clevel]='1',[experience]='0',[money]='$resetmoeny',[LevelUpPoint]='$resetpoints',[resets]='$resets' WHERE name='".$name."'";
							$result = mssql_query($sql) or die ('Немога да изпълня заявката :(');
						}elseif (($web['resetmode'] == 'Yes')){ // Reset Stats
							$sql = "UPDATE Character SET [strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[clevel]='1',[experience]='0',[money]='$resetmoeny',[LevelUpPoint]='$resetpoints',[resets]='$resets' WHERE name='".$name."'";
							$result = mssql_query($sql) or die ('Немога да изпълня заявката :(');
						}
						if($web['clear_iventory'] == 'Yes' && $web['clear_skills'] == 'Yes'){
							$sql = "UPDATE Character SET [inventory]=CONVERT(varbinary(1080), null),[magiclist]=CONVERT(varbinary(180), null) WHERE name='".$name."'";
							$result = mssql_query($sql) or die ('Немога да изпълня заявката :(');
						}elseif ($web['clear_iventory'] == 'No' && $web['clear_skills'] == 'No'){
							$sql = "Select name from character where name='".$name."'";
							$result = mssql_query($sql) or die ('Немога да изпълня заявката :(');
						}elseif ($web['clear_iventory'] == 'Yes' && $web['clear_skills'] == 'No'){
							$sql = "UPDATE Character SET [inventory]=CONVERT(varbinary(1080), null) WHERE name='".$name."'";
							$result = mssql_query($sql) or die ('Немога да изпълня заявката :(');
						}elseif ($web['clear_iventory'] == 'No' && $web['clear_skills'] == 'Yes'){
							$sql = "UPDATE Character SET [magiclist]=CONVERT(varbinary(180), null) WHERE name='".$name."'";
							$result = mssql_query($sql) or die ('Немога да изпълня заявката :(');
							}
							$success = 'Вашият герой е резетнат успешно :)';
							$_SESSION['success'] = $success;
							header("Location: $domein/index/resetchar");
						}
					}
				}				
			}		
		}else{
			$error = 'Не сте избрали герой или нямате такъв!';
			$_SESSION['error'] = $error;
			header("Location: $domein/index/resetchar");
		}
?>

Ако имаш webshop ще трябва да помислиш малко върху
PHP:
if($result[2] != $reseets) {
       mssql_query("update character set resets='$result[2]' WHERE Name = '$name' AND AccountID = '$username'");
}
Сега ресовете на героя се възстановяват ако текущите ресове са различни от тези записани в таблицата Resets.
 
Last edited:
  • Like
Reactions: Wikko0
Много ти благодаря. :) а относно ресовете ако някой си купи рес и ресни после няма да му се изгубят май.
 
Може да направиш кода по следния начин
PHP:
if($result[2] != $reseets && !$reseets) {
       mssql_query("update character set resets='$result[2]' WHERE Name = '$name' AND AccountID = '$username'");
}

По този начин ще се възстановят ресовете само ако героя има 0 ресове, а в Resets има записан друг брой.
 
Това в reset.php трябва да сложа нали ?
И също от webshop като добавям ресове ги записва само в Character ако можеш и там да го направи да записва в Ресет ще си златен : )
 

Attachments

  • resets.rar
    1.5 KB · Views: 2
Last edited: