[Release] AIWeb Public Library

killar4eto

Well-Known Member
Joined
Apr 11, 2009
Messages
917
Reaction score
459

Bulgarian
Code:
Здравейте на всички,
от много време не съм качвал нищо, за което съжалявам, но си имах причина. Та това е клас/библиотека в която може да намерите всичко за вашият собствен Mu Web, всичко нужно от А до Я, ест това е само Public release, и повечето работи не са направени докрай
Оригинален размер на файл-а в редове е 5624, а Public е само 1704

[B][SIZE="4"]ПРОЧЕТИ:[/SIZE][/B] Няма да помагам и обяснявам на никой как се работи с класове и функции, моля този файл да се ползва само от хора които знаят как се работи и могат сами да си подкарват всичко от него ;]

[B][SIZE="4"]Copyright:[/SIZE][/B]Всичко е писано от мен с много идеи от моите приятели overLucked и StoneAngel, а Уеб-а който няма да бъде release-нат е по идея на StoneAngel
English
Code:
Hello to everyone,
from a long time I didn't release anything and I am really sorry about that, but I had my own problems that need to solve. So, that's php library file that includes everything that you need for creating your own Mu Online Website it contains everything from A to Z (warp,reset,register...), but I want you to know that's only Public release, that means does not have everything on 100%. Original file size is 5624 rows in public there's only 1704 but it's enought to have normally working website ;]

[B][SIZE="4"]READ:[/SIZE][/B] I will not teach anyone how to work with that file, so please only people that have some experience to work and test it.

[B][SIZE="4"]Copyright:[/SIZE][/B]Everything is created by Me with a lot of ideas from my friends overLucked and StoneAngel. This project is developed from StoneAngel's idea ;]
Може да видите как изглежда из цялостно като се вкара кода в някой дизайн ;]

HOT -> UPDATE 0.1
DEFCON Security Class
Code:
class defcon_library{

//Deffense state 1
function defcon(){

$backupdir = "backup"; 

echo "<meta http-equiv='REFRESH' content='5;URL=./'>";

if(!is_dir($backupdir)){
	print "<b>".ucfirst($backupdir)."</b> not exist in main directory!";
	print "<br/>I want to create a <b><a href='?func=create'>new</a></b> one";
}
else{
$dirscan = scandir("./");
$num = 1;

foreach($dirscan as $value){
	if(!preg_match("/.php/s", $value)){continue;}
	else{
	
	$addfile = $num++;
	
		if(!is_file("./$backupdir/filelist.beam")){
			$backupfile = fopen("./$backupdir/filelist.beam", "w");	
		}
		else{
				$value = basename($value, ".php");
		
				$vzemi = @file_get_contents($value.".php");
				$vzemi2 = @file_get_contents($backupdir."/".(hash_file('sha512', $value.".php")));
		
				if(!file_exists($backupdir."/".(hash_file('sha512', $value.".php")))){
					$error = 1;
					$status = "<font color='#ffae00'>Not exist</font>";
				}
				elseif(!file_exists($value.".php")){
					$error = 1;
					$status = "<font color='red'>Deleted</font>";
				}
				elseif(base64_decode($vzemi2) != $vzemi){
					$error = 1;
					$status = "<font color='red'>Missing/Change</font> | <a href='?func=restore'>Restore it</a>";
				}
				elseif($error == 0){
						$status = "<font color='green'>OK</font>";
						$backupfile = fopen("./$backupdir/filelist.beam", "w+");
						fwrite($backupfile, $addfile);
						@fclose($backupfile);
				}
				else{}
				print ucfirst($value)."- <a href='?func=backup&fileid=$value.php'>Copy it</a> | <a href='?func=remove&fileid=$value.php'>Remove it</a> | Status: $status<br/>";
		}
		
	}
}

}

//Create directory function
if(htmlspecialchars(addslashes($_GET[func])) == "create"){
	mkdir("./$backupdir") or die("<br/>Can't create <b>".ucfirst($backupdir)."</b>, Windows do not allowed it");
	print "<br/><b>".ucfirst($backupdir)."</b> is created";
	echo "<meta http-equiv='REFRESH' content='2;URL=./'>";
}
//Remove function
elseif(htmlspecialchars(addslashes($_GET[func])) == "remove"){
	unlink(htmlspecialchars(addslashes($_GET[fileid])));
	print "<br/><b>".ucfirst(htmlspecialchars(addslashes($_GET[fileid])))."</b> is removed from main directory!";
	echo "<meta http-equiv='REFRESH' content='2;URL=./'>";	
}
//Backup function
elseif(htmlspecialchars(addslashes($_GET[func])) == "backup"){
if(file_exists(hash_file('sha512', $file))){
	print "<br/><b>".ucfirst(htmlspecialchars(addslashes($_GET[fileid])))."</b> exists in <b>".ucfirst($backupdir)."</b> directory!";
	echo "<meta http-equiv='REFRESH' content='2;URL=./'>";
}
else{
	$file = htmlspecialchars(addslashes($_GET[fileid]));
	$file = hash_file('sha512', $file);
	$getcontent = file_get_contents(htmlspecialchars(addslashes($_GET[fileid])));
	$getcontent = base64_encode($getcontent);
	$newfile = fopen("./$backupdir/$file", "w");
	fwrite($newfile, $getcontent);
	@fclose($newfile);
	print "<br/><b>".ucfirst(htmlspecialchars(addslashes($_GET[fileid])))."</b> is store in <b>".ucfirst($backupdir)."</b> directory!";
	echo "<meta http-equiv='REFRESH' content='2;URL=./'>";
}

}

}

}
 

Attachments

Last edited:

killar4eto

Well-Known Member
Joined
Apr 11, 2009
Messages
917
Reaction score
459
Цял месец писане беше, колко часове разговори имаме с StoneAngel няма да казвам ;] :D :D мога да я обновявам от време на време, защото има още доста неща, които мога да ви предоставя. Искам само от Вас като я ползвате да споменете Copyright-а нищо друго. За мен познанието е за всички хора без изключения!
 
  • Like
Reactions: KoHgoMa and ivowe3

ivowe3

Wiki
Joined
Apr 1, 2009
Messages
1,207
Reaction score
1,266
Много е добро. Имам 1 предложение. Използвайте while место for. Така сайта става по бърз.
 

oveRLuckEd

New Member
Joined
Apr 28, 2008
Messages
1,776
Reaction score
397
На доста места кода може да се направи в пъти по-кратък, но иначе като цяло ми харесва как се е получило :)
 
  • Like
Reactions: killar4eto

MeMoS

Well-Known Member
Joined
Oct 18, 2008
Messages
621
Reaction score
496
едно предложение от мен защо не направите това в масив
Code:
	if($city == "0"){$city = "Lorencia";}
	elseif($city == "1"){$city = "Dungeon";}
	elseif($city == "2"){$city = "Devias";}
	elseif($city == "3"){$city = "Noria";}
	elseif($city == "4"){$city = "LostTower";}
	elseif($city == "5"){$city = "Exile";}
	elseif($city == "6"){$city = "Stadium";}
	elseif($city == "7"){$city = "Atlans";}
	elseif($city == "8"){$city = "Tarkan";}
	elseif($city == "9"){$city = "Devil Square 1";}
	elseif($city == "10"){$city = "Icarus";}
	elseif($city == "11"){$city = "Blood Castle 1";}
	elseif($city == "12"){$city = "Blood Castle 2";}
	elseif($city == "13"){$city = "Blood Castle 3";}
	elseif($city == "14"){$city = "Blood Castle 4";}
	elseif($city == "15"){$city = "Blood Castle 5";}
	elseif($city == "16"){$city = "Blood Castle 6";}
	elseif($city == "17"){$city = "Blood Castle 7";}
	elseif($city == "18"){$city = "Chaos Castle 1";}
	elseif($city == "19"){$city = "Chaos Castle 2";}
	elseif($city == "20"){$city = "Chaos Castle 3";}
	elseif($city == "21"){$city = "Chaos Castle 4";}
	elseif($city == "22"){$city = "Chaos Castle 5";}
	elseif($city == "23"){$city = "Chaos Castle 6";}
	elseif($city == "24"){$city = "Kalima 1";}
	elseif($city == "25"){$city = "Kalima 2";}
	elseif($city == "26"){$city = "Kalima 3";}
	elseif($city == "27"){$city = "Kalima 4";}
	elseif($city == "28"){$city = "Kalima 5";}
	elseif($city == "29"){$city = "Kalima 6";}
	elseif($city == "36"){$city = "Kalima 7(Lost Kalima)";}
	elseif($city == "30"){$city = "Valley of Loren";}
	elseif($city == "31"){$city = "Land of Trials";}
	elseif($city == "33"){$city = "Aida";}
	elseif($city == "34"){$city = "Crywolf Fortress";}
	elseif($city == "37"){$city = "Kantru";}
	elseif($city == "38"){$city = "Kantru 2";}
	elseif($city == "39"){$city = "Kantru 3";}
	elseif($city == "40"){$city = "Silent Map";}
	elseif($city == "41"){$city = "Barracks of Balgass";}
	elseif($city == "42"){$city = "Balgass Refuge";}
	elseif($city == "45"){$city = "Illusion Temple 1";}
	elseif($city == "46"){$city = "Illusion Temple 2";}
	elseif($city == "47"){$city = "Illusion Temple 3";}
	elseif($city == "48"){$city = "Illusion Temple 4";}
	elseif($city == "49"){$city = "Illusion Temple 5";}
	elseif($city == "50"){$city = "Illusion Temple 6";}
	elseif($city == "51"){$city = "Elbeland";}
	elseif($city == "52"){$city = "Blood Castle 8";}
	elseif($city == "53"){$city = "Chaos Castle 7";}
	elseif($city == "56"){$city = "Swamp of Calmness";}
	elseif($city == "57"){$city = "Raklion";}
	elseif($city == "58"){$city = "Raklion Boss";}
	elseif($city == "62"){$city = "Villages Santa";}
	elseif($city == "63"){$city = "Vulcanus";}
	elseif($city == "64"){$city = "Duel Arena";}
	elseif($city == "65"){$city = "Double Gear";}
	elseif($city == "66"){$city = "Double Gear";}
	elseif($city == "67"){$city = "Double Gear";}
	elseif($city == "68"){$city = "Double Gear";}
	elseif($city == "69"){$city = "Empire Fortress";}
	elseif($city == "70"){$city = "Empire Fortress";}
	elseif($city == "71"){$city = "Empire Fortress";}
	elseif($city == "72"){$city = "Empire Fortress";}	
	else{$city=$city;}
 

f0rbidd3n

New Member
Joined
Jun 23, 2010
Messages
1
Reaction score
0
Мм , има полезни работи. Добре форматирано с коментари. Nice Job :p
 

Damian

Team Member
Joined
Jun 12, 2008
Messages
575
Reaction score
551
На пръв поглед виждам някои проблеми.

PHP:
//Function GET Page
	function get_page(){
	$this->x = $_GET[page];
	
	if(isset($this->x)){
		if(is_file("./addons/$this->x.php"))
		{
			include "./addons/$this->x.php";
		}
		else{
			echo "<center><font color='#c42500'>".error480."</font></center>";
		}
	}
	else{
		include "./addons/news.php";
	}
	
	}
//END OF GET Page
Тук не филтрираш "$this->x = $_GET[page];" и може да бъде инклуднат всеки файл от всяка директория.

PHP:
if(isset($_POST[clearme])){
	$char = $_POST[char];
	$kills = $_POST[kills];
	$zen = $_POST[zen];
	$clear = mssql_query("UPDATE Character SET PkCount='0',PkLevel='3',PkTime='0',Money=Money - '$pay' WHERE Name='$char'");
		echo "<font color='GREEN'>".clear_complete."</font>";
	}
При тази част от кода на функцията aiweb_clearpk пак не филстрираш $_POST заявките и може да се направи SQL Injection.

Иначе много добре си направил всички необходими кодове за Му сайт в един клас. Остава само да се научат хората да ползват кода.
 

oveRLuckEd

New Member
Joined
Apr 28, 2008
Messages
1,776
Reaction score
397
На пръв поглед виждам някои проблеми.

PHP:
//Function GET Page
	function get_page(){
	$this->x = $_GET[page];
	
	if(isset($this->x)){
		if(is_file("./addons/$this->x.php"))
		{
			include "./addons/$this->x.php";
		}
		else{
			echo "<center><font color='#c42500'>".error480."</font></center>";
		}
	}
	else{
		include "./addons/news.php";
	}
	
	}
//END OF GET Page
Тук не филтрираш "$this->x = $_GET[page];" и може да бъде инклуднат всеки файл от всяка директория.

PHP:
if(isset($_POST[clearme])){
	$char = $_POST[char];
	$kills = $_POST[kills];
	$zen = $_POST[zen];
	$clear = mssql_query("UPDATE Character SET PkCount='0',PkLevel='3',PkTime='0',Money=Money - '$pay' WHERE Name='$char'");
		echo "<font color='GREEN'>".clear_complete."</font>";
	}
При тази част от кода на функцията aiweb_clearpk пак не филстрираш $_POST заявките и може да се направи SQL Injection.

Иначе много добре си направил всички необходими кодове за Му сайт в един клас. Остава само да се научат хората да ползват кода.
Така е, прав си. Не е достатъчно да се проверява с функцията is_file(), можем да сложим още една проверка с preg_match(), за да сме сигурни, че няма да бъдат използвани нежелани символи. Пример:
PHP:
if(!preg_match("/^[a-z0-9]{1,20}$/ix", $this->x))  echo "Error Initialized.";
това ще позволи да се извикват само файлове съдържащи буквите от a до z и цифрите от 0 до 9, и с дължина на файла между 1 и 20 символа.
За $_POST, няма да давам пример как се защитава, защото е обсъждано хиляди пъти.
 
Last edited:

killar4eto

Well-Known Member
Joined
Apr 11, 2009
Messages
917
Reaction score
459
На пръв поглед виждам някои проблеми.

PHP:
//Function GET Page
	function get_page(){
	$this->x = $_GET[page];
	
	if(isset($this->x)){
		if(is_file("./addons/$this->x.php"))
		{
			include "./addons/$this->x.php";
		}
		else{
			echo "<center><font color='#c42500'>".error480."</font></center>";
		}
	}
	else{
		include "./addons/news.php";
	}
	
	}
//END OF GET Page
Тук не филтрираш "$this->x = $_GET[page];" и може да бъде инклуднат всеки файл от всяка директория.

PHP:
if(isset($_POST[clearme])){
	$char = $_POST[char];
	$kills = $_POST[kills];
	$zen = $_POST[zen];
	$clear = mssql_query("UPDATE Character SET PkCount='0',PkLevel='3',PkTime='0',Money=Money - '$pay' WHERE Name='$char'");
		echo "<font color='GREEN'>".clear_complete."</font>";
	}
При тази част от кода на функцията aiweb_clearpk пак не филстрираш $_POST заявките и може да се направи SQL Injection.

Иначе много добре си направил всички необходими кодове за Му сайт в един клас. Остава само да се научат хората да ползват кода.
Дам, виждам, че съм го изпуснал, много благодаря Damian-не, като се видим някой ден ще те почерпа, някоя Монтана пак ;] :D(wasntme)
 

killar4eto

Well-Known Member
Joined
Apr 11, 2009
Messages
917
Reaction score
459
До вниманието на всички до 2 дена ще добавя нова функция/плугин PvCPU or PvP който до сега не се е ползвал в никой Mu Online сайт и до сега не е писан. Той е готов, в момента си играя да наглася Damage системата. Искам да ви попитам как ще е по - добре да го направя да е срещу CPU или PvP? В момента PvCPU работи без проблем :) има си статистика на попаденията и т.н.т. С него ще може да направите сайта Ви много по - интересен пък и може да напиша и двете PvP & PvCPU и няма да ви казвам колко много евенти могат да се правят с това и каква статистика може да си вадите ;]... А за някои хора това значи и пари ;] :D :D Ще гледам до 2 дена да го направя, да знаете, че ходя на работа нощна смяна, така че може и да закъснея с 2 дена МАКС :D
 
  • Like
Reactions: crazyboy

HOLIGAN

New Member
Joined
May 8, 2012
Messages
237
Reaction score
75
killer4eto не е човек :D Браво пич възхищавам ти се на творенията :)
1000/10000 чакаме го
 
  • Like
Reactions: killar4eto

killar4eto

Well-Known Member
Joined
Apr 11, 2009
Messages
917
Reaction score
459
Ето може да видите до къде съм стигнал... Вие сами може да си направите настройките за колко critical damage да дава на герой, колко deffence и т.н.т :D
 

Attachments

Last edited:

Flame

Well-Known Member
Joined
Sep 22, 2009
Messages
1,488
Reaction score
215
Пич браво! Идеите, които реализираш са наистина добри и оригинални. Допринасяш много към света на Mu Online сървърите. :)
 
  • Like
Reactions: killar4eto

StoneAngel

Well-Known Member
Joined
Apr 13, 2008
Messages
1,077
Reaction score
193
Killar4e ще вземат те целуват скоро пази се ^^
 
Thread starter Similar threads Forum Replies Date
Angerfist Releases 0
DarkMaster Releases 48