ImSoRy Moderatör
Mesaj Sayısı : 56 Başarı Puanı : 234 Rep Puanı : 0 Bölümü : Oyunlar / Webmaster
| Konu: BanSistem Son Nokta Koyuldu [01 Temmuz 2010 Guncellendi] Ptsi Tem. 12, 2010 5:59 am | |
| 95.173.165.43/bansistem.php Sorunsuz Çalışmaktadır Güncellendi. 01 Temmuz 2010 01:11 Çalışma Sistemini Söyliyim. 1-)Oyundan çıkarken eğer authority 255 ise ban zamani ve acilma zamanini sureliban tablosuna yazdir. 2-)Account Login Yaparken Eğer Banlıysa Account Block Hatasi Verir.ve Kalan Sureyi Dakika Cinsinden Güncelletir. 3-)Eğer Kalan Sure 0 dan küçükse Çarın Banını açar DipNot : Örneğin çar ban yedi ve süresi bitti.Oyuncu Giriş yaptı.Ama Account Block diyor. Burda Kalan Sureyi Gunceller.ve 2.Defa Enter a Bastiginda Giriş Yapabilir. Bizzat Test den Geçirilmiştir. Kurulum ; Step 1; Query Anaylzer Kodu Kn_Online Seçip ; - Kod:
-
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SureliBan]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[SureliBan] GO
CREATE TABLE [dbo].[SureliBan] ( [StrUser] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [BanZaman] [datetime] NULL , [BanSayisi] [int] NULL , [KalanSuresi] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [AcilmaTarihi] [datetime] NULL ) ON [PRIMARY] GO
Step 2 Query Anaylzer Kodu Kn_Online Seçip - Kod:
-
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bansistem]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[bansistem] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE [dbo].[bansistem] @char varchar(50) AS --OrcMad Tarafından İlk Paylaşım ; [Linkleri görebilmek için üye olun veya giriş yapın.] 01:25 All Thanks. declare @banzaman datetime, @cikis datetime, @kalansure int, @aut int select @banzaman = banzaman from sureliban where struser = @char select @cikis = acilmatarihi from sureliban where struser = @char select @kalansure = datediff(minute,getdate(),@cikis) select @aut = authority from userdata where struserid = @char if @kalansure < 0 begin update userdata set authority = 1 where struserid = @char update sureliban set kalansuresi = '0' WHERE struser = @char end else begin update sureliban set kalansuresi = datediff(minute,getdate(),@cikis) where struser = @char end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO Step 3 ; Query Anaylzer Kodu Kn_Online Seçip - Kod:
-
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bansistem2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[bansistem2] GO
SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [dbo].[bansistem2] @char varchar(20) AS
declare @aut int, @bansayisi int, @cikis datetime select @bansayisi = bansayisi from sureliban where struser = @char select @aut = authority from userdata where struserid = @char select @cikis = acilmatarihi from sureliban where struser = @char if @aut = '255' and @bansayisi = 0 begin update sureliban set banzaman = getdate(), bansayisi = bansayisi + 1, acilmatarihi = dateadd(dd,1,getdate()),kalansuresi = '1440' where struser = @char end if @aut = '255' and @bansayisi = 1 begin update sureliban set banzaman = getdate(), bansayisi = bansayisi + 1, acilmatarihi = dateadd(dd,3,getdate()),kalansuresi = '4320' where struser = @char end if @aut = '255' and @bansayisi = 2 begin update sureliban set banzaman = getdate(), bansayisi = bansayisi + 1, acilmatarihi = dateadd(dd,5,getdate()),kalansuresi = '10080' where struser = @char end if @aut = '255' and @bansayisi = 3 begin update sureliban set banzaman = getdate(), bansayisi = bansayisi + 1, acilmatarihi = dateadd(dd,9999,getdate()),kalansuresi = '99999' where struser = @char end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
Step 5 Query Analyzer db mizi seçip ctrl v f5 - Kod:
-
alter table userdata add kayit tinyint
[SIZE="4"]Design tableden kayit in default değerini 0 yapınız bunu uygulamassanız sistem çalışmaz.
default value 0 yazın sağ tık save diyin ve çıkın.[/SIZE]Step 6 Account Logout Prosedurune - Kod:
-
declare @charid varchar(50), @kayit tinyint select @charid = strcharid1 from account_char where straccountid = @accountid select @kayit = kayit from userdata where struserid = @charid
if @kayit != 1 begin insert into sureliban (struser,bansayisi) values (@charid,0) -- sureliban tablosuna nikimizi yazdirdik end
update userdata set kayit = '1' where struserid = @charid -- kayidimizi bitirdik
exec bansistem2 @charid
step 7 giriş prosedrunuze benimki myst_login mesela. - Kod:
-
declare @charid varchar(50), @aut tinyint
select @charid = strcharid1 from account_char where straccountid = @accountid select @aut = authority from userdata where struserid = @charid if @aut = 255 --eger char banlıysa begin --basla exec bansistem @charid --bansistem prosedurunu calistir Set @nRet = 4 --- account block hatasini ver ve login yapma RETURN end
step 8 Panel - Kod:
-
<?php ob_start(); session_start();
$dns_Adi = "KN_Online"; //Db Adiniz $dbuser = "kn_online"; //Database güvenlik adi $dbpass = "kn_online"; //database güvenlik sifresi
$conn = odbc_connect("$dns_Adi","$dbuser","$dbpass") or die ("Veri Tabani Bulunamadi.");
?>
<center> <a href="index.php?page=bansistem.php"> Ban Acilmasina Kalan Sure </a> <br />Kalan Sure Dakika Cinsindendir <br />OrcMad Tarafindan Yazilmistir.<br />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> <title>OrcMad Online Top Siralama</title> <style> body{ font-weight:bold; font-family: Geneva, Arial, Helvetica, sans-serif; } a,a:hover{ text-decoration:none; color:orange; }
#Tablo { Width:650px; border-spacing:0; border-padding:0; border:1px solid black; }
#Tablo .baslik{ Height:25px; background:orange; border:1px solid black; } #Tablo td{ color: #990000; border:1px solid black; } .textwhite:hover{ background:grey; }
</style> </head> <?php
echo'<table id="Tablo">';
$results=odbc_exec($conn,"SELECT TOP 50 strUser, struser ,banzaman, acilmatarihi, kalansuresi, bansayisi FROM sureliban ORDER BY str(kalansuresi) DESC"); $sira = 0; echo ' <tr class="Baslik"> <td align="center">Sira</td> <td align="center">Karakter Adi </td> <td align="center">Ban Zamani</td> <td align="center">Acilma Zamani </td> <td align="center">Kalan Dakika</td> <td align="center">Ban Sayisi</td> </tr> '; while (odbc_fetch_row($results)) { $user = odbc_result($results,1); $banzaman = odbc_result($results, 2); $bansayi = odbc_result($results, 3); $kalansuresi = odbc_result($results, 4); $kalan = odbc_result($results, 5); $kalan2 = odbc_result($results, 6);
$sira++;
if ($kalan2 > 0) {
echo ' <tr class="textwhite"> <td align="center">'.$sira.'</td> <td align="center">'.$banzaman.'</td> <td align="center">'.$bansayi.'</td> <td align="center">'.$kalansuresi.'</td> <td align="center">'.$kalan.'</td> <td align="center">'.$kalan2.'</td>
</tr>'; }; } echo '</table>';
?> </body> </html>
Bunları Yaptıgınız Takdirde Sizin Sadece Oyundan Adamı Banlamanız Yeterlidir. O Otomatik Kalan Sureyi Gunceller.Kendi Banını açar. Her gun check_day gibi bir şey yok. | |
|