|
You last visited: Today at 15:42
Advertisement
[BIO-System]
Discussion on [BIO-System] within the Metin2 Private Server forum part of the Metin2 category.
06/05/2015, 13:48
|
#1
|
elite*gold: 0
Join Date: Apr 2015
Posts: 16
Received Thanks: 2
|
[BIO-System]
Hallo epvp hab das BIO-System von Zephir eingebaut,
doch bekomme in putty diesen Fehler.
Weiß einer wie ich den behebe?
Wäre sehr nett!
Putty:
/usr/home/game # locale/germany/quest/object/state/bio_system:8: bad argument #1 to `getn' (table expected, got nil)
|
|
|
06/05/2015, 15:14
|
#2
|
elite*gold: 0
Join Date: Jul 2012
Posts: 55
Received Thanks: 25
|
Um hier aussagen zu machen brauchen wir mehr Information (am besten source des systems / der quest)
Aber im Grunde geht es darum das du getn mit nil als Parameter aufrufst, dabei braucht getn als Parameter eine Tabelle (getn gibt die größe der Tabelle an)
MfG
|
|
|
06/05/2015, 18:12
|
#3
|
elite*gold: 0
Join Date: Apr 2015
Posts: 16
Received Thanks: 2
|
hmm... versteh ich nicht so ganz muss ich jetzt eine tabelle anlegen wen ja wo ?
danke für die antwort
Hier die quest:
Code:
quest bio_system begin
state start begin
function get_id()
return pc.getf("bio_system", "quest_id") + 1
end
function change_id()
pc.setf("bio_system", "quest_id", bio_system.get_id())
end
function get_state()
return pc.getf("bio_system", "quest_state")
end
function change_state()
local cur_state = bio_system.get_state()
local new_state = 0
if cur_state == 0 then new_state = 1 end
pc.setf("bio_system", "quest_state", new_state)
end
function quest_exists()
return bio_system.get_id() <= table.getn(locale.BIOSYSTEM_QUEST_LIST)
end
function OnTimerExecute(is_loop)
local given = pc.getqf("items_given")
local checking = pc.getqf("items_checking") - 1
pc.setqf("items_checking", checking)
local fail = pc.getqf("items_checking_fail")
local succ = pc.getqf("items_checking_succ")
local currentQuestID = bio_system.get_id()
local data = locale.BIOSYSTEM_QUEST_LIST[currentQuestID]
if data["fail_chance"] >= number(1, 100) then
fail = fail + 1
pc.setqf("items_checking_fail", fail)
else
succ = succ + 1
pc.setqf("items_checking_succ", succ)
if given + succ >= data["item_count_need"] then
pc.delqf("next_check_time")
pc.setqf("items_given", given + succ)
cmdchat("bio done,"..succ..","..data["item_count_need"]..","..checking)
if is_loop then
cleartimer("check_next_item_loop")
end
return
end
end
if checking == 0 then
pc.delqf("items_checking_fail")
pc.delqf("items_checking_succ")
pc.setqf("items_given", given + succ)
pc.delqf("next_check_time")
cmdchat("bio finish,"..fail..","..succ)
if is_loop then
cleartimer("check_next_item_loop")
end
else
pc.setqf("next_check_time", data["check_item_time"] + os.time())
if not is_loop then
loop_timer("check_next_item_loop", data["check_item_time"])
end
end
end
when login with bio_system.quest_exists() begin
local currentQuestID = bio_system.get_id()
local data = locale.BIOSYSTEM_QUEST_LIST[currentQuestID]
if data["min_level"] <= pc.get_level() then
local qstate = bio_system.get_state()
if qstate == 0 then
local v = find_npc_by_vnum(20084)
if v != 0 then
target.vid("__TARGET__", v)
end
elseif qstate == 1 then
cmdchat("bio init,"..currentQuestID)
local given = pc.getqf("items_given")
if given < data["item_count_need"] then
local checking_count = pc.getqf("items_checking")
if checking_count > 0 then
local next_check_time = pc.getqf("next_check_time")
if os.time() >= next_check_time then
local checked = math.floor((os.time() - next_check_time) / data["check_item_time"]) + 1
if checked > checking_count then checked = checking_count end
local fail = pc.getqf("items_checking_fail")
local succ = pc.getqf("items_checking_succ")
for i = 1, checked do
if data["fail_chance"] >= number(1, 100) then
fail = fail + 1
else
succ = succ + 1
if given + succ >= data["item_count_need"] then
pc.delqf("next_check_time")
pc.setqf("items_given", given + succ)
pc.setqf("items_checking", checking_count - i)
cmdchat("bio done,"..succ..","..data["item_count_need"]..","..(checking_count - i))
return
end
end
end
pc.setqf("items_checking", checking_count - checked)
if checked == checking_count then
pc.delqf("next_check_time")
pc.delqf("items_checking_fail")
pc.delqf("items_checking_succ")
pc.setqf("items_given", given + succ)
cmdchat("bio finish,"..fail..","..succ)
else
pc.setqf("next_check_time", next_check_time + checked * data["check_item_time"])
pc.setqf("items_checking_fail", fail)
pc.setqf("items_checking_succ", succ)
timer("check_next_item", (next_check_time + checked * data["check_item_time"]) - os.time())
end
else
timer("check_next_item", next_check_time - os.time())
end
end
end
end
end
end
-- levelup new quest check
when levelup with bio_system.quest_exists() and bio_system.get_state() == 0 begin
local currentQuestID = bio_system.get_id()
local data = locale.BIOSYSTEM_QUEST_LIST[currentQuestID]
if data["min_level"] == pc.get_level() then
local v = find_npc_by_vnum(20084)
if v != 0 then
target.vid("__TARGET__", v)
end
end
end
-- dialog with bio
when __TARGET__.target.click with bio_system.quest_exists() and bio_system.get_state() == 0 begin
target.delete("__TARGET__")
cmdchat("bio new,"..bio_system.get_id())
bio_system.change_state()
end
when 20084.chat."Die Forschung von Zephir" with bio_system.quest_exists() and bio_system.get_state() == 1 begin
setskin(NOWINDOW)
local currentQuestID = bio_system.get_id()
local data = locale.BIOSYSTEM_QUEST_LIST[currentQuestID]
local given = pc.getqf("items_given")
if given >= data["item_count_need"] then
local items_left = pc.getqf("items_checking")
if items_left > 0 then
pc.give_item2(data["item_vnum_need"], items_left)
end
local items = data["reward"]["item"]
for i = 1, table.getn(items) do
pc.give_item2(items[i][1], items[i][2])
end
local attrs = data["reward"]["attr"]
for i = 1, table.getn(attrs) do
affect.add_collect(attrs[i][1], attrs[i][2], 60*60*24*365*60)
end
if data["reward"]["gold"] > 0 then
pc.change_money(data["reward"]["gold"])
end
if data["reward"]["exp"] > 0 then
pc.give_exp2(data["reward"]["exp"])
end
bio_system.change_state()
bio_system.change_id()
pc.delqf("items_given")
pc.delqf("items_checking")
pc.delqf("items_checking_fail")
pc.delqf("items_checking_succ")
cmdchat("bio reward,"..items_left)
currentQuestID = bio_system.get_id()
data = locale.BIOSYSTEM_QUEST_LIST[currentQuestID]
if data["min_level"] <= pc.get_level() then
local v = find_npc_by_vnum(20084)
if v != 0 then
target.vid("__TARGET__", v)
end
end
else
local items_checking = pc.getqf("items_checking")
local timeLeft = 0
if items_checking > 0 then
timeLeft = pc.getqf("next_check_time") - os.time() + (items_checking - 1) * data["check_item_time"]
end
cmdchat("bio current,"..q.getcurrentquestindex()..","..data["item_vnum_need"]..","..data["item_count_need"]..","..pc.getqf("items_given")..","..pc.getqf("items_checking")..","..timeLeft)
end
end
-- client command to leave items
when button with bio_system.quest_exists() and bio_system.get_state() == 1 begin
setskin(NOWINDOW)
local slot = tonumber(input()) or -1
if slot < 0 or slot >= 90 then
return
end
if not item.select_cell(slot) then
return
end
local currentQuestID = bio_system.get_id()
local data = locale.BIOSYSTEM_QUEST_LIST[currentQuestID]
if item.get_vnum() != data["item_vnum_need"] then
return
end
if pc.getqf("items_given") >= data["item_count_need"] then
notice("Du hast bereits genügend Forschungsmaterial abgegeben.")
return
end
local cur = pc.getqf("items_checking")
pc.setqf("items_checking", cur + item.get_count())
if cur == 0 then
pc.setqf("next_check_time", data["check_item_time"] + os.time())
timer("check_next_item", data["check_item_time"])
end
item.remove_stack()
end
-- check an item [loop_timer]
when check_next_item.timer begin
bio_system.OnTimerExecute(false)
end
when check_next_item_loop.timer begin
bio_system.OnTimerExecute(true)
end
end
end
vllt kann mir ja jemand sagen woran es liegt
|
|
|
06/05/2015, 18:34
|
#4
|
elite*gold: 0
Join Date: Jun 2015
Posts: 17
Received Thanks: 0
|
Nice !
|
|
|
06/05/2015, 19:18
|
#5
|
elite*gold: 0
Join Date: Apr 2015
Posts: 16
Received Thanks: 2
|
Wieso nice ? die quest bring dir eh nix
|
|
|
06/05/2015, 19:36
|
#6
|
elite*gold: 0
Join Date: Jun 2015
Posts: 17
Received Thanks: 0
|
NEin
Quote:
Originally Posted by xC3POx
Wieso nice ? die quest bring dir eh nix 
|
Nice, damit meine ich das du es hast^^ Also schon 777 Rechte gegeben ?
|
|
|
06/07/2015, 17:10
|
#7
|
elite*gold: 0
Join Date: Apr 2015
Posts: 16
Received Thanks: 2
|
Klar schon alles mögliche probiert finde den fehler einfach nicht...
|
|
|
10/29/2015, 22:10
|
#8
|
elite*gold: 0
Join Date: May 2013
Posts: 396
Received Thanks: 92
|
Where can I find that system?
|
|
|
10/31/2015, 01:40
|
#9
|
elite*gold: 0
Join Date: May 2013
Posts: 396
Received Thanks: 92
|
Edit: found, thanks you're the best.
|
|
|
Similar Threads
|
Flag-Sro l Cap110 l Coin System l Fight-Power System l New System l High Rate
07/06/2014 - SRO PServer Advertising - 1 Replies
http://i.epvpimg.com/Q62Bb.png
if you Like Old School Join us
Web Site
Flag-Sro - Silkroad Online Private Server
Download
Flag-Sro - Silkroad Online Private Server
Register
Flag-Sro - Silkroad Online Private Server
FacBook
https://www.facebook.com/pages/Flag-Sro/423472161 101339
|
All times are GMT +1. The time now is 15:45.
|
|