*Resursă folosită: -
*ServerFiles utilizat: ServerFiles Clean 40K
*Syserr: -
*Detalii suplimentare:
Salut Just4Metin !
Am o problemă cu sistemul de energie, pe server aveam deja fragmentele şi cristalele de energie, deci nu a fost nevoie să le implementez.
Am băgat un quest dar nu pot să produc fragmente.
Dacă îmi bag fragmente din cod, cristal de energie pot să fac.
Aici este eroarea pe care mi-o afişează PuTTY :
mysql: ambiguous option '--e=SELECT limitvalue0 FROM player.item_proto WHERE vnum='11299' LIMIT 1;' (enable_cleartext_plugin, execute)Aici este quest-ul :
Cod: Selectaţi tot
quest energy_system begin
state start begin
when 20001.chat."O nouă descoperire" begin
say_title("Alchimist:")
say("")
say("Nu-mi vine să cred! Am reuşit!")
say("În sfârsit am creat noul sistem de energie pură.")
say("Am să îti spun cum, fii atent. Această energie stă ")
say("în jurul fiecăruia. Am încercat să extrag această ")
say("energie din arme şi armuri. A fost foarte dificil")
say("dar am reuşit, în sfârsit!")
say("")
wait()
say_title("Alchimist:")
say("")
say("Dacă cumva eşti interesat de acest sistem, adu-mi")
say("arme şi armuri pentru a le transforma în fragmente")
say("de energie. Dacă vei avea noroc, voi face ca aceste")
say("fragmente ce le-ai adunat să se unească între ele")
say("şi se for transforma într-un cristal de energie.")
say("Sper că acest sistem va ajuta multă lume.")
say("")
set_state("make")
end
end
state make begin
when 20001.chat."Informaţii despre fragmentele de energie" begin
say_title("Alchimist:")
say("")
say("Acum ştii cum funcţionează. Aceste obiecte pe")
say("care mi le aduci le voi transforma în Fragmente")
say("de Energie si nu le vei mai putea folosi.")
say("Energia extrasă din ele îţi va oferi un bonus")
say("aleatoriu timp de 2h. Ca să faci Fragmente de")
say("Energie trebuie să ai minim nivelul 35.")
say("")
wait()
if pc.get_level() < 35 then
say_title("Alchimist:")
say("")
say("Oh, îmi pare rău, dar trebuie să ai nivelul 35")
say("pentru a putea crea Energie Pură.")
say("")
else
say_title("Alchimist:")
say("")
say("Perfect! Se pare că ai nivelul necesar pentru a")
say("crea energie pură.")
say("")
end
end
when 20001.chat."Obţine fragmente de energie" begin
say_title("Alchimist:")
say("")
say("Pentru a face energie pură ai nevoie de cel puţin")
say("30 fragmente de energie.")
say("")
wait()
if pc.get_level() < 35 then
say_title("Alchimist:")
say("")
say("Oh, ce păcat, nu ai nivelul 35 pentru a putea")
say("crea energie pură.")
say("")
else
if pc.count_item(51001) >= 30 then
say_title("Alchimist:")
say("")
say("Se pare că ai cele 30 de Fragmente de Energie.")
say("Vrei să transform această energie în Energie Pură?")
say("Pot încerca, dar nu garantez că voi reuşi.")
say("")
wait()
say_title("Alchimist:")
say("")
say("Totodată, am nevoie şi de o sumă de bani.")
say("Ştii, aş fi putut să îţi fac şi gratis")
say("dar am nevoie pentru a întreţine proiectul...")
say("Te va costa 500.000 Yang.")
say("Eşti sigur că doreşti să creezi energie?")
say("")
if select("Da","Nu") == 2 then
return
end
pc.change_money(-500000)
pc.remove_item(51001,30)
if number(0,1) == 1 then
say_title("Alchimist:")
say("")
say("Am reuşit să creez Energie Pură.")
say("")
say_item("Ai primit un Cristal de Energie", 51002, "")
pc.give_item2(51002,1)
else
say_title("Alchimist:")
say("")
say("Oh, ce păcat. Fragmentele sunt sparte.")
say("Transformarea a eşuat.")
say("")
return
end
else
say_title("Alchimist:")
say("")
say("Se pare că nu ai la tine cele 30 de Fragmente")
say("de Energie. Mai adu-mi obiecte pentru a face")
say("mai multe Fragmente de Energie.")
say("")
return
end
end
end
when 20001.take begin
if pc.get_level() < 35 then
return
end
if item.get_type() == 1 or item.get_type() == 2 then
local maxlvl = mysql_query("SELECT limitvalue0 FROM player.item_proto WHERE vnum='"..item.get_vnum().."' LIMIT 1;")
test_chat(maxlvl[1][1])
if tonumber(maxlvl[1][1]) < 35 then
say_title("Alchimist:")
say("")
say("Din acest obiect nu se poate crea energie.")
say("")
return
end
say_title("Alchimist:")
say("")
say(string.trim(item.get_name()))
say("Chiar doreşti să distrugi acest obiect?")
say("")
if select("Da","Nu") == 2 then
return
else
local numar = number(0,15)
if numar > 0 then
say_title("Alchimist:")
say("")
say("Am reuşit să extrag energia din obiect!")
say_item("Ai primit "..numar.." Fragment(e) de Energie", 51001, "")
pc.give_item2(51001, numar)
else
say_title("Alchimist:")
say("")
say("Am eşuat. Din păcate nu am putut extrage energia")
say("din acest obiect.")
say("")
return
end
item.remove()
end
else
say_title("Alchimist:")
say("")
say("Acest obiect nu are energie!")
say("")
end
end
when login begin
if getenergytime() < 50000 then
test_chat("[ENERGIE] Timp rămas: "..getenergytime())
setenergytime(getenergytime() + get_time())
cmdchat("energysystem "..getenergytyp().."|"..getenergyvalue().."#"..getenergytime())
end
end
when logout begin
if getenergytime() > get_time() then
local energy = getenergytime() - get_time()
if energy > 0 then
setenergytime(energy)
end
end
end
when 51002.use begin
if getenergytime() > get_time() then
chat("Foloseşti deja un Cristal de Energie!")
return
end
local bonus = number(1,10)
lista_bonus = {}
lista_bonus [1] = {apply.ATTBONUS_HUMAN, 15}
lista_bonus [2] = {apply.ATTBONUS_MONSTER, 10}
lista_bonus [3] = {apply.CRITICAL_PCT, 10}
lista_bonus [4] = {apply.PENETRATE_PCT, 10}
lista_bonus [5] = {apply.MAX_HP, 1000}
lista_bonus [6] = {apply.MAX_SP, 2000}
lista_bonus [7] = {apply.HP_REGEN, 30}
lista_bonus [8] = {apply.STEAL_HP, 10}
lista_bonus [9] = {apply.ATT_GRADE_BONUS, 75}
lista_bonus [10] = {apply.ATT_GRADE_BONUS, 50}
test_chat(bonus)
test_chat(lista_bonus[bonus][1])
test_chat(lista_bonus[bonus][2])
affect.add_collect(lista_bonus[bonus][1],lista_bonus[bonus][2],7200)
setenergy(bonus,lista_bonus[bonus][2],get_time() + 7200)
cmdchat ("energysystem "..bonus.."|"..lista_bonus[bonus][2].."#"..(get_time() + 7200))
setenergytime(get_time() + 7200)
item.remove()
chat("Simt energia cristalului cum curge prin venele mele.")
end
end
endCod: Selectaţi tot
function setenergy(typ,value,timez)
pc.setqf("energy_value", value)
pc.setqf("energy_date", get_time() + timez)
pc.setqf("energy_typ", typ)
end
function setenergytime(timez)
pc.setqf("energy_date", timez)
end
function getenergytyp()
return pc.getqf("energy_typ")
end
function getenergyvalue()
return pc.getqf("energy_value")
end
function getenergytime()
return pc.getqf("energy_date")
end
function split(str, delim, maxNb)
if str == nil then return str end
if string.find(str, delim) == nil then return { str } end
if maxNb == nil or maxNb < 1 then maxNb = 0 end
local result = {}
local pat = "(.-)" .. delim .. "()"
local nb = 0
local lastPos
for part, pos in string.gfind(str, pat) do
nb = nb + 1
result[nb] = part
lastPos = pos
if nb == maxNb then break end
end
if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
return result
end
mysql_query = function(query)
local rt = io.open('CONFIG','r'):read('*all')
local pre= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
math.randomseed(os.time())
local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi)
for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
for i = 2, table.getn(t) do table.foreach(t[i],function(a,b)
out[i-1] = out[i-1] or {}
out[i-1][a] = b
out[t[1][a]] = out[t[1][a]] or {}
out[t[1][a]][i-1] = b
end) end
return out
end
-- Entferne Leerzeichen vor und nach dem String
function string.trim(str)
return (string.gsub(str, "^%s*(.-)%s*$", "%1"))
end
-- String zu Array uber Seperator
function string.explode(str, sep)
if sep == "" or str == "" then
error("Fehlende Parameter")
end
local pos, t = 1, {}
for s, e in function() return string.find(str, sep, pos) end do
table.insert(t, string.trim(string.sub(str, pos, s-1)))
pos = e+1
end
table.insert(t, string.trim(string.sub(str, pos)))
return t
end Mulţumesc !




de