-
Posts
258 -
Joined
-
Last visited
-
Days Won
4 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by [007]DawisHU
-
-
Hello,
23 hours ago, Avisek said:Hello,
I have very nice SF but there is one problem..I think It was working When I turned it on, but now its not working.. When I am going to exp (for example with new character), Yangs don't drop..
Can you help me please?
Thank you!FIX
SpoilerServerSide:
SpoilerPlayer -> mob_proto (player.mob_proto)
Search Gold_min and Gold_max add value and enjoy -
Hello,
Sorry for this,
Beginner's Work with vanillia core.
OR
Get 100% virgin source and let's start working on this
i working 100% own source
2.????
3.Ymir work and Webzen and GameForge not publishing source(s)
Metin2's server file have MySQL and Game+DB + client...
Or make all from 0
YES from 0
4,
Search on internet or here in Metin2Dev -
Hello,
On 2017. 04. 05. at 7:43 PM, avertuss said:Hi. I have problem with this error in syserr
OnButton: QUEST There's suspended quest state, can't run new quest state (quest: wskaznikHpWroga pc:
Quest
quest wskaznikHpWroga begin state start begin when login begin cmdchat("super_quest "..q.getcurrentquestindex()) end when info or button begin cmdchat("GetInputStart") local vid = input(cmdchat("get_input_value")) cmdchat("GetInputStop") local old_pc = pc.select(vid) local name = pc.get_name() local hp = pc.get_hp() local max_hp = pc.get_max_hp() pc.select(old_pc) cmdchat("pvp_zdruwko "..name.."|"..hp.."|"..max_hp) end end end
Last 3x end press 2x enter
Like this
SpoilerOriginal:
Spoilerend
end
endChange to:
Spoilerend
end
endOriginal is this?
Spoiler-- Quest Opponents HP and MP during pvp
-- Made by: Endymion_
-- Server: Ascarial.pl
quest wskaznikHpWroga begin
state start begin
when login begin
cmdchat("super_quest "..q.getcurrentquestindex())
endwhen info or button begin
cmdchat("get_input_start")
local vid = input(cmdchat("get_input_value"))
cmdchat("get_input_end")
local old_pc = pc.select(vid)
local name = pc.get_name()
local hp = pc.get_hp()
local max_hp = pc.get_max_hp()
local mp = pc.get_sp()
local max_mp = pc.get_max_sp()
pc.select(old_pc)
cmdchat("pvp_zdruwko "..name.."|"..hp.."|"..max_hp.."|"..mp.."|"..max_mp)
end
end
end -
Hello,
idea or imagine,
SpoilerClient side:
SpoilerGo to locale_XY/locale/XY/locale_game.txt.
Search this and Copy from
TOOLTIP_ANTI_CRITICAL_PCT
to
TOOLTIP_WRISTLET
CTRL+CGo to server side:
Spoiler/quest/locale.lua
and paste to the locale.lua
CTRL+V
CTRL+H
TOOLTIP_ CHANGE TO locale.TOOLTIP_
CTRL+SIn quest example:
say(locale.TOOLTIP_ANTI_CTRITICAL_PCT)
say(locale.TOOLTIP_ANTI_CRITICAL_PCT)say("+10%")
Or
Make this with MySQL -
Hello,
problem is UiInventory.py
replace coordinatie and will work -
1 hour ago, Denny2399 said:
How?
Hello,
open metin2.exe with hexeditor and read the lzo key (or eix or epk) edit u packer with hxeditor and replace lzo key- 1
-
1) when login means if single logs it will start ?
Answer: Yes.
Use server_timer and 2th player logged in not started.
SpoilerIn the quest
Spoilerquest _.quest_file_name_here begin
state start begin
when XY.chat."Name of run" begin
when logout begin
if pc.get_map_index() == mapindex then
pc.delqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME") --when player logout dell qf (for unbugg)
end --if/else
end --whenwhen login with pc.get_map_index() == mapindex and pc.getqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME")==0 begin
d.exit_all() --warp all to the city
end --whenwhen login with pc.get_map_index() == mapindex begin --Example: when login with pc.get_map_index() == 110 begin
pc.setqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME")
server_timer("Timer_name", Number) --Example: server_timer("logined", 10) --10 sec and start
notice("") --Example: notice("XY group/monsters are coming!Prepare the battle!10 sec and monsters are comming!")
end --endreplace whit this
Spoilerquest _.quest_file_name_here begin
state start begin
--> --when XY.chat."Name of run" begin DELETE THIS wrong quest ^^ <---
when logout begin
if pc.get_map_index() == mapindex then
pc.delqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME") --when player logout dell qf (for unbugg)
end --if/else
end --whenwhen login with pc.get_map_index() == mapindex begin --Example: when login with pc.get_map_index() == 110 begin
if game.get_event_flag("Dawis_metin2dev") >= 1 then
end
if game.get_event_flag("Dawis_metin2dev") >= 0
pc.setqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME")
game.set_event_flag("Dawis_metin2dev,1")
server_timer("Timer_name", Number) --Example: server_timer("logined", 10) --10 sec and start
notice("") --Example: notice("XY group/monsters are coming!Prepare the battle!10 sec and monsters are comming!")
end --end2.
SpoilerIn quest replace
Spoilerwhen Timer_name.server_timer begin --Example: when logined.server_timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
end --endwhen XY.kill begin
clear_server_timer('fail') --clear fail timer
notice("") --Example: notice("Monster are spawned,Kill them all!")
timer("next_wave,5")
end
when next_wave.timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
endwhen XY.kill begin
clear_server_timer('fail') --clear fail timer
notice("") --Example: notice("Monster are spawned,Kill them all!")
timer("next_wave1,5")
end
when next_wave1.timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
endwhen XY.kill begin
clear_server_timer('fail') --clear fail timer
notice("") --Example: notice("Monster are spawned,Kill them all!")
timer("next_wave2,5")
end
when next_wave2.timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
end
when fail.server_timer begin
notice("Failed!10 sec and teleportating XY city/map")
npc.purge() --EveryNPC on the map are dissappear / purge
d.kill_all() --kill all monster
d.exit_all() --Warp all to the city
end --end
when boss_id.kill begin OR when XY.use begin
clear_server_timer('fail') --clear fail timer
notice("Congratulations! ETC ETC ETC")
timer("warp_all,10") --timer: warp all to the city
end --end
when warp_all.timer begin
d.exit_all() --warp all to the city
game.set_event_flag("Dawis_metin2dev,0")
end --end
end --state
end --questOr full edited quest (COPY PASTE READY)
Spoilerquest _.quest_file_name_here begin
state start begin
when logout begin
if pc.get_map_index() == mapindex then
pc.delqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME") --when player logout dell qf (for unbugg)
end --if/else
end --whenwhen login with pc.get_map_index() == mapindex begin --Example: when login with pc.get_map_index() == 110 begin
if game.get_event_flag("Dawis_metin2dev") >= 1 then
end
if game.get_event_flag("Dawis_metin2dev") >= 0
pc.setqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME")
game.set_event_flag("Dawis_metin2dev,1")
server_timer("Timer_name", Number) --Example: server_timer("logined", 10) --10 sec and start
notice("") --Example: notice("XY group/monsters are coming!Prepare the battle!10 sec and monsters are comming!")
end --endwhen Timer_name.server_timer begin --Example: when logined.server_timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
end --endwhen XY.kill begin
clear_server_timer('fail') --clear fail timer
notice("") --Example: notice("Monster are spawned,Kill them all!")
timer("next_wave,5")
end
when next_wave.timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
endwhen XY.kill begin
clear_server_timer('fail') --clear fail timer
notice("") --Example: notice("Monster are spawned,Kill them all!")
timer("next_wave1,5")
end
when next_wave1.timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
endwhen XY.kill begin
clear_server_timer('fail') --clear fail timer
notice("") --Example: notice("Monster are spawned,Kill them all!")
timer("next_wave2,5")
end
when next_wave2.timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
end
when fail.server_timer begin
notice("Failed!10 sec and teleportating XY city/map")
npc.purge() --EveryNPC on the map are dissappear / purge
d.kill_all() --kill all monster
d.exit_all() --Warp all to the city
end --end
when boss_id.kill begin OR when XY.use begin
clear_server_timer('fail') --clear fail timer
notice("Congratulations! ETC ETC ETC")
timer("warp_all,10") --timer: warp all to the city
end --end
when warp_all.timer begin
d.exit_all() --warp all to the city
game.set_event_flag("Dawis_metin2dev,0")
pc.delqf("ENTER_HERE_UNIQUE_OPTION_OR_NAME")
end --end
end --state
end --quest- 1
-
1 hour ago, Human said:
thanks ken its nice to understand
Thanks Dawishu you explained and fill 75% of my quest request thanks
Only few questions i got in your quest sorry for asking
1) when login means if single logs it will start ?
I meant if 1 player logs it start
again if 2nd player logs it will start again with timer from 0 ?
2) In this you started the quest and server timer starts with say 4800 secs so within that mobs must be killed
but my quest is different quest is started like u with server timer says 4800 and 1st set of mobs must be spawned
After 60 secs it must say New set of mobs will spawned in 5 secs and again server time must be reduced to 4700 old mobs must be purged
same after 120 secs it must say New sets mobs will be spawned in 5 secs and again server time must be reduced to 4500
and so and so
and its good at end if they kill the boss it must clear timer and all must go to town ... even if one killed and someother didnt even touched the mob all just teleported
and also if timer ends it must teleport to town ..
and thanks both of you for this answer
Spoiler -
On 2017. 05. 17. at 4:34 PM, Human said:
Hi there,
I just need to make a quest with timing that is
In a map timer starts
where regen1.txt or mob set 1.txt will spawn those mobs at required spots and they will be there for (x) mins duration after that all will vanished after (x) mins is over
saying announcement of " new Monsters will be spawned in 5 secs "
again new set regen2.txt of mobs will spawned at locations for (y) mins duration and vanished after (y)mins of time
saying announcement of " new Monsters will be spawned in 5 secs "
i dont know how to create quest using timer so any help will be appreciated.
If you want you can pm me here so i provide any other messenger to add me
Thanks in advance
Hello,
Maybe?
Spoilerquest _.quest_file_name_here begin
state start begin
when login with pc.get_map_index() == mapindex begin --Example: when login with pc.get_map_index() == 110 begin
server_timer("Timer_name", Number) --Example: server_timer("logined", 10) --10 sec and start
notice("") --Example: notice("XY group/monsters are coming!Prepare the battle!10 sec and monsters are comming!")
end --whenwhen Timer_name.server_timer begin --Example: when logined.server_timer begin
regen_in_map(mapindex, path) --Example: regen_in_map(110, d.regen_file("dawis_work/elite_dungeon/hard_base_attack/last_rowregen.txt")(add 1 boss or item)
notice("") --Example: notice("Monster are spawned,Kill them all!")
server_timer("fail", 4800) --4800 sec and failed
end --whenwhen fail.server_timer begin
notice("Failed!10 sec and teleportating XY city/map")
npc.purge() --EveryNPC on the map are dissappear / purge
d.kill_all() --kill all monster
timer("warp_all,2") --warp all to the city
end --when
when boss_id.kill begin OR when XY.use begin
clear_server_timer('fail') --clear fail timer
notice("Congratulations! ETC ETC ETC")
timer("warp_all,10") --timer: warp all to the city
end --when
when warp_all.timer begin
d.exit_all() --warp all to the city
end --when
end --state
end --quest -
Hello,
Example?
Or like this ? -
Hello again, I now found this error
Why u no have the REAL syserr? Server don't communicating whit client in cube
REAL ORIGINAL ERROR:
Spoiler0529 21:00:39774 :: Traceback (most recent call last):
0529 21:00:39774 :: File "game.py", line 1677, in BINARY_Cube_Open
0529 21:00:39774 :: File "game.py", line 1768, in BINARY_Cube_MaterialInfo
0529 21:00:39774 :: IndexError
0529 21:00:39775 :: :
0529 21:00:39775 :: list index out of range
0529 21:00:39775 ::What is it ?
SpoilerRoot/Game.py -> (line 1677)
Spoilerdef BINARY_Cube_Open(self):
#constInfo.CRAFTING_NPC_ID_OLD = constInfo.CRAFTING_NPC_ID
self.interface.OpenCubeWindow()
#if constInfo.CRAFTING_NPC_ID != constInfo.CRAFTING_NPC_ID_OLD:
self.BINARY_Cube_ResultList()
self.BINARY_Cube_MaterialInfo()
self.interface.wndCube.Refresh()
#constInfo.CRAFTING_NPC_ID_OLD = constInfo.CRAFTING_NPC_ID
#else:
# cubeInfoList = self.cubeInformation[constInfo.CRAFTING_NPC_ID]
#
# i = 0
# for cubeInfo in cubeInfoList:
# self.interface.wndCube.AddCubeResultItem(cubeInfo["vnum"], cubeInfo["count"])
#
# j = 0
# for materialList in cubeInfo["materialList"]:
# for materialInfo in materialList:
# itemVnum, itemCount = materialInfo
# self.interface.wndCube.AddMaterialInfo(i, j, itemVnum, itemCount)
# j = j + 1
#
# i = i + 1
#
# self.interface.wndCube.AddMaterialInfo(i, j, itemVnum, itemCount)
# self.interface.wndCube.Refresh()Root/Game.py -> (line 1768)
Spoilerdef BINARY_Cube_MaterialInfo(self):
# Material Text Format : 125,1|126,2|127,2|123,5&555,5&555,4/120000
try:
#print listText
listText = constInfo.CRAFTING_NEED
startIndex = 0
if 3 > len(listText):
dbg.TraceError("Wrong Cube Material Infomation")
return 0
eachResultList = listText.split("@")
cubeInfo = self.cubeInformation[constInfo.CRAFTING_NPC_ID]
itemIndex = 0
for eachResultText in eachResultList:
cubeInfo[startIndex + itemIndex]["materialList"] = [[], [], [], [], []]
materialList = cubeInfo[startIndex + itemIndex]["materialList"]
gold = 0
splitResult = eachResultText.split("/")
if 1 < len(splitResult):
gold = int(splitResult[1])
#print "splitResult : ", splitResult
eachMaterialList = splitResult[0].split("&")
i = 0
for eachMaterialText in eachMaterialList:
complicatedList = eachMaterialText.split("|")
if 0 < len(complicatedList):
for complicatedText in complicatedList:
(itemVnum, itemCount) = complicatedText.split(",")
itemVnum = int(itemVnum)
itemCount = int(itemCount)
self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)
materialList.append((itemVnum, itemCount))
else:
itemVnum, itemCount = eachMaterialText.split(",")
itemVnum = int(itemVnum)
itemCount = int(itemCount)
self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)
materialList.append((itemVnum, itemCount))
i = i + 1
itemIndex = itemIndex + 1
#self.interface.wndCube.Refresh()
self.interface.wndCube.SetScrollStep(itemIndex)
except RuntimeError, msg:
dbg.TraceError(msg)
return 0
pass
# END_OF_CUBE
How to fix?
SpoilerReplace 4 item in cube and automatically loaded and refresh ( ymir or maybe webzen bug or source )
It work?
On 2017. 03. 23. at 10:38 PM, TheEnd said:Same problem after search
On 2017. 03. 23. at 8:04 PM, TheEnd said:It works for you
the Same problem :@ Fuck is problem -
29 minutes ago, z3imx said:
2-how i change it and change it for what?
3-i dont know anything about python
So if there is anyway to ban ip with source
4-can u give example for quest to know
cuz i dont really know what u said sry:(
2. Search on internet or writte 100% own code
3. Is hard u will need to know anything about python.
4. Yes.iam now not know. I travelled in to my house i will h3lp u
-
hello,
43 minutes ago, z3imx said:Hello
i"m new member i hobe i not bothering anyone here
i have just 3-4 questions
1-how to combile source server
2-how i can see the whispering people's in the game and trade
3-how i can ban someone ip without source (if there is)
4-how i can ban anyone in the game without source(if there is)
and finely sry for my bad launguge
@Hik answered.
2.u will need to edit this => (full path) Root/UiExchange.py
3.
A,
MySQL.
B,
Awesome python code
U will need to configure python ( fetching u webhosting banned,txt into client folder) (Automatical downloading banned.txt no change to escape ) + make MD5 hash if modified banned.txt client is exited/get 1 popup message (after patch runned, client working again )
4,
MySQL player.player "STATUS" change OK to example BOT
locale_XY/locale/XY/locale_interface add banned_reason_BOT
go to root/intrologin.py
Add bot func whit locale_interface
U will need help,send me Private Message
Eng bad sry ^^Or writte quest
Example
mysql_query("UPDATE player.player SET STATUS='"..inputed1.."' WHERE name = "..inputed2..") --inputed 1 STATUS-- INPUTED2 player name.
replace with timer
timer("banned", "..inputed3..")replace with notice
example
Notice
"..inputed2.." has been banned for "..inputed1.." ! unban "..inputed3.." time later
when banned.timer begin
mysql_query("UPDATE player.player SET STATUS='OK' WHERE name = "..inputed2..")
Automatic unban if u want use notice
Example
Notice
XY named player has been unbanned
This is EXAMPLEOr make banlist.php in web
-
5 minutes ago, JBs said:
Thanks a lot.i fell bad now xd.
Epic fail
Close request
Not problem
#Close#Topic#Solved
Click an topic and select solved or close -
1 hour ago, JBs said:
How can i see my private message on this forum fron cellphone i cant find nowhere the button
Hello
SpoilerFirst
SpoilerSecond
- 1
-
Spoiler
Hello,
Thank for Basic code @Zetsu
" + " sent0524 19:25:22388 :: Traceback (most recent call last):
0524 19:25:22389 :: File "uiQuest.py", line 712, in OnImage
0524 19:25:22389 :: File "ui.py", line 3491, in MakeImageBox
0524 19:25:22389 :: File "ui.py", line 124, in SetParent
0524 19:25:22389 :: AttributeError
0524 19:25:22389 :: :
0524 19:25:22389 :: 'NoneType' object has no attribute 'hWnd'
0524 19:25:22389 ::i no have idea what is problem.. i tried everything...search everywhere .... i not found what is wrong.. i got some problem/error (re added zetsu's gift system problem again appeared. (i tried to add to original virgin client problem again ^^) )
-
On 2014. 12. 22. at 11:24 AM, iRETEMAG said:
Hello,
Fixed hereSpoilerquest akapo_map begin
state start begin
when enter begin
if pc.get_map_index() == 103 then
if pc.getqf("enter_time") <= get_time() then
say_title("Information:")
say("One hour passed.")
say("You will be teleported to village soon.")
wait()
warp_to_village()
end
end
clear_letter()
end
when 20090.chat."Akapo Map (Lvl. 95)" begin
say_title("Heuk Young:")
if pc.get_level() < 95 then
if pc.getqf("enter_time") + (60* 60 * 24) <= get_time() then -- if player character flag "enter_time" + (60s * 60m * 24h) is lower than actual time tell player he can't enter
say("Do you really want to warp to")
say("Akapo Map?")
say("")
local s = select("Yes", "No")
if s == 2 then
return
end
elseif s == 1 then
say_title("Heuk Young:")
say("You will warp for a moment.")
say("Please be carefull.")
wait()
set_state(warp_to_map)
endelse
local remain_hours = math.ceil((pc.getqf("enter_time") + (60* 60 * 24) - get_time()) / 60 / 60)
say("You can't enter right now to Akapo Map.")
say("Please wait "..remain_hours.." hours more.")
end
end
end
state warp_to_map begin
when enter begin
pc.setqf("enter_time", get_time() + 60 * 60)
pc.warp(45600, 45600)
loop_timer('check_time', 1 * 30) -- one time per 30 seconds
end
when check_time.timer begin
if pc.getqf("enter_time") <= get_time() then
set_state(start)
end
end
when login begin
if pc.getqf("enter_time") <= get_time() then
set_state(start)
end
if pc.get_map_index() == 103 then
send_letter("Akapo Map")
local rest_time = pc.getqf("enter_time") - get_time()
q.set_clock("Rest time", rest_time)
end
loop_timer('check_time', 1 * 30)
end
when button or info begin
say_title("Akapo Map")
say("You're allowed to enter to Akapo Map.")
if pc.get_map_index() == 103 then
local remain_minutes = math.ceil((pc.getqf("enter_time") - get_time()) / 60)
local remain_seconds = pc.getqf("enter_time") - (remain_minutes) * 60
say("")
say_reward("Remaining time: "..remain_minutes.."m "..remain_seconds.."s.")
else
say("Go to Heuk Young to enter there.")
end
end
when 20090.chat."Return to Akapo" begin
say_title("Heuk Young:")
say("I'll teleport you soon.")
say("Please be carefull.")
pc.warp(45600, 45600)
end
end
endLast quest is giving this error:
quest akapo_map begin state start begin when enter begin if pc.get_map_index() == 103 then if pc.getqf("enter_time") <= get_time() then say_title("Information:") say("One hour passed.") say("You will be teleported to village soon.") wait() warp_to_village() end end clear_letter() end when 20090.chat."Akapo Map (Lvl. 95)" begin say_title("Heuk Young:") ----"01234567890123456789012345678901234567890" if pc.get_level() >= 95 then if pc.getqf("enter_time") + (60* 60 * 24) <= get_time() then -- if player character flag "enter_time" + (60s * 60m * 24h) is lower than actual time tell player he can't enter say("Do you really want to warp to") say("Akapo Map?") say("") local s = select("Yes", "No") if s == 2 then return elseif s == 1 then say_title("Heuk Young:") say("You will warp for a moment.") say("Please be carefull.") wait() set_state(warp_to_map) end else local remain_hours = math.ceil((pc.getqf("enter_time") + (60* 60 * 24) - get_time()) / 60 / 60) say("You can't enter right now to Akapo Map.") say("Please wait "..remain_hours.." hours more.") else say("You must have at least 95 level.") say("Akapo Map isn't made for noobs.") end end end state warp_to_map begin when enter begin pc.setqf("enter_time", get_time() + 60 * 60) pc.warp(45600, 45600) loop_timer('check_time', 1 * 30) -- one time per 30 seconds end when check_time.timer begin if pc.getqf("enter_time") <= get_time() then set_state(start) end end when login begin if pc.getqf("enter_time") <= get_time() then set_state(start) end if pc.get_map_index() == 103 then send_letter("Akapo Map") local rest_time = pc.getqf("enter_time") - get_time() q.set_clock("Rest time", rest_time) end loop_timer('check_time', 1 * 30) end when button or info begin say_title("Akapo Map") say("You're allowed to enter to Akapo Map.") if pc.get_map_index() == 103 then local remain_minutes = math.ceil((pc.getqf("enter_time") - get_time()) / 60) local remain_seconds = pc.getqf("enter_time") - (remain_minutes) * 60 say("") say_reward("Remaining time: "..remain_minutes.."m "..remain_seconds.."s.") else say("Go to Heuk Young to enter there.") end end when 20090.chat."Return to Akapo" begin say_title("Heuk Young:") say("I'll teleport you soon.") say("Please be carefull.") pc.warp(45600, 45600) end end end
-
Hello,
else
if pet.count_summoned() < 1 then --change 1 to u want example 5 ..... +5 pet is summoned ( only one of type)
cmdchat(buffx)
pet.summon(mobVnum, petName, false)
else
syschat("Előbb küld el az előző petet. ")
pet.unsummon(mobVnum)
end
Eng bad sry
good luck -
On 2017. 04. 04. at 9:43 PM, Distraught said:
and what to do for it?
Spoiler1. Delete some monster.
OR,
Spoiler2.put another channel (mapindex)....
example.
Game99 put to channel 1-2 or channel 1-2 put Game99
Another problem:
Maybe channel1_1 mapindex put to channel1OR,
Spoilermob_proto--> "Move_speed" is to high... (Brave Cape u look monster is going .... and take DMG CTRL + H or + G (in horse,mount etc...) under u .... sry eng bad
-
Hello,
Thank for Basic code @Zetsu
" + " sent*UnBugged* -
On 2015. 12. 30. at 0:58 PM, enzi said:
But i am using new taskbar then in my uiTaskBar.py i got defined this on (521):
and loong.py is here:
import uiScriptLocale
import localeInfo
import dbg
import name
ROOT = "d:/ymir work/ui/game/"#Y_ADD_POSITION = -2
Y_ADD_POSITION = 0
if not localeInfo.APP_TITLE=='M'+'e'+'t'+'i'+'n'+'2'+'N'+'e'+'o'+'c'+'o'+'n':
dbg.LogBox("GLOBAL_ERROR", 'GLOBAL_ERROR')
else:
if not name.APP_TITLE=='M'+'e'+'t'+'i'+'n'+'2'+'N'+'e'+'o'+'c'+'o'+'n':
dbg.LogBox("GLOBAL_ERROR", 'GLOBAL_ERROR')
else:
window = {
"name" : "TaskBar","x" : 0,
"y" : SCREEN_HEIGHT - 65,"width" : SCREEN_WIDTH,
"height" : 68,"children" :
(
## Board
{
"name" : "Base_Board_01",
"type" : "expanded_image","x" : 0,
"horizontal_align":"center",
# "x" : 263,
"y" : 5,# "rect" : (0.0, 0.0, float(SCREEN_WIDTH - 263 - 256) / 256.0, 0.0),
"image" : "d:/global/loong/barra2.dds",
"children" :
(
## Gauge
{
"name" : "Gauge_Board",
"type" : "image","x" : 0,
"y" : -10*5 + Y_ADD_POSITION,"image" : ROOT + "taskbar/gauge.sub",
"children" :
(
{
"name" : "RampageGauge",
"type" : "ani_image","x" : 8,
"y" : 4,
"width" : 40,
"height" : 40,"delay" : 6,
"images" :
(
"D:/Ymir Work/UI/Pattern/HPGauge/01.tga",
)
},
{
"name" : "RampageGauge2",
"type" : "ani_image","x" : 8,
"y" : 4,
"width" : 40,
"height" : 40,"delay" : 6,
"images" :
(
"D:/Ymir Work/UI/Pattern/HPGauge/01.tga",
)
},
{
## 툴팁을 띄우기 위한 윈도우
"name" : "HPGauge_Board",
"type" : "window","x" : 59,
"y" : 14,"width" : 95,
"height" : 11,"children" :
(
{
"name" : "HPRecoveryGaugeBar",
"type" : "bar","x" : 0,
"y" : 0,
"width" : 95,
"height" : 13,
"color" : 0x55ff0000,
},
{
"name" : "HPGauge",
"type" : "ani_image","x" : 0,
"y" : 0,"delay" : 6,
"images" :
(
"D:/Ymir Work/UI/Pattern/HPGauge/01.tga",
"D:/Ymir Work/UI/Pattern/HPGauge/02.tga",
"D:/Ymir Work/UI/Pattern/HPGauge/03.tga",
"D:/Ymir Work/UI/Pattern/HPGauge/04.tga",
"D:/Ymir Work/UI/Pattern/HPGauge/05.tga",
"D:/Ymir Work/UI/Pattern/HPGauge/06.tga",
"D:/Ymir Work/UI/Pattern/HPGauge/07.tga",
),
},
),
},
{
## 툴팁을 띄우기 위한 윈도우
"name" : "SPGauge_Board",
"type" : "window","x" : 59,
"y" : 24,"width" : 95,
"height" : 11,"children" :
(
{
"name" : "SPRecoveryGaugeBar",
"type" : "bar","x" : 0,
"y" : 0,
"width" : 95,
"height" : 13,
"color" : 0x550000ff,
},
{
"name" : "SPGauge",
"type" : "ani_image","x" : 0,
"y" : 0,"delay" : 6,
"images" :
(
"D:/Ymir Work/UI/Pattern/SPGauge/01.tga",
"D:/Ymir Work/UI/Pattern/SPGauge/02.tga",
"D:/Ymir Work/UI/Pattern/SPGauge/03.tga",
"D:/Ymir Work/UI/Pattern/SPGauge/04.tga",
"D:/Ymir Work/UI/Pattern/SPGauge/05.tga",
"D:/Ymir Work/UI/Pattern/SPGauge/06.tga",
"D:/Ymir Work/UI/Pattern/SPGauge/07.tga",
),
},
),
},
{
## 툴팁을 띄우기 위한 윈도우
"name" : "STGauge_Board",
"type" : "window","x" : 59,
"y" : 38,"width" : 95,
"height" : 6,"children" :
(
{
"name" : "STGauge",
"type" : "ani_image","x" : 0,
"y" : 0,"delay" : 6,
"images" :
(
"D:/Ymir Work/UI/Pattern/STGauge/01.tga",
"D:/Ymir Work/UI/Pattern/STGauge/02.tga",
"D:/Ymir Work/UI/Pattern/STGauge/03.tga",
"D:/Ymir Work/UI/Pattern/STGauge/04.tga",
"D:/Ymir Work/UI/Pattern/STGauge/05.tga",
"D:/Ymir Work/UI/Pattern/STGauge/06.tga",
"D:/Ymir Work/UI/Pattern/STGauge/07.tga",
),
},
),
},),
},
{
"name" : "Porciento",
"type" : "text",
"x" : 134,
"y" : 3,
"text" : "0.00%",
},
{
"name" : "Progreso",
"type" : "progreso",
"x" : 155,
"y" : 6,"width" : 712,
"color" : "loong",
},
{
"name" : "EXP_Gauge_Board",
"type" : "image","x" : 158,
"y" : 15 + Y_ADD_POSITION,"image" : ROOT + "taskbar/exp_gauge.sub",
"children" :
(
{
"name" : "EXPGauge_01",
"type" : "expanded_image","x" : 5,
"y" : 9,"image" : ROOT + "TaskBar/EXP_Gauge_Point.sub",
},
{
"name" : "EXPGauge_02",
"type" : "expanded_image","x" : 30,
"y" : 9,"image" : ROOT + "TaskBar/EXP_Gauge_Point.sub",
},
{
"name" : "EXPGauge_03",
"type" : "expanded_image","x" : 55,
"y" : 9,"image" : ROOT + "TaskBar/EXP_Gauge_Point.sub",
},
{
"name" : "EXPGauge_04",
"type" : "expanded_image","x" : 80,
"y" : 9,"image" : ROOT + "TaskBar/EXP_Gauge_Point.sub",
},
),
},## Mouse Button
{
"name" : "LeftMouseButton",
"type" : "button","x" : 154,
"y" : 25,"default_image" : "d:/global/loong/i_1.sub",
"over_image" : "d:/global/loong/i_2.sub",
"down_image" : "d:/global/loong/i_3.sub",
},
{
"name" : "RightMouseButton",
"type" : "button","x" : 429,
"y" : 25,
"horizontal_align":"right",
"default_image" : ROOT + "TaskBar/Mouse_Button_Move_01.sub",
"over_image" : ROOT + "TaskBar/Mouse_Button_Move_02.sub",
"down_image" : ROOT + "TaskBar/Mouse_Button_Move_03.sub",
},
## Button
{
"name" : "CharacterButton",
"type" : "button",
"horizontal_align":"right",
"x" : 330,
"y" : 28,"tooltip_text" : uiScriptlocaleInfo.TASKBAR_CHARACTER,
"default_image" : "d:/global/loong/c_1.sub",
"over_image" : "d:/global/loong/c_2.sub",
"down_image" : "d:/global/loong/c_3.sub",
},
{
"name" : "InventoryButton",
"type" : "button","x" : 286,
"y" :25,
"horizontal_align":"right",
"tooltip_text" : uiScriptlocaleInfo.TASKBAR_INVENTORY,"default_image" : "d:/global/loong/i_1.sub",
"over_image" : "d:/global/loong/i_2.sub",
"down_image" : "d:/global/loong/i_3.sub",
},
{
"name" : "MessengerButton",
"type" : "button","x" : 251,
"y" : 30,
"horizontal_align":"right",
"tooltip_text" : uiScriptlocaleInfo.TASKBAR_MESSENGER,"default_image" : "d:/global/loong/a_1.sub",
"over_image" : "d:/global/loong/a_2.sub",
"down_image" : "d:/global/loong/a_3.sub",
},
{
"name" : "SystemButton",
"type" : "button",
"horizontal_align":"right",
"x" : 210,
"y" : 25,"tooltip_text" : uiScriptlocaleInfo.TASKBAR_SYSTEM,
"default_image" : "d:/global/loong/cf_1.sub",
"over_image" : "d:/global/loong/cf_2.sub",
"down_image" : "d:/global/loong/cf_3.sub",
},
{
"name" : "TrollLocoText",
"type" : "text",
"horizontal_align":"right",
"x" : 150,
"y" : 47,
"text":'SG',
},## QuickBar
{
"name" : "quickslot_board",
"type" : "window","x" :210,
"y" : 21,
# "horizontal_align":"center",
"width" : 350,
"height" : 37,"children" :
(
{
"name" : "ChatButton",
"type" : "button","x" : 115,
"y" : 1,
"tooltip_text" : uiScriptlocaleInfo.TASKBAR_CHAT,"default_image" : ROOT + "TaskBar/Chat_Button_01.sub",
"over_image" : ROOT + "TaskBar/Chat_Button_02.sub",
"down_image" : ROOT + "TaskBar/Chat_Button_03.sub",
},
{
"name" : "quick_slot_1",
"type" : "grid_table","start_index" : 0,
"x" : -11,
"y" : 3,
"x_count" : 4,
"y_count" : 1,
"x_step" : 32,
"y_step" : 32,"image" : "d:/ymir work/ui/Public/Slot_Base.sub",
"image_r" : 1.0,
"image_g" : 1.0,
"image_b" : 1.0,
"image_a" : 1.0,"children" :
(
{ "name" : "slot_1", "type" : "image", "x" : 3, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/1.sub", },
{ "name" : "slot_2", "type" : "image", "x" : 35, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/2.sub", },
{ "name" : "slot_3", "type" : "image", "x" : 67, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/3.sub", },
{ "name" : "slot_4", "type" : "image", "x" : 99, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/4.sub", },
),
},
{
"name" : "quick_slot_2",
"type" : "grid_table","start_index" : 4,
"x" : 127,
"y" : 3,"x_count" : 4,
"y_count" : 1,
"x_step" : 32,
"y_step" : 32,"image" : "d:/ymir work/ui/Public/Slot_Base.sub",
"image_r" : 1.0,
"image_g" : 1.0,
"image_b" : 1.0,
"image_a" : 1.0,"children" :
(
{ "name" : "slot_5", "type" : "image", "x" : 3, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f1.sub", },
{ "name" : "slot_6", "type" : "image", "x" : 35, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f2.sub", },
{ "name" : "slot_7", "type" : "image", "x" : 67, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f3.sub", },
{ "name" : "slot_8", "type" : "image", "x" : 99, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f4.sub", },
),
},
{
"name" : "QuickSlotBoard",
"type" : "window","x" : 128+14+128+55,
"y" : 0,
"width" : 11,
"height" : 37,
"children" :
(
{
"name" : "QuickSlotNumberBox",
"type" : "image",
"x" : 1,
"y" : 15,
"image" : ROOT + "taskbar/QuickSlot_Button_Board.sub",
},
{
"name" : "QuickPageUpButton",
"type" : "button",
"tooltip_text" : uiScriptlocaleInfo.TASKBAR_PREV_QUICKSLOT,
"x" : 1,
"y" : 9,
"default_image" : ROOT + "TaskBar/QuickSlot_UpButton_01.sub",
"over_image" : ROOT + "TaskBar/QuickSlot_UpButton_02.sub",
"down_image" : ROOT + "TaskBar/QuickSlot_UpButton_03.sub",
},{
"name" : "QuickPageNumber",
"type" : "image",
"x" : 3, "y" : 15, "image" : "d:/ymir work/ui/game/taskbar/1.sub",
},
{
"name" : "QuickPageDownButton",
"type" : "button",
"tooltip_text" : uiScriptlocaleInfo.TASKBAR_NEXT_QUICKSLOT,"x" : 1,
"y" : 24,"default_image" : ROOT + "TaskBar/QuickSlot_DownButton_01.sub",
"over_image" : ROOT + "TaskBar/QuickSlot_DownButton_02.sub",
"down_image" : ROOT + "TaskBar/QuickSlot_DownButton_03.sub",
},
),
},
),
},
),
},
),
}
Hello
## Board
{
"name" : "Base_Board_01",
"type" : "expanded_image","x" : 0,
"horizontal_align":"center",
# "x" : 263,
"y" : 5,# "rect" : (0.0, 0.0, float(SCREEN_WIDTH - 263 - 256) / 256.0, 0.0),
"image" : "d:/global/loong/barra2.dds",
"children" :
(
Really #x and # rect?
-
1 minute ago, Syreldar said:
False -> FALSE
??????????????????????????????????
Yeah work with "FALSE i no need "Specialmap"
Free version's have only special map
Premium user's no have special map -
7 minutes ago, Syreldar said:
?????????????????????????????????????????????????????????????????????
Original file syserr
Spoiler0410 22:04:30510 :: Traceback (most recent call last):
0410 22:04:30510 :: File "ui.py", line 1011, in CallEvent
0410 22:04:30510 :: File "uiChangeChannel.py", line 42, in <lambda>
0410 22:04:30510 :: File "uiChangeChannel.py", line 73, in __ChangeChannel
0410 22:04:30510 :: File "uiChangeChannel.py", line 107, in IsInSpecialMap
0410 22:04:30510 :: NameError
0410 22:04:30510 :: :
0410 22:04:30510 :: global name 'False' is not defined
0410 22:04:30510 :: -
Hello,
In -> uichangechannel.py search thisSpoilerif str(background.GetCurrentMapName()) in bad_maps:
return True
return FalseEdit to
Spoilerif str(background.GetCurrentMapName()) in bad_maps:
return True
#return Falseand enjoy
Problem skill :(
in Community Support - Questions & Answers
Posted · Edited by Metin2 Dev
Core X - External 2 Internal
Hello,
ServerSide:
skill_power.txt missing or add 777right