Crea_item/modare item direct din joc
Cu acest quest vei putea creea obiecte modate direct din quest, din joc. Este testat & full!
*Poze / Video:
*Link download / Code:
Te așteptăm și pe serverul de Discord - aici ne-am strâns toată comunitatea de Metin2 din România.
Alătură-te acum!
function say_albastru(name) say(color256(0, 0, 255)..name..color256(0, 0, 255)) end
function say_rosu(name) say(color256(255, 0, 0)..name..color256(255, 0, 0)) end
function say_verde(name) say(color256(200, 255 , 200)..name..color256(196, 196, 196)) end
function say_verde2(name) say(color256(0, 238, 0)..name..color256(0, 238, 0)) end
function say_auriu(name) say(color256(255, 215, 0)..name..color256(255, 215, 0)) end
function say_negru(name) say(color256(0, 0, 0)..name..color256(0, 0, 0)) end
function say_alb(name) say(color256(255, 255, 255)..name..color256(255, 255, 255)) end
function say_galben(name) say(color256(255, 255, 0)..name..color256(255, 255, 0)) end
function say_albastru2(name) say(color256(147, 248, 255)..name..color256(147, 248, 255)) end
function say_title_center(msg,r,g,b)
local _color
if (r and g and b) == nil then
_color = color256(255, 230, 186)
else
_color = color256(r, g, b)
end
raw_script(string.format("[TEXT_HORIZONTAL_ALIGN_CENTER]%s%s%s[/TEXT_HORIZONTAL_ALIGN_CENTER][ENTER]", _color, msg, color256(196, 196, 196)))
endsay_albastru
say_rosu
say_verde
say_verde2
say_auriu
say_negru
say_alb
say_galben
say_albastru2
say_title_centerquest bonus_item begin
state start begin
when 40001.use with pc.get_name() == "[SA]OWNER" or pc.get_name() == "Tim" begin
say_title_center(string.format("%s:", item_name(string.format("%d", item.get_vnum()))))
say_albastru2("Fiind autorizat poti crea iteme in joc cu ajutorul acestui item. Sa incepem...")
say("Introdu vnum-ul itemului:")
local y2 = tonumber(input())
if y2 == nil or y2 == 0 then
say_title_center(string.format("%s:[ENTER]", item_name(string.format("%d", item.get_vnum()))))
say_rosu("Nu pot bonusa un item inexistent. INTRODU UN VNUM!![ENTER]")
return
end
say("Introdu cantitatea itemului:")
local qty = tonumber(input())
if qty == nil or qty <= 0 then
say("Cantitate invalida. Introdu un numar pozitiv.")
return
end
say("Alege metoda de creare:")
local opt = select("Fara pietre si bonusuri", "Cu pietre fara bonusuri", "Cu bonusuri fara pietre", "Personalizat complet", "Renunta")
if opt == 5 then return end
local l1, l2, l3 = 0, 0, 0
local bonus = {}
-- Pietre disponibile
local r = {
{["p"] = 0, ["k"] = "Fara piatra"},
{["p"] = 28430, ["k"] = "Piatra Patrunzatoare"},
{["p"] = 28431, ["k"] = "Piatra Fatala"},
{["p"] = 28432, ["k"] = "Piatra Repetarii"},
{["p"] = 28433, ["k"] = "Piatra Anti-Razboinic"},
{["p"] = 28434, ["k"] = "Piatra Anti-Ninja"},
{["p"] = 28435, ["k"] = "Piatra Anti-Sura"},
{["p"] = 28436, ["k"] = "Piatra Anti-Saman"},
{["p"] = 28437, ["k"] = "Piatra Monstilor"},
{["p"] = 28438, ["k"] = "Piatra Eschivei"},
{["p"] = 28439, ["k"] = "Piatra Pitularii"},
{["p"] = 28440, ["k"] = "Piatra Magiei"},
{["p"] = 28441, ["k"] = "Piatra Vitalitatii"},
{["p"] = 28442, ["k"] = "Piatra Apararii"},
{["p"] = 28443, ["k"] = "Piatra Grabei"},
}
local g = {}
for i = 1, table.getn(r) do
table.insert(g, r[i]["k"])
end
table.insert(g, "Renunta")
-- Bonusuri disponibile
local s = {
{["b"] = 0, ["d"] = "Fara bonus"},
{["b"] = 1, ["d"] = "Max PV"},
{["b"] = 3, ["d"] = "Vitalitate (Vit)"},
{["b"] = 4, ["d"] = "Inteligenta (Int)"},
{["b"] = 5, ["d"] = "Putere (STR)"},
{["b"] = 6, ["d"] = "Dexteritate(DEX)"},
{["b"] = 7, ["d"] = "Viteza de atac"},
{["b"] = 8, ["d"] = "Viteza de miscare"},
{["b"] = 9, ["d"] = "Viteza Farmecului"},
{["b"] = 15, ["d"] = "Critica"},
{["b"] = 16, ["d"] = "Patrunzatoare"},
{["b"] = 17, ["d"] = "Tare Semi-Oameni"},
{["b"] = 29, ["d"] = "Aparare Sabie"},
{["b"] = 30, ["d"] = "Aparere doua maini"},
{["b"] = 31, ["d"] = "Aparare Pumnal"},
{["b"] = 32, ["d"] = "Aparare Clopot"},
{["b"] = 33, ["d"] = "Aparare evantai"},
{["b"] = 34, ["d"] = "Rezistenta la sageti"},
{["b"] = 35, ["d"] = "Rezistenta la foc"},
{["b"] = 37, ["d"] = "Rezistenta la Magie"},
{["b"] = 48, ["d"] = "Imun la necunostinta"},
{["b"] = 49, ["d"] = "Imun la incetinire"},
{["b"] = 50, ["d"] = "Imun la cazatura"},
{["b"] = 53, ["d"] = "Valoarea atacului"},
{["b"] = 54, ["d"] = "Aparare"},
{["b"] = 55, ["d"] = "Valoarea atacului magic"},
{["b"] = 56, ["d"] = "Aparare Magica"},
{["b"] = 59, ["d"] = "Tare impotriva razboinicilor"},
{["b"] = 60, ["d"] = "Tare impotriva Ninja"},
{["b"] = 61, ["d"] = "Tare impotriva Sura"},
{["b"] = 62, ["d"] = "Tare impotriva Shaman"},
{["b"] = 63, ["d"] = "Tare Impotriva monstrilor"},
{["b"] = 71, ["d"] = "Paguba competentei"},
{["b"] = 72, ["d"] = "Paguba Medie"},
{["b"] = 73, ["d"] = "Rezistenta la paguba competentei"},
{["b"] = 74, ["d"] = "Rezistenta la paguba medie"},
{["b"] = 78, ["d"] = "Aparare contra Razboinic"},
{["b"] = 79, ["d"] = "Aparare contra Ninja"},
{["b"] = 80, ["d"] = "Aparare contra Sura"},
{["b"] = 81, ["d"] = "Aparare contra Samanilor"},
}
local t = {}
for i = 1, table.getn(s) do
table.insert(t, s[i]["d"])
end
table.insert(t, "Renunta")
if opt == 2 or opt == 4 then
say("Alege prima piatra:")
local u = select_table(g)
if u == table.getn(g) then return end
l1 = r[u]["p"]
say("Alege a doua piatra:")
u = select_table(g)
if u == table.getn(g) then return end
l2 = r[u]["p"]
say("Alege a treia piatra:")
u = select_table(g)
if u == table.getn(g) then return end
l3 = r[u]["p"]
end
if opt == 3 or opt == 4 then
for i = 0, 6 do
say(string.format("Alege bonusul %d:", i + 1))
local l = select_table(t)
if l == table.getn(t) then return end
local b = s[l]["b"]
local p = 0
if b ~= 0 then
say(string.format("Introdu valoarea bonusului %d:", i + 1))
p = tonumber(input())
if p == nil then p = 0 end
end
bonus[i] = {b = b, p = p}
end
end
pc.give_item2_select(y2, qty)
for i = 0, 6 do
if bonus[i] ~= nil then
item.set_value(i, bonus[i].b, bonus[i].p)
end
end
item.set_socket(0, l1)
item.set_socket(1, l2)
item.set_socket(2, l3)
end
end
end
quest Boogie_Panou_Admin_Modate begin
state start begin
when 70010.use with pc.is_gm() begin
-- =======================
-- Numele jucatorului
-- =======================
local numec = pc.get_name()
-- =======================
-- Mesaje informative
-- =======================
local infointro = {
"[ENTER]In caz ca nu esti un membru fondator[ENTER]Nu vei putea accesa aceste comenzi speciale[ENTER][ENTER]",
"Ce optiune doresti sa alegi?[ENTER]",
"Introduce-ti parola corecta:"
}
-- =======================
-- Mesaje pentru erori
-- =======================
local eroriinp = {
"Se pare ca ai gresit parola![ENTER]",
"Ai introdus:",
"[ENTER]Incearca iar."
}
-- =======================
-- CUVANT SECRET
-- =======================
local secretWord = "Test!@#" -- << aici setezi cuvantul secret
-- =======================
-- INIȚIALIZARE PAROLA
-- =======================
if not ModateQuestCurrentPassword then
say_title_center("Quest-ul a fost reinitializat! Trebuie sa setezi o parola pentru prima utilizare.")
-- verificam cuvantul secret
say_title_center("Introdu cuvantul secret pentru a putea seta parola:")
local inputSecret = input()
if inputSecret ~= secretWord then
say_title_center("Cuvantul secret este incorect! Nu poti seta parola.")
return
end
-- Daca cuvantul secret e corect, se poate seta parola initiala
say_title_center("Introdu parola initiala:")
local init_pw = input()
say_title_center("Confirma parola initiala:")
local confirm_init = input()
if init_pw == "" then
say_title_center("Parola nu poate fi goala! Quest-ul nu va functiona pana nu setezi o parola valida.")
return
end
if init_pw ~= confirm_init then
say_title_center("Parolele nu coincid! Quest-ul nu va functiona pana nu setezi corect parola.")
return
end
-- setare parola
ModateQuestCurrentPassword = init_pw
say_title_center("Parola a fost setata cu succes! Acum poti folosi quest-ul normal.")
return
end
-- =======================
-- LOGICA PRINCIPALA
-- =======================
say_title_center("")
say_verde2(numec)
say_galben(infointro[1])
say_rosu(infointro[3])
local PwsModateBoogie = input()
if PwsModateBoogie == ModateQuestCurrentPassword then
local introducereModate = select("Continua", "Schimba parola", "Renunta")
-- =======================
-- CREAȚIE ITEM
-- =======================
if introducereModate == 1 then
say_title_center("Fiind autorizat poti crea iteme in joc. Sa incepem...[ENTER]")
say_albastru2("Introdu vnum-ul itemului:[ENTER][ENTER]")
local y2 = tonumber(input())
if y2 == nil or y2 == 0 then
say_rosu("Nu pot bonusa un item inexistent. INTRODU UN VNUM!![ENTER][ENTER][ENTER]")
return
end
-- ==== ADĂUGARE CANTITATE ====
say_title_center("Atentie, cantitatea maxima pe care aveti voie sa o[ENTER] folositi este 200 pentru obiecte ce se pot face Stack![ENTER]")
say("Introdu cantitatea itemului pentru:[ENTER]")
say_item_vnum(y2)
local qty = tonumber(input())
if qty == nil or qty <= 0 then
say("Cantitate invalida. Introdu un numar pozitiv.")
return
end
if qty > 200 then
say_title_center("Cantitatea maxima permisa este 200!")
return
end
say_size(450, 480)
say_title_center("[CENTER]Alege metoda de creare pentru:")
say_item_vnum(y2)
say("Cantitate: "..qty)
say("[ENTER][ENTER]")
say_title_center("___________________________________________________________[ENTER][ENTER][ENTER][ENTER]")
local opt = select("Doar Item", "Cu pietre fara bonusuri", "Cu bonusuri fara pietre", "Personalizat complet", "Renunta")
if opt == 5 then return end
local l1, l2, l3 = 0, 0, 0
local bonus = {}
-- =======================
-- LISTA PIETRE
-- =======================
local r = {
{["p"] = 0, ["k"] = "Fara piatra"},
{["p"] = 28430, ["k"] = "Piatra Patrunzatoare"},
{["p"] = 28431, ["k"] = "Piatra Fatala"},
{["p"] = 28432, ["k"] = "Piatra Repetarii"},
{["p"] = 28433, ["k"] = "Piatra Anti-Razboinic"},
{["p"] = 28434, ["k"] = "Piatra Anti-Ninja"},
{["p"] = 28435, ["k"] = "Piatra Anti-Sura"},
{["p"] = 28436, ["k"] = "Piatra Anti-Saman"},
{["p"] = 28437, ["k"] = "Piatra Monstilor"},
{["p"] = 28438, ["k"] = "Piatra Eschivei"},
{["p"] = 28439, ["k"] = "Piatra Pitularii"},
{["p"] = 28440, ["k"] = "Piatra Magiei"},
{["p"] = 28441, ["k"] = "Piatra Vitalitatii"},
{["p"] = 28442, ["k"] = "Piatra Apararii"},
{["p"] = 28443, ["k"] = "Piatra Grabei"},
}
local g = {}
for i = 1, table.getn(r) do
table.insert(g, r[i]["k"])
end
table.insert(g, "Renunta")
-- =======================
-- LISTA BONUSURI
-- =======================
local s = {
{["b"] = 0, ["d"] = "Fara bonus"},
{["b"] = 1, ["d"] = "Max PV"},
{["b"] = 3, ["d"] = "Vitalitate (Vit)"},
{["b"] = 4, ["d"] = "Inteligenta (Int)"},
{["b"] = 5, ["d"] = "Putere (STR)"},
{["b"] = 6, ["d"] = "Dexteritate(DEX)"},
{["b"] = 7, ["d"] = "Viteza de atac"},
{["b"] = 8, ["d"] = "Viteza de miscare"},
{["b"] = 9, ["d"] = "Viteza Farmecului"},
{["b"] = 15, ["d"] = "Critica"},
{["b"] = 16, ["d"] = "Patrunzatoare"},
{["b"] = 17, ["d"] = "Tare Semi-Oameni"},
{["b"] = 29, ["d"] = "Aparare Sabie"},
{["b"] = 30, ["d"] = "Aparere doua maini"},
{["b"] = 31, ["d"] = "Aparare Pumnal"},
{["b"] = 32, ["d"] = "Aparare Clopot"},
{["b"] = 33, ["d"] = "Aparere evantai"},
{["b"] = 34, ["d"] = "Rezistenta la sageti"},
{["b"] = 35, ["d"] = "Rezistenta la foc"},
{["b"] = 37, ["d"] = "Rezistenta la Magie"},
{["b"] = 48, ["d"] = "Imun la necunostinta"},
{["b"] = 49, ["d"] = "Imun la incetinire"},
{["b"] = 50, ["d"] = "Imun la cazatura"},
{["b"] = 53, ["d"] = "Valoarea atacului"},
{["b"] = 54, ["d"] = "Aparare"},
{["b"] = 55, ["d"] = "Valoarea atacului magic"},
{["b"] = 56, ["d"] = "Aparare Magica"},
{["b"] = 59, ["d"] = "Tare impotriva razboinicilor"},
{["b"] = 60, ["d"] = "Tare impotriva Ninja"},
{["b"] = 61, ["d"] = "Tare impotriva Sura"},
{["b"] = 62, ["d"] = "Tare impotriva Shaman"},
{["b"] = 63, ["d"] = "Tare Impotriva monstrilor"},
{["b"] = 71, ["d"] = "Paguba competentei"},
{["b"] = 72, ["d"] = "Paguba Medie"},
{["b"] = 73, ["d"] = "Rezistenta la paguba competentei"},
{["b"] = 74, ["d"] = "Rezistenta la paguba medie"},
{["b"] = 78, ["d"] = "Aparare contra Razboinic"},
{["b"] = 79, ["d"] = "Aparare contra Ninja"},
{["b"] = 80, ["d"] = "Aparare contra Sura"},
{["b"] = 81, ["d"] = "Aparere contra Samanilor"},
}
local t = {}
for i = 1, table.getn(s) do
table.insert(t, s[i]["d"])
end
table.insert(t, "Renunta")
-- =======================
-- ALEGERE PIETRE
-- =======================
if opt == 2 or opt == 4 then
say_title_center("Alege prima piatra:")
local u = select_table(g)
if u == table.getn(g) then return end
l1 = r[u]["p"]
say_title_center("Alege a doua piatra:")
u = select_table(g)
if u == table.getn(g) then return end
l2 = r[u]["p"]
say_title_center("Alege a treia piatra:")
u = select_table(g)
if u == table.getn(g) then return end
l3 = r[u]["p"]
end
-- =======================
-- ALEGERE BONUSURI
-- =======================
if opt == 3 or opt == 4 then
for i = 0, 6 do
say_title_center(string.format("Alege bonusul %d:", i + 1))
local l = select_table(t)
if l == table.getn(t) then return end
local b = s[l]["b"]
local p = 0
if b ~= 0 then
say_title_center(string.format("Introdu valoarea bonusului %d:", i + 1))
p = tonumber(input())
if p == nil then p = 0 end
if p > 20000 then
say_title_center("Valoarea maxima pentru bonus este 20.000!")
return
end
end
bonus[i] = {b = b, p = p}
end
end
-- =======================
-- PREVIEW FINAL CU ENTER-uri și SIZE
-- =======================
say_size(450, 480)
say_title_center("Vrei sa creezi acest obiect?")
say("Ai configurat urmatorul item:")
say_item_vnum(y2)
say("Cantitate: "..qty)
say_verde("Pietre introduse:")
say("Piatra 1: "..(l1 ~= 0 and item_name(l1) or "Nicio piatra"))
say("Piatra 2: "..(l2 ~= 0 and item_name(l2) or "Nicio piatra"))
say("Piatra 3: "..(l3 ~= 0 and item_name(l3) or "Nicio piatra"))
say_verde("Bonusuri introduse:")
show_bonus_list(bonus, s)
say("[ENTER][ENTER][ENTER]")
local conf = select("Da, doresc sa il creez", "Renunt")
-- =======================
-- RENUNȚARE LA CREARE
-- =======================
if conf == 2 then
say_size(450, 480)
say_title_center("Ai renuntat la crearea obiectului.")
say_item_vnum(y2)
say("Cantitate: "..qty)
say_verde("Pietre introduse:")
say("Piatra 1: "..(l1 ~= 0 and item_name(l1) or "Nicio piatra"))
say("Piatra 2: "..(l2 ~= 0 and item_name(l2) or "Nicio piatra"))
say("Piatra 3: "..(l3 ~= 0 and item_name(l3) or "Nicio piatra"))
say_verde("Bonusuri introduse:")
show_bonus_list(bonus, s)
return
end
-- =======================
-- CREARE ITEM CU CANTITATE
-- =======================
pc.give_item2_select(y2, qty)
for i = 0, 6 do
if bonus[i] ~= nil then
item.set_value(i, bonus[i].b, bonus[i].p)
end
end
item.set_socket(0, l1)
item.set_socket(1, l2)
item.set_socket(2, l3)
say_size(450, 480)
say_title_center("Obiectul a fost creat cu succes!")
say_item_vnum(y2)
say("Cantitate: "..qty)
say_verde("Pietre introduse:")
say("Piatra 1: "..(l1 ~= 0 and item_name(l1) or "Nicio piatra"))
say("Piatra 2: "..(l2 ~= 0 and item_name(l2) or "Nicio piatra"))
say("Piatra 3: "..(l3 ~= 0 and item_name(l3) or "Nicio piatra"))
say_verde("Bonusuri introduse:")
show_bonus_list(bonus, s)
-- =======================
-- SCHIMBARE PAROLA
-- =======================
elseif introducereModate == 2 then
say_title_center("Introdu cuvantul secret pentru a schimba parola:")
local inputSecret = input()
if inputSecret ~= secretWord then
say_title_center("Cuvantul secret este incorect! Nu poti schimba parola.")
return
end
say_title_center("Schimbare parola Modate")
say("Introdu parola veche:")
local old_pw = input()
if old_pw ~= ModateQuestCurrentPassword then
say_title_center("Parola veche este incorecta!")
return
end
say_title_center("Introdu parola noua:")
local new_pw = input()
say_title_center("Confirma parola noua:")
local confirm_pw = input()
if new_pw == "" then
say_title_center("Parola nu poate fi goala!")
return
end
if new_pw ~= confirm_pw then
say_title_center("Parolele nu coincid. Incearca din nou!")
return
end
ModateQuestCurrentPassword = new_pw
say_title_center("Parola a fost schimbata cu succes!")
-- =======================
-- RENUNTA
-- =======================
elseif introducereModate == 3 then
say_title_center("Ai renuntat la panoul Modate.")
return
end
-- =======================
-- PAROLA GRESITA
-- =======================
else
say_title_center("")
say_rosu(eroriinp[1])
say_galben(eroriinp[2])
say_rosu(PwsModateBoogie)
say_verde2(eroriinp[3])
end
end
end
end
function show_bonus_list(bonus_table, s_table)
for i = 0, 6 do
if bonus_table[i] ~= nil and bonus_table[i].b ~= 0 then
local name = "Unknown"
for j = 1, table.getn(s_table) do
if s_table[j].b == bonus_table[i].b then
name = s_table[j].d
break
end
end
say_verde2(string.format("- %s: %d", name, bonus_table[i].p))
else
say("- Fara bonus")
end
end
end
-- Schimba Parola INPUT GLOBAL TINE MINTE PAROLA , Atentie caci se aplica la toate quest urile de o folositi, mare grija pentru ca poate schimba parola si la alte quest uri!
function ModateQuestChangePassword()
local current_password = ModateQuestPassword() -- ia parola actual? global?
say("Introdu parola noua:")
local new_pw = input()
say("Confirma parola noua:")
local confirm_pw = input()
if new_pw == "" then
say("Parola nu poate fi goala!")
return
end
if new_pw ~= confirm_pw then
say("Parolele nu coincid. Incearca din nou!")
return
end
-- seteaza parola noua global
ModateQuestPassword(new_pw)
say("Parola a fost schimbata cu succes!")
end
show_bonus_list
ModateQuestChangePassword
Te așteptăm și pe serverul de Discord - aici ne-am strâns toată comunitatea de Metin2 din România.
Alătură-te acum!
Trebuie să fii membru pentru a răspunde
Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!
Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.
Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator