- <li data-xf-list-type="ul">Dosyaları indirmek istemeyen arkadaşlar için konu içerisinde
Kod:
şeklinde paylaşacağım. [LIST][*]Editlenecek yerler;[/LIST] [LIST][*]acil.sql & acik_teklif.sql dosyalarını Notepad++ ile açın ve " serverip " yazan yerlere kendi server ip'nizi yazın.[/LIST] [LIST][*]Daha sonra bu dosyaları Player içine aktarın.[/LIST] [LIST][*]Questinizi ekleyip ./qc çektikten sonra açık artırma sistemini başarılı bir şekilde serverınıza yüklemiş olacaksınız.[/LIST][/B] [/LIST] [B][CODE title="acik.sql :"]Navicat MySQL Data Transfer Source Server : M2-Almire Source Server Version : 50077 Source Host : serverip:3306 Source Database : player Target Server Type : MYSQL Target Server Version : 50077 File Encoding : 65001 Date: 2014-02-05 00:39:56 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `acik` -- ---------------------------- DROP TABLE IF EXISTS `acik`; CREATE TABLE `acik` ( `id` int(11) NOT NULL auto_increment, `item_id` int(11) default NULL, `owner_id` int(11) default NULL, `istenen` int(11) default NULL, `sure` int(11) default NULL, `item_vnum` int(11) default NULL, `tas1` int(11) default NULL, `tas2` int(11) default NULL, `tas3` int(11) default NULL, `efsun1` int(11) default NULL, `efsun1deger` int(11) default NULL, `efsun2` int(11) default NULL, `efsun2deger` int(11) default NULL, `efsun3` int(11) default NULL, `efsun3deger` int(11) default NULL, `efsun4` int(11) default NULL, `efsun4deger` int(11) default NULL, `efsun5` int(11) default NULL, `efsun5deger` int(11) default NULL, `baslik` text character set latin1 collate latin1_general_ci, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=37 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of acik -- ---------------------------- INSERT INTO `acik` VALUES ('35', '17680080', '321399560', '1111', null, '19', '28432', '0', '0', '12', '8', '18', '15', '13', '8', '21', '15', '0', '0', 'K&#253;l&#253;ç'); INSERT INTO `acik` VALUES ('36', '17680195', '321399559', '1', null, '11820', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'sss');
Kod:Navicat MySQL Data Transfer Source Server : M2-Almire Source Server Version : 50077 Source Host : serverip:3306 Source Database : player Target Server Type : MYSQL Target Server Version : 50077 File Encoding : 65001 Date: 2014-02-05 00:39:48 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `acik_teklif` -- ---------------------------- DROP TABLE IF EXISTS `acik_teklif`; CREATE TABLE `acik_teklif` ( `id` int(11) NOT NULL auto_increment, `teklif_id` int(11) NOT NULL, `teklif_veren` text character set latin1 collate latin1_general_ci NOT NULL, `teklif` int(11) NOT NULL, `teklif_durum` int(11) NOT NULL default '0', `owner_id` int(11) NOT NULL, `baslik` text character set latin1 collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of acik_teklif -- ----------------------------
Kod:quest acik_arttirma begin state start begin when 20087.chat."Açık Arttırma Sistemi Bilgi" begin say_title("Merhaba "..pc.get_name()..":") say("Açık arttırma sistemi sayesinde oyuncular[ENTER]sattıkları itemleri aralarında değerini[ENTER]biçip satabilir.") say("Tek yapman gereken itemini üzerime sürüklemek.") end when login begin acik_arttirm****f_sil() end when login begin local bakiyorum = mysql_query10('SELECT * FROM player.acik_teklif WHERE teklif_veren = \"'..pc.get_name()..'\" and teklif_durum > \"0\"') if(table.getn(bakiyorum) >= 1) then chat("Açık arttırmada tekliflerinizden biri sonuçlanmış.") chat("Sonucu öğrenmek için "..mob_name(20087).." NPC'sine gidin.") return end end when 20087.chat."Açık Arttırma Sistemi" begin say_title("Merhaba "..pc.get_name().." :") say("Açık arttırmaya hoş geldin ne yapmak istiyorsun?") say("") local menu = select("İtemlerime Bak ", "İtem Ara ", "Tekliflerim ","Kapat ") if menu == 4 then return elseif menu == 1 then local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = acik_arttirma.item_cek() say("İtemler Sıralandı ") say("") table.insert(baslik,"Vazgeç ") local sirala = select_table(baslik) if(table.getn(baslik) == sirala) then return; end pc.setqf("vnum",item_vnum[sirala]) pc.setqf("tas1",tas1[sirala]) pc.setqf("tas2",tas2[sirala]) pc.setqf("tas3",tas3[sirala]) pc.setqf("efsun1",efsun1[sirala]) pc.setqf("efsun2",efsun2[sirala]) pc.setqf("efsun3",efsun3[sirala]) pc.setqf("efsun4",efsun4[sirala]) pc.setqf("efsun5",efsun5[sirala]) pc.setqf("item_id",item_id[sirala]) pc.setqf("acik_id",id[sirala]) say_title(baslik[sirala].." özellikleri: ") say_item_vnum(pc.getqf("vnum")) local tas1,tas2,tas3,efsun1,efsun2,efsun3,efsun4,efsun5 = acik_arttirma.tas(pc.getqf("tas1")),acik_arttirma.tas(pc.getqf("tas2")),acik_arttirma.tas(pc.getqf("tas3")),acik_arttirma.efsun(pc.getqf("efsun1")),acik_arttirma.efsun(pc.getqf("efsun2")),acik_arttirma.efsun(pc.getqf("efsun3")),acik_arttirma.efsun(pc.getqf("efsun4")),acik_arttirma.efsun(pc.getqf("efsun5")) say_reward("Efsunlar :") say("1.Efsun: "..efsun1.." "..efsun1deger[sirala].." ") say("2.Efsun: "..efsun2.." "..efsun2deger[sirala].." ") say("3.Efsun: "..efsun3.." "..efsun3deger[sirala].." ") say("4.Efsun: "..efsun4.." "..efsun4deger[sirala].." ") say("5.Efsun: "..efsun5.." "..efsun5deger[sirala].." ") wait() say("") say("") say_reward("Taşlar :") say("1.Taş: "..tas1) say("2.Taş: "..tas2) say("3.Taş: "..tas3) say("") local secim = select("İtemi Geri Al ", "Tekliflere Göz At ", "Vazgeç ") if secim == 3 then acik_arttirm****f_sil() return elseif secim == 1 then say(""..item_name(pc.getqf("vnum")).." itemini nesne marketten[ENTER]geri alabilirsin.") local window = "MALL" local bul_beni = mysql_query10('SELECT * FROM player.player WHERE name = \"'..pc.get_name()..'\"') local ben = bul_beni.id[1] local mall_check = mysql_query10('SELECT pos FROM player.item WHERE owner_id = \"'..ben..'\" and window = \"'..window..'\" ORDER BY id DESC LIMIT 1') local pos if(table.getn(mall_check) == 0) then pos = 0 else pos = mall_check.pos[1]+1 end mysql_query10('INSERT INTO player.item (owner_id,window,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4) VALUES (\"'..pc.get_account_id()..'\",\"'..window..'\",\"'..pos..'\",\"1\",\"'..pc.getqf("vnum")..'\",\"'..pc.getqf("tas1")..'\",\"'..pc.getqf("tas2")..'\",\"'..pc.getqf("tas3")..'\",\"'..pc.getqf("efsun1")..'\",\"'..efsun1deger[sirala]..'\",\"'..pc.getqf("efsun2")..'\",\"'..efsun2deger[sirala]..'\",\"'..pc.getqf("efsun3")..'\",\"'..efsun3deger[sirala]..'\",\"'..pc.getqf("efsun4")..'\",\"'..efsun4deger[sirala]..'\",\"'..pc.getqf("efsun5")..'\",\"'..efsun5deger[sirala]..'\")') mysql_query10('DELETE FROM player.acik WHERE item_id = \"'..pc.getqf("item_id")..'\"') acik_arttirm****f_sil() elseif secim == 2 then say_title("Açık Arttırma: ") local teklif,teklif_veren,teklif_id,owner_id = acik_arttirma.teklif_cek(pc.getqf("acik_id")) say("Teklifler Sıralandı ") say("") say_reward("NOT: Teklif veren oyuncular sıralanmıştır.") table.insert(teklif_veren,"Vazgeç ") local sirala = select_table(teklif_veren) if(table.getn(teklif_veren) == sirala) then return; end say_title("Teklif Bilgileri :") say("") say("Teklifi Veren Oyuncu : "..teklif_veren[sirala]) say("Teklifi : "..teklif[sirala]) pc.setqf("teklif",teklif[sirala]) say("") say("") local karar = select("Teklifi Kabul Et ", "Teklifi Red Et ") if karar == 2 then say("Teklif reddedilmiştir.") acik_arttirm****f_sil() mysql_query10('UPDATE player.acik_teklif SET teklif_durum = \"1\" WHERE teklif_veren = \"'..teklif_veren[sirala]..'\" and teklif_id = \"'..teklif_id[sirala]..'\"') else say("Teklif kabul edildi.") say(teklif[sirala].." yang kazandınız.") pc.change_gold(pc.getqf("teklif")) local window = 'MALL' local teklif_idd = mysql_query10('SELECT * FROM player.player WHERE name = \"'..teklif_veren[sirala]..'\"') local teklif_veren_id = teklif_idd.account_id[1] local mall_check = mysql_query10('SELECT pos FROM player.item WHERE owner_id = \"'..teklif_veren_id..'\" and window = \"'..window..'\" ORDER BY id DESC LIMIT 1') local pos if(table.getn(mall_check) == 0) then pos = 0 else pos = mall_check.pos[1]+1 end local benim_id = pc.get_account_id() local item_bul = mysql_query10('SELECT * FROM player.acik WHERE id = \"'..teklif_id[sirala]..'\" and owner_id = \"'..benim_id..'\"') mysql_query10('INSERT INTO player.item (owner_id,window,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4) VALUES (\"'..teklif_veren_id..'\",\"'..window..'\",\"'..pos..'\",\"1\",\"'..item_bul.item_vnum[1]..'\",\"'..item_bul.tas1[1]..'\",\"'..item_bul.tas2[1]..'\",\"'..item_bul.tas3[1]..'\",\"'..item_bul.efsun1[1]..'\",\"'..item_bul.efsun1deger[1]..'\",\"'..item_bul.efsun2[1]..'\",\"'..item_bul.efsun2deger[1]..'\",\"'..item_bul.efsun3[1]..'\",\"'..item_bul.efsun3deger[1]..'\",\"'..item_bul.efsun4[1]..'\",\"'..item_bul.efsun4deger[1]..'\",\"'..item_bul.efsun5[1]..'\",\"'..item_bul.efsun5deger[1]..'\")') mysql_query10('DELETE FROM player.acik WHERE item_id = \"'..item_bul.item_id[1]..'\"') mysql_query10('DELETE FROM player.acik_teklif WHERE teklif_id = \"'..teklif_id[sirala]..'\"') mysql_query10('UPDATE player.acik_teklif SET teklif_durum = \"2\" WHERE teklif_veren = \"'..teklif_veren[sirala]..'\" and teklif_id = \"'..teklif_id[sirala]..'\"') say("İtem "..teklif_veren[sirala].." oyuncusuna gönderildi.") acik_arttirm****f_sil() end end elseif menu == 2 then say_title("Açık Arttırma Sistemi: ") say("") say("Neye göre item aramak istiyorsunuz?") say("") local ara = select("Kod İle ", "Oyuncu İsmi İle ", "Rastgele ","Kapat ") if ara == 4 then return elseif ara == 1 then say_title("Açık Arttırma:") say("") say("Aramak istediğin itemin kodunu yaz.") say("") local kod = tonumber(input()) if kod == "" or kod == nil or kod == 0 then say("Boş bırakamazsın!") else local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = acik_arttirma.item_ara_kod(kod) say("İtemler Sıralandı ") say("") table.insert(baslik,"Vazgeç ") local sirala = select_table(baslik) if(table.getn(baslik) == sirala) then return; end pc.setqf("vnum",item_vnum[sirala]) pc.setqf("tas1",tas1[sirala]) pc.setqf("tas2",tas2[sirala]) pc.setqf("tas3",tas3[sirala]) pc.setqf("efsun1",efsun1[sirala]) pc.setqf("efsun2",efsun2[sirala]) pc.setqf("efsun3",efsun3[sirala]) pc.setqf("efsun4",efsun4[sirala]) pc.setqf("efsun5",efsun5[sirala]) pc.setqf("item_id",item_id[sirala]) pc.setqf("acik_id",id[sirala]) pc.setqf("owner_id",owner_id[sirala]) say_title(baslik[sirala].." özellikleri: ") say_item_vnum(pc.getqf("vnum")) local tas1,tas2,tas3,efsun1,efsun2,efsun3,efsun4,efsun5 = acik_arttirma.tas(pc.getqf("tas1")),acik_arttirma.tas(pc.getqf("tas2")),acik_arttirma.tas(pc.getqf("tas3")),acik_arttirma.efsun(pc.getqf("efsun1")),acik_arttirma.efsun(pc.getqf("efsun2")),acik_arttirma.efsun(pc.getqf("efsun3")),acik_arttirma.efsun(pc.getqf("efsun4")),acik_arttirma.efsun(pc.getqf("efsun5")) say_reward("Efsunlar :") say("1.Efsun: "..efsun1.." "..efsun1deger[sirala].." ") say("2.Efsun: "..efsun2.." "..efsun2deger[sirala].." ") say("3.Efsun: "..efsun3.." "..efsun3deger[sirala].." ") say("4.Efsun: "..efsun4.." "..efsun4deger[sirala].." ") say("5.Efsun: "..efsun5.." "..efsun5deger[sirala].." ") wait() say("") say("") say_reward("Taşlar :") say("1.Taş: "..tas1) say("2.Taş: "..tas2) say("3.Taş: "..tas3) say("") say("İtem için istenen minimum fiyat : ") say_reward(istenen[sirala].." Yang ") local karar = select("Teklif Ver ", "Vazgeç ") if karar == 2 then say("Demek bu itemi beğenmedin.") say("") acik_arttirm****f_sil() return else local bak_bakayim = mysql_query10('SELECT * FROM player.acik_teklif WHERE teklif_veren = \"'..pc.get_name()..'\" and teklif_id = \"'..pc.getqf("acik_id")..'\"') if(table.getn(bak_bakayim) >= 1) then say("Bu iteme daha önce teklifte bulunmuşsunuz.") return end say_title("Açık Arttırma:") say("") say("Bu item için ne kadar teklif vermek[ENTER]istiyorsun?") local teklif = tonumber(input()) if teklif == 0 or teklif == "0" or teklif == nil then say("HATA!") acik_arttirm****f_sil() return else if pc.get_gold() < teklif then say("Yeteri kadar paran yok.") acik_arttirm****f_sil() return else pc.setqf("istenen",istenen[sirala]) local istenen = pc.getqf("istenen") if teklif <= istenen then say("İstenen fiyattan düşük bir fiyat[ENTER]veya eşit bir değer ") say("girdiniz. İstenen değerden daha yüksek bir[ENTER]teklifte bulunmalısınız.") acik_arttirm****f_sil() return else say_title("Açık Arttırma:") say("") mysql_query10('INSERT INTO player.acik_teklif (teklif_id,teklif_veren,teklif,teklif_durum,owner_id,baslik) VALUES (\"'..pc.getqf("acik_id")..'\",\"'..pc.get_name()..'\",\"'..teklif..'\",\"0\",\"'..pc.getqf("owner_id")..'\",\"'..baslik[sirala]..'\")') say(item_name(pc.getqf("vnum")).." itemine "..teklif.." yang verdiniz. ") pc.change_gold(-teklif) acik_arttirm****f_sil() end end end end end elseif ara == 2 then say_title("Açık Arttırma:") say("") say("Aramak istediğin kişinin adını yaz.") say_reward("Aradığın oyuncunun rastgele [ENTER]5 itemi sıralanır.") say("") local kod = input() if kod == "" or kod == nil or kod == 0 or kod == pc.get_name() then say("Boş bırakamazsın!") else local ara_kocum = mysql_query10('SELECT * FROM player.player WHERE name = \"'..kod..'\"') if(table.getn(ara_kocum) == 0) then say("Aradığınız oyuncu bulunamadı.") return end local id_ne = ara_kocum.account_id[1] local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = acik_arttirma.item_ara_isim(id_ne) say("İtemler Sıralandı ") say("") table.insert(baslik,"Vazgeç ") local sirala = select_table(baslik) if(table.getn(baslik) == sirala) then return; end pc.setqf("vnum",item_vnum[sirala]) pc.setqf("tas1",tas1[sirala]) pc.setqf("tas2",tas2[sirala]) pc.setqf("tas3",tas3[sirala]) pc.setqf("efsun1",efsun1[sirala]) pc.setqf("efsun2",efsun2[sirala]) pc.setqf("efsun3",efsun3[sirala]) pc.setqf("efsun4",efsun4[sirala]) pc.setqf("efsun5",efsun5[sirala]) pc.setqf("item_id",item_id[sirala]) pc.setqf("acik_id",id[sirala]) pc.setqf("owner_id",owner_id[sirala]) say_title(baslik[sirala].." özellikleri: ") say_item_vnum(pc.getqf("vnum")) local tas1,tas2,tas3,efsun1,efsun2,efsun3,efsun4,efsun5 = acik_arttirma.tas(pc.getqf("tas1")),acik_arttirma.tas(pc.getqf("tas2")),acik_arttirma.tas(pc.getqf("tas3")),acik_arttirma.efsun(pc.getqf("efsun1")),acik_arttirma.efsun(pc.getqf("efsun2")),acik_arttirma.efsun(pc.getqf("efsun3")),acik_arttirma.efsun(pc.getqf("efsun4")),acik_arttirma.efsun(pc.getqf("efsun5")) say_reward("Efsunlar :") say("1.Efsun: "..efsun1.." "..efsun1deger[sirala].." ") say("2.Efsun: "..efsun2.." "..efsun2deger[sirala].." ") say("3.Efsun: "..efsun3.." "..efsun3deger[sirala].." ") say("4.Efsun: "..efsun4.." "..efsun4deger[sirala].." ") say("5.Efsun: "..efsun5.." "..efsun5deger[sirala].." ") wait() say("") say("") say_reward("Taşlar :") say("1.Taş: "..tas1) say("2.Taş: "..tas2) say("3.Taş: "..tas3) say("") say("İtem için istenen minimum fiyat : ") say_reward(istenen[sirala].." Yang ") local karar = select("Teklif Ver ", "Vazgeç ") if karar == 2 then say("Demek bu itemi beğenmedin.") say("") acik_arttirm****f_sil() return else local bak_bakayim = mysql_query10('SELECT * FROM player.acik_teklif WHERE teklif_veren = \"'..pc.get_name()..'\" and teklif_id = \"'..pc.getqf("acik_id")..'\"') if(table.getn(bak_bakayim) >= 1) then say("Bu iteme daha önce teklifte bulunmuşsunuz.") return end say_title("Açık Arttırma:") say("") say("Bu item için ne kadar teklif vermek[ENTER]istiyorsun?") local teklif = tonumber(input()) if teklif == 0 or teklif == "0" or teklif == nil then say("HATA!") acik_arttirm****f_sil() return else if pc.get_gold() < teklif then say("Yeteri kadar paran yok.") acik_arttirm****f_sil() return else pc.setqf("istenen",istenen[sirala]) local istenen = pc.getqf("istenen") if teklif <= istenen then say("İstenen fiyattan düşük bir fiyat[ENTER]veya eşit bir değer ") say("girdiniz. İstenen değerden daha yüksek bir[ENTER]teklifte bulunmalısınız.") acik_arttirm****f_sil() return else say_title("Açık Arttırma:") say("") mysql_query10('INSERT INTO player.acik_teklif (teklif_id,teklif_veren,teklif,teklif_durum,owner_id,baslik) VALUES (\"'..pc.getqf("acik_id")..'\",\"'..pc.get_name()..'\",\"'..teklif..'\",\"0\",\"'..pc.getqf("owner_id")..'\",\"'..baslik[sirala]..'\")') say(item_name(pc.getqf("vnum")).." itemine "..teklif.." yang verdiniz. ") pc.change_gold(-teklif) acik_arttirm****f_sil() end end end end end elseif ara == 3 then say_title("Açık Arttırma:") say("") say("Demek şansını denemek istiyorsun.") say("Rastgele 5 item sıralanıyor.") wait() local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = acik_arttirma.item_ara_rast() say("İtemler Sıralandı ") say("") table.insert(baslik,"Vazgeç ") local sirala = select_table(baslik) if(table.getn(baslik) == sirala) then return; end pc.setqf("vnum",item_vnum[sirala]) pc.setqf("tas1",tas1[sirala]) pc.setqf("tas2",tas2[sirala]) pc.setqf("tas3",tas3[sirala]) pc.setqf("efsun1",efsun1[sirala]) pc.setqf("efsun2",efsun2[sirala]) pc.setqf("efsun3",efsun3[sirala]) pc.setqf("efsun4",efsun4[sirala]) pc.setqf("efsun5",efsun5[sirala]) pc.setqf("item_id",item_id[sirala]) pc.setqf("acik_id",id[sirala]) pc.setqf("owner_id",owner_id[sirala]) say_title(baslik[sirala].." özellikleri: ") say_item_vnum(pc.getqf("vnum")) local tas1,tas2,tas3,efsun1,efsun2,efsun3,efsun4,efsun5 = acik_arttirma.tas(pc.getqf("tas1")),acik_arttirma.tas(pc.getqf("tas2")),acik_arttirma.tas(pc.getqf("tas3")),acik_arttirma.efsun(pc.getqf("efsun1")),acik_arttirma.efsun(pc.getqf("efsun2")),acik_arttirma.efsun(pc.getqf("efsun3")),acik_arttirma.efsun(pc.getqf("efsun4")),acik_arttirma.efsun(pc.getqf("efsun5")) say_reward("Efsunlar :") say("1.Efsun: "..efsun1.." "..efsun1deger[sirala].." ") say("2.Efsun: "..efsun2.." "..efsun2deger[sirala].." ") say("3.Efsun: "..efsun3.." "..efsun3deger[sirala].." ") say("4.Efsun: "..efsun4.." "..efsun4deger[sirala].." ") say("5.Efsun: "..efsun5.." "..efsun5deger[sirala].." ") wait() say("") say("") say_reward("Taşlar :") say("1.Taş: "..tas1) say("2.Taş: "..tas2) say("3.Taş: "..tas3) say("") say("İtem için istenen minimum fiyat : ") say_reward(istenen[sirala].." Yang ") local karar = select("Teklif Ver ", "Vazgeç ") if karar == 2 then say("Demek bu itemi beğenmedin.") say("") acik_arttirm****f_sil() return else local bak_bakayim = mysql_query10('SELECT * FROM player.acik_teklif WHERE teklif_veren = \"'..pc.get_name()..'\" and teklif_id = \"'..pc.getqf("acik_id")..'\"') if(table.getn(bak_bakayim) >= 1) then say("Bu iteme daha önce teklifte bulunmuşsunuz.") return end say_title("Açık Arttırma:") say("") say("Bu item için ne kadar teklif vermek[ENTER]istiyorsun?") local teklif = tonumber(input()) if teklif == 0 or teklif == "0" or teklif == nil then say("HATA!") acik_arttirm****f_sil() return else if pc.get_gold() < teklif then say("Yeteri kadar paran yok.") acik_arttirm****f_sil() return else pc.setqf("istenen",istenen[sirala]) local istenen = pc.getqf("istenen") if teklif <= istenen then say("İstenen fiyattan düşük bir fiyat[ENTER]veya eşit bir değer ") say("girdiniz. İstenen değerden daha yüksek bir[ENTER]teklifte bulunmalısınız.") acik_arttirm****f_sil() return else say_title("Açık Arttırma:") say("") mysql_query10('INSERT INTO player.acik_teklif (teklif_id,teklif_veren,teklif,teklif_durum,owner_id,baslik) VALUES (\"'..pc.getqf("acik_id")..'\",\"'..pc.get_name()..'\",\"'..teklif..'\",\"0\",\"'..pc.getqf("owner_id")..'\",\"'..baslik[sirala]..'\")') say(item_name(pc.getqf("vnum")).." itemine "..teklif.." yang verdiniz. ") pc.change_gold(-teklif) acik_arttirm****f_sil() end end end end end elseif menu == 3 then say_title("Açık Arttırma: ") local teklif,teklif_veren,teklif_id,owner_id,baslik,teklif_durum = acik_arttirma.tekliflerim() say("Teklifler Sıralandı ") say("") say_reward("NOT: Rastgele 5 tanesi sıralandı.") table.insert(baslik,"Vazgeç ") local sirala = select_table(baslik) if(table.getn(baslik) == sirala) then return; end pc.setqf("teklif_id",teklif_id[sirala]) pc.setqf("teklif_durum",teklif_durum[sirala]) local durum = pc.getqf("teklif_durum") local bakalim = mysql_query10('SELECT * FROM player.acik WHERE id = \"'..pc.getqf("teklif_id")..'\"') pc.setqf("vnum",bakalim.item_vnum[1]) pc.setqf("tas1",bakalim.tas1[1]) pc.setqf("tas2",bakalim.tas2[1]) pc.setqf("tas3",bakalim.tas3[1]) pc.setqf("efsun1",bakalim.efsun1[1]) pc.setqf("efsun2",bakalim.efsun2[1]) pc.setqf("efsun3",bakalim.efsun3[1]) pc.setqf("efsun4",bakalim.efsun4[1]) pc.setqf("efsun5",bakalim.efsun5[1]) pc.setqf("item_id",bakalim.item_id[1]) pc.setqf("acik_id",bakalim.id[1]) pc.setqf("owner_id",bakalim.owner_id[1]) say_title(baslik[sirala].." özellikleri: ") say_item_vnum(pc.getqf("vnum")) local tas1,tas2,tas3,efsun1,efsun2,efsun3,efsun4,efsun5 = acik_arttirma.tas(pc.getqf("tas1")),acik_arttirma.tas(pc.getqf("tas2")),acik_arttirma.tas(pc.getqf("tas3")),acik_arttirma.efsun(pc.getqf("efsun1")),acik_arttirma.efsun(pc.getqf("efsun2")),acik_arttirma.efsun(pc.getqf("efsun3")),acik_arttirma.efsun(pc.getqf("efsun4")),acik_arttirma.efsun(pc.getqf("efsun5")) say("Teklifiniz : "..teklif[sirala]) if durum == 0 then say("Teklif Durumu : Cevap Yok ") elseif durum == 1 then say("Teklif Durumu : Red Edilmiş ") end say_reward("Efsunlar :") say("1.Efsun: "..efsun1.." "..bakalim.efsun1deger[1].." ") say("2.Efsun: "..efsun2.." "..bakalim.efsun2deger[1].." ") say("3.Efsun: "..efsun3.." "..bakalim.efsun3deger[1].." ") say("4.Efsun: "..efsun4.." "..bakalim.efsun4deger[1].." ") say("5.Efsun: "..efsun5.." "..bakalim.efsun5deger[1].." ") wait() say("") say("") say_reward("Taşlar :") say("1.Taş: "..tas1) say("2.Taş: "..tas2) say("3.Taş: "..tas3) say("") local napak = select("Teklifi Sil ", "Vazgeç ") if napak == 2 then acik_arttirm****f_sil() return elseif napak == 1 then mysql_query10('DELETE FROM player.acik_teklif WHERE teklif_veren = \"'..pc.get_name()..'\" and teklif_id = \"'..pc.getqf("acik_id")..'\"') say("Teklifiniz silindi. ") acik_arttirm****f_sil() end end end when 20087.take begin local id = item.get_id() local vnum = item.get_vnum() local item_isim = item.get_name() local isim = pc.get_name() say_title("Merhaba "..isim) local bul = mysql_query('SELECT * FROM player.item WHERE id = \"'..id..'\"') if(table.getn(bul) == 0) then say("Görünüşe göre itemi daha yeni almışsın.") say("Veri tabanına bilgilerin işlenmesini bekle.") say("Daha sonra tekrar dene.") say_reward("Bu işlem tahmini 3-5 dakika sürmektedir.") return -1 end say_item_vnum(vnum) say_reward("Taşlar:") say("1. Taş: "..acik_arttirma.tas(bul.socket0[1])) say("2. Taş: "..acik_arttirma.tas(bul.socket1[1])) say("3. Taş: "..acik_arttirma.tas(bul.socket2[1])) wait() say_reward("Efsunlar :") say("1. Efsun : "..acik_arttirma.efsun(bul.attrtype0[1])..""..bul.attrvalue0[1].." " ) say("2. Efsun : "..acik_arttirma.efsun(bul.attrtype1[1])..""..bul.attrvalue1[1].." ") say("3. Efsun : "..acik_arttirma.efsun(bul.attrtype2[1])..""..bul.attrvalue2[1].." ") say("4. Efsun : "..acik_arttirma.efsun(bul.attrtype3[1])..""..bul.attrvalue3[1].." ") say("5. Efsun : "..acik_arttirma.efsun(bul.attrtype4[1])..""..bul.attrvalue4[1].." ") say("") say(item_isim.." açık arttırmaya koymak istiyor musun?") local karar = select(locale.yes, locale.no) if karar == 2 then say("Açık arttırma sayesinde gayet iyi[ENTER]para kazanabilirdin.") say("Ama yine de sen bilirsin.") elseif karar == 1 then local arastir = mysql_query('SELECT * FROM player.acik WHERE item_id = \"'..id..'\"') if(table.getn(arastir) == 1) then say("Bu itemi daha önce koymuşsunuz.") say("Her itemi en fazla bir kere koyabilirsin.") return end say_title("Açık Arttırma:") say("") say(" Pazar başlığın ne olsun ?") say_reward("Oyuncular item aradığında bu başlık[ENTER]arama sonuçlarında gözükecektir.") say("") local baslik = input() if baslik == "" or baslik == nil then say("Boş bırakamazsın!") return else say_title("Açık Arttırma:") say("İtem için en az ne kadar para istiyorsunuz?") local para = tonumber(input()) if para == "0" or para == 0 or para == nil then say("Boş bırakamazsınız.") elseif para > 2000000000 then say("Maksimum 2T koyabilirsin.") else say(item_isim.." açık arttırmaya "..para.." yang karşılığı konuldu.") mysql_query10('INSERT INTO player.acik (item_id,owner_id,istenen,item_vnum,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,baslik) VALUES (\"'..id..'\",\"'..pc.get_account_id()..'\",\"'..para..'\",\"'..vnum..'\",\"'..bul.socket0[1]..'\",\"'..bul.socket1[1]..'\",\"'..bul.socket2[1]..'\",\"'..bul.attrtype0[1]..'\",\"'..bul.attrvalue0[1]..'\",\"'..bul.attrtype1[1]..'\",\"'..bul.attrvalue1[1]..'\",\"'..bul.attrtype2[1]..'\",\"'..bul.attrvalue2[1]..'\",\"'..bul.attrtype3[1]..'\",\"'..bul.attrvalue3[1]..'\",\"'..bul.attrtype4[1]..'\",\"'..bul.attrvalue4[1]..'\",\"'..baslik..'\")') item.remove() end end end end function item_cek() local id = pc.get_account_id() local bul = mysql_query10('SELECT * FROM player.acik WHERE owner_id = \"'..id..'\"') if(table.getn(bul) == 0) then return -1 end local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{} table.foreachi(bul, function(n,p) owner_id[n],id[n],item_vnum[n],istenen[n],sure[n],tas1[n],tas2[n],tas3[n],efsun1[n],efsun1deger[n],efsun2[n],efsun2deger[n],efsun3[n],efsun3deger[n],efsun4[n],efsun4deger[n],efsun5[n],efsun5deger[n],item_id[n],baslik[n] = bul.owner_id[n],bul.id[n],bul.item_vnum[n],bul.istenen[n],bul.sure[n],bul.tas1[n],bul.tas2[n],bul.tas3[n],bul.efsun1[n],bul.efsun1deger[n],bul.efsun2[n],bul.efsun2deger[n],bul.efsun3[n],bul.efsun3deger[n],bul.efsun4[n],bul.efsun4deger[n],bul.efsun5[n],bul.efsun5deger[n],bul.item_id[n],bul.baslik[n] end) return owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik end function item_ara_kod(kod) local bul = mysql_query10('SELECT * FROM player.acik WHERE item_vnum = \"'..kod..'\" ORDER BY RAND() LIMIT 5') if(table.getn(bul) == 0) then return -1 end local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{} table.foreachi(bul, function(n,p) owner_id[n],id[n],item_vnum[n],istenen[n],sure[n],tas1[n],tas2[n],tas3[n],efsun1[n],efsun1deger[n],efsun2[n],efsun2deger[n],efsun3[n],efsun3deger[n],efsun4[n],efsun4deger[n],efsun5[n],efsun5deger[n],item_id[n],baslik[n] = bul.owner_id[n],bul.id[n],bul.item_vnum[n],bul.istenen[n],bul.sure[n],bul.tas1[n],bul.tas2[n],bul.tas3[n],bul.efsun1[n],bul.efsun1deger[n],bul.efsun2[n],bul.efsun2deger[n],bul.efsun3[n],bul.efsun3deger[n],bul.efsun4[n],bul.efsun4deger[n],bul.efsun5[n],bul.efsun5deger[n],bul.item_id[n],bul.baslik[n] end) return owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik end function qf_sil() pc.delqf("tas1") pc.delqf("tas2") pc.delqf("tas3") pc.delqf("efsun1") pc.delqf("efsun2") pc.delqf("efsun3") pc.delqf("efsun4") pc.delqf("efsun5") pc.delqf("vnum") pc.delqf("item_id") pc.delqf("acik_id") pc.delqf("owner_id") pc.delqf("istenen") pc.delqf("teklif") pc.delqf("teklif_id") pc.delqf("teklif_durum") end function item_ara_isim(isim) local bul = mysql_query10('SELECT * FROM player.acik WHERE owner_id = \"'..isim..'\" ORDER BY RAND() LIMIT 5') if(table.getn(bul) == 0) then return -1 end local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{} table.foreachi(bul, function(n,p) owner_id[n],id[n],item_vnum[n],istenen[n],sure[n],tas1[n],tas2[n],tas3[n],efsun1[n],efsun1deger[n],efsun2[n],efsun2deger[n],efsun3[n],efsun3deger[n],efsun4[n],efsun4deger[n],efsun5[n],efsun5deger[n],item_id[n],baslik[n] = bul.owner_id[n],bul.id[n],bul.item_vnum[n],bul.istenen[n],bul.sure[n],bul.tas1[n],bul.tas2[n],bul.tas3[n],bul.efsun1[n],bul.efsun1deger[n],bul.efsun2[n],bul.efsun2deger[n],bul.efsun3[n],bul.efsun3deger[n],bul.efsun4[n],bul.efsun4deger[n],bul.efsun5[n],bul.efsun5deger[n],bul.item_id[n],bul.baslik[n] end) return owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik end function item_ara_rast() local bul = mysql_query10('SELECT * FROM player.acik ORDER BY RAND() LIMIT 5') if(table.getn(bul) == 0) then return -1 end local owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik = {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{} table.foreachi(bul, function(n,p) owner_id[n],id[n],item_vnum[n],istenen[n],sure[n],tas1[n],tas2[n],tas3[n],efsun1[n],efsun1deger[n],efsun2[n],efsun2deger[n],efsun3[n],efsun3deger[n],efsun4[n],efsun4deger[n],efsun5[n],efsun5deger[n],item_id[n],baslik[n] = bul.owner_id[n],bul.id[n],bul.item_vnum[n],bul.istenen[n],bul.sure[n],bul.tas1[n],bul.tas2[n],bul.tas3[n],bul.efsun1[n],bul.efsun1deger[n],bul.efsun2[n],bul.efsun2deger[n],bul.efsun3[n],bul.efsun3deger[n],bul.efsun4[n],bul.efsun4deger[n],bul.efsun5[n],bul.efsun5deger[n],bul.item_id[n],bul.baslik[n] end) return owner_id,id,item_vnum,istenen,sure,tas1,tas2,tas3,efsun1,efsun1deger,efsun2,efsun2deger,efsun3,efsun3deger,efsun4,efsun4deger,efsun5,efsun5deger,item_id,baslik end function teklif_cek(id) local p_id = pc.get_account_id() local bul = mysql_query10('SELECT * FROM player.acik_teklif WHERE owner_id = \"'..p_id..'\" and teklif_id = \"'..id..'\" and teklif_durum = \"0\"') if(table.getn(bul) == 0) then return -1 end local teklif,teklif_veren,teklif_id,owner_id = {},{},{},{} table.foreachi(bul, function(n,p) teklif[n],teklif_veren[n],teklif_id[n],owner_id[n] = bul.teklif[n],bul.teklif_veren[n],bul.teklif_id[n],bul.owner_id[n] end) return teklif,teklif_veren,teklif_id,owner_id end function tekliflerim() local bul = mysql_query10('SELECT * FROM player.acik_teklif WHERE teklif_veren = \"'..pc.get_name()..'\"') if(table.getn(bul) == 0) then return -1 end local teklif,teklif_veren,teklif_id,owner_id,baslik,teklif_durum = {},{},{},{},{},{} table.foreachi(bul, function(n,p) teklif[n],teklif_veren[n],teklif_id[n],owner_id[n],baslik[n],teklif_durum[n] = bul.teklif[n],bul.teklif_veren[n],bul.teklif_id[n],bul.owner_id[n],bul.baslik[n],bul.teklif_durum[n] end) return teklif,teklif_veren,teklif_id,owner_id,baslik,teklif_durum end function tas(vnum) local tas = { [0] = {"Bu Nesneye Taş Eklenemez "}, [1] = {"Taş Eklenmemiş "}, [28430] = {"Kavrama Taşı +4"}, [28431] = {"Öldürücü Darbe Taşı +4"}, [28432] = {"Soğutma Taşı +4"}, [28433] = {"Savaşçıdan Koruyan Taş +4"}, [28434] = {"Ninjadan Koruyan Taş +4"}, [28435] = {"Suradan Koruyan Taş +4"}, [28436] = {"Şamandan Koruyan Taş +4"}, [28437] = {"Canavardan Koruyan Taş +4"}, [28438] = {"Korunma Taşı +4"}, [28439] = {"Kurnazlık Taşı +4"}, [28440] = {"Sihir Taşı +4"}, [28441] = {"Yaşam Taşı +4"}, [28442] = {"Savunma Taşı +4"}, [28443] = {"Hız Taşı +4"}, [28960] = {"Kırık Taş Parçası "}, } return tas[vnum][1] end function efsun(vnum) local efsun = { [0] = {"Efsun Yok "}, [1] = {"Max HP +"}, [2] = {"Max SP +"}, [3] = {"Yaşam Enerjisi +"}, [4] = {"Zeka +"}, [5] = {"Güç +"}, [6] = {"Çeviklik +"}, [7] = {"Saldırı Hızı +"}, [8] = {"Hareket Hızı +"}, [9] = {"Büyü Hızı +"}, [10] = {"HP Üretimi %"}, [11] = {"SP Üretimi %"}, [12] = {"Zehirleme Değişimi %"}, [13] = {"Sersemletme Değişimi %"}, [14] = {"Yavaşlık Değişimi %"}, [15] = {"Kritik Vuruş Şansı %"}, [16] = {"Delici Vuruş Şansı %"}, [17] = {"Yarı İnsanlara Karşı Güçlü %"}, [18] = {"Hayvanlara Karşı Güçlü %"}, [19] = {"Orklara Karşı Güçlü %"}, [20] = {"Mistiklere Karşı Güçlü %"}, [21] = {"Ölümsüzlere Karşı Güçlü %"}, [22] = {"Şeytanlara Karşı Güçlü %"}, [23] = {"Hasar HP Tarafından Emilicek %"}, [24] = {"Hasar SP Tarafından Emilicek %"}, [25] = {"Düşmanın Spsini Çalma Sansi %"}, [26] = {"Vuruş Yapıldığında Spyi geri Çalma %"}, [27] = {"Beden Karşısındaki Atakların Bloklanması %"}, [28] = {"Oklardan Korunma Şansı %"}, [29] = {"Kılıç Savunması %"}, [30] = {"Çift-El Savunması %"}, [31] = {"Bıçak Savunması %"}, [32] = {"Çan Savunması %"}, [33] = {"Yelpaze Savunması %"}, [34] = {"Oka Karşı Dayanıklılık %"}, [35] = {"Ateşe Karşı Dayanıklılık %"}, [36] = {"Simgeye Karşı Dayanıklılık %"}, [37] = {"Büyüye Karşı Dayanıklılık %"}, [38] = {"Rüzgar Dayanıklılığı %"}, [39] = {"Vücut Darbesini Yansıtma Şansı %"}, [40] = {"Lanet Yansıtılması %"}, [41] = {"Zehre Karşı Koyma %"}, [42] = {"Sp Yüklenmesi Değişti"}, [43] = {"Yang Düşme Şansı %"}, [44] = {"Yang Düşme Şansı %"}, [45] = {"Eşya Düşme Şansı %"}, [46] = {"Trank effekt zuwachs %"}, [47] = {"HP Yüklenmesi Değişti %"}, [48] = {"Sersemletme Karşısında Bağışıklık %"}, [49] = {"Yavaşlatma Karşısında Bağışıklık %"}, [50] = {"Imun gegen Stürzen "}, [51] = {" "}, [52] = {"Bogenreichweite +"}, [53] = {"Saldırı Değeri +"}, [54] = {"Savunma +"}, [55] = {"Büyülü Saldırı Değeri +"}, [56] = {"Büyülü Savunma +"}, [57] = {" "}, [58] = {"Max Dayanıklılık +"}, [59] = {"Savaşçılara Karşı Güçlü %"}, [60] = {"Ninjalara Karşı Güçlü %"}, [61] = {"Suralara Karşı Güçlü %"}, [62] = {"Şamanlara Karşı Güçlü %"}, [63] = {"Yaratıklara Karşı Güçlü %"}, [64] = {"Saldırı Değeri +"}, [65] = {"Savunma +"}, [66] = {"EXP +?%"}, [67] = {"Dropchance [Gegenstände] "}, [68] = {"Dropchance [Gold] "}, [69] = {" "}, [70] = {" "}, [71] = {"Beceri Hasarı %"}, [72] = {"Ortalama Zarar %"}, [73] = {"Widerstand gegen Fertigkeitsschaden "}, [74] = {"durchschn. Schadenswiderstand "}, [75] = {" "}, [76] = {"iCafe exp-bonus "}, [77] = {"iCafe Chance auf erbeuten von gegenständen "}, [78] = {"Savaşçı Saldırılarına Karşı Savunma %"}, [79] = {"Ninja Saldırılarına Karşı Savunma %"}, [80] = {"Sura Saldırılarına Karşı Savunma %"}, [81] = {"Şaman Saldırılarına Karşı Savunma %"}, } return efsun[vnum][1] end end
Metin2 açık artırma sistemi, oyuncuların eşyalarını güvenli ve adil bir şekilde alıp satmasına olanak tanıyan gelişmiş bir sistemdir. Bu sistem, özellikle Metin2 sunucularında QUEST+SQL tabanlı olarak geliştirilmiş ve MySQL desteğiyle entegre edilmiştir. Bu sayede eşya transferleri, veri tutarlılığı ve güvenlik gibi konularda güçlü bir altyapı sunar. Metin2 quest sistemleri ile entegre çalışan bu açık artırma modülü, oyuncuların eşyalarını satmak istediklerinde bir teklif süreci başlatmalarını sağlar. Bu süreçte diğer oyuncular, eşyalar için teklifler sunabilir ve en yüksek teklifi veren kişi eşyayı satın alabilir.
Metin2 quest sistemleri, oyuncuların görevleri tamamlayarak ilerlemelerini sağlayan temel yapı taşlarından biridir. Ancak bu sistem aynı zamanda sunucu yönetiminde önemli bir rol oynar. Özellikle açık artırma gibi özel sistemlerin entegrasyonunda,.quest dosyalarının doğru şekilde yazılmış olması büyük önem taşır. Lua dilinde yazılmış quest scriptleri, sunucu tarafında gerçekleşen işlemleri kontrol eder ve oyuncularla etkileşimi yönetir. Metin2 quest yazma sürecinde dikkat edilmesi gereken en önemli konulardan biri, SQL veritabanı ile olan bağlantıdır. MySQL veritabanı, eşya listesi, teklifler, kullanıcı geçmişi gibi verileri saklamak için kullanılır.
Açık artırma sisteminin çalışabilmesi için gerekli olan quest dosyaları, genellikle Lua formatında olup, Metin2 sunucusuna özel olarak geliştirilir. Bu quest dosyaları, belirli bir NPC ile etkileşim sonucu aktive edilir. Oyuncu, eşyasını açıka artırmak istediğinde bir menüye yönlendirilir ve gerekli bilgileri girer. Ardından sistem, eşyayı veritabanına kaydeder ve diğer oyuncuların teklif vermesine izin verir. Metin2 quest sistemleri, bu süreçte hem veritabanı işlemleri hem de kullanıcı arayüzü ile ilgilenir. Örneğin, bir quest trigger ile teklif verme işlemi başlatılabilir ve quest timer ile açık artırma süresi sınırlanabilir.
Metin2 quest geliştirme sürecinde karşılaşılan yaygın sorunlardan birisi, quest hata mesajlarıdır. Quest debug işlemleri, bu hataların tespiti ve düzeltilmesi için yapılır. Hatalar genellikle SQL bağlantı hatası, eksik parametre veya yanlış trigger kullanımı gibi nedenlerden kaynaklanabilir. Quest edit yaparken, veritabanı sorgularının doğruluğu ve Lua scriptlerinin sentaksı dikkatlice kontrol edilmelidir. Ayrıca, quest reward mekanizması da doğru ayarlanmalıdır. Oyunculara verilecek ödül, teklif miktarına göre otomatik olarak hesaplanabilir.
Metin2 özel quest sistemleri, sunucuların kendine özgü özellikler kazanmasını sağlar. Bu sistemler genellikle daily quest, chain quest gibi yapılarla birlikte kullanılır. Açık artırma sistemi de bu özel yapıların bir parçası olarak düşünülebilir. Bu tür sistemlerin geliştirilmesinde Metin2Dev ve MartySama gibi platformlar, örnek quest scriptleri ve kütüphaneler sunarak geliştiricilere yardımcı olur. Metin2 quest server yapılandırmalarında, güvenlik önlemleri alınması da unutulmamalıdır. Veritabanı erişimleri, kullanıcı kimlik doğrulama kontrolleri gibi konular dikkate alınmalıdır.
The Metin2 auction system is an advanced system that allows players to safely and fairly buy and sell items. This system has been developed based on QUEST+SQL specifically for Metin2 servers and integrated with MySQL support. Thus, it provides a robust infrastructure regarding item transfers, data consistency, and security. Integrated with Metin2 quest systems, this auction module enables players to initiate a bidding process when they wish to sell their items. During this process, other players can submit offers for the items and the highest bidder can purchase the item.
Metin2 quest systems are one of the fundamental building blocks allowing players to progress by completing tasks. However, these systems also play an important role in server management. Especially during the integration of special systems like auctions, ensuring that quest files are correctly written becomes critical. Quest scripts written in Lua language control processes occurring on the server-side and manage interactions with players. One of the most important aspects to consider while writing Metin2 quests is the connection to the SQL database. The MySQL database is used to store data such as item lists, bids, and user history.
The quest files required for the auction system to function are typically in Lua format and specifically developed for Metin2 servers. These quest files activate upon interaction with a specific NPC. When a player wishes to put an item up for auction, they are directed to a menu where they enter the necessary information. The system then saves the item to the database and allows other players to place bids. Metin2 quest systems handle both database operations and user interface during this process. For example, placing a bid can be initiated via a quest trigger and the auction duration limited via a quest timer.
One common issue encountered during Metin2 quest development is quest error messages. Quest debugging is performed to detect and correct these errors. Errors often stem from causes such as SQL connection failures, missing parameters, or incorrect trigger usage. While performing quest edits, the correctness of database queries and syntax of Lua scripts must be carefully checked. Additionally, the quest reward mechanism should be properly configured. Rewards given to players can be automatically calculated based on the bid amount.
Special Metin2 quest systems allow servers to gain unique features. These systems are generally used alongside structures such as daily quests and chain quests. The auction system can be considered part of these special structures. Development platforms such as Metin2Dev and MartySama assist developers by providing sample quest scripts and libraries. In Metin2 quest server configurations, security measures should not be overlooked. Database access and user authentication checks, among other things, must be taken into account.
