Die Icons müssen die ID des Item's + 0 und die Endung .tga haben, sowie in icon/item/ liegen!
Bei Waffen muss das .gr2 in ymir work/item/weapon/ liegen und als Namen die ID des Items + 0 haben!
#!/usr/local/bin/lua-5.1
bForce = false
iArg = 1
if table.getn(arg) < 2 then arg[1] = "-h" end
for i, v in pairs(arg) do
if v=="-f" then
bForce = true
iArg = 2
elseif v=="-h" or v=="--help" then
print("diffpatcher.lua v1.0.1 by ATAG\n")
print("usage:\t\tdiffpatcher.lua [-f] game-file diff-file")
print("\noptions:\t-f: force write on errors")
print("\t\t-h or --help: this help")
os.exit(1)
end
end
tAddress = { --{"000F0280", 0B, 0C}
}
--io.write("Add meg a game fájl nevét (pl. game): ")
--gameFile = io.read("*l")
gameFile = arg[iArg]
if not gameFile or gameFile == "" then
print("Name is empty, exiting...")
end
--io.write("Add meg a game fájl nevét (pl. valami.dif): ")
--diffFile = io.read("*l")
diffFile = arg[iArg+1]
if not diffFile or diffFile == "" then
print("Name is empty, exiting...")
end
--read diff file
for line in io.lines(diffFile) do
address, from, to = line:match("(%x-): (%x+) (%x+)")
if address then
table.insert(tAddress, {address, from, to})
end
end
--open game file in binary insert mode
f, e = io.open(gameFile, "r+b")
assert(f, e)
rd = nil
if string.sub(diffFile, 1, 8) ~= "reverse_" then
--open reverse dif
rd = io.open("reverse_"..diffFile, "w+")
rd:write("reverse dif file\ncreated by diffpatcher.lua\n\n"..gameFile.."\n")
end
for i, t in ipairs(tAddress) do
--jump to address
assert(f:seek("set", "0x"..t[1]))
--read one byte
s,e = string.format("%02X", string.byte(f:read(1)))
--check value
if s == t[2] or bForce then
--step back one byte
f:seek("cur", -1)
--write new value
f:write(string.char("0x"..t[3]))
if rd then
rd:write(t[1]..": "..t[3].." "..t[2].."\n")
end
print("written:",unpack(t))
else
print("Address: "..t[1]..", value need: "..t[2]..", value given: "..s.."... SKIP!")
end
end
print("All done...")
f:close()
if rd then
rd:close()
end
usage: diffpatcher.lua [-f] game-file dif-file
options: -f: force write on errors
-h or --help: this help
for example: ./diffpatcher.lua -f game somefile.dif
Guten Abend Elitepvpers,
Ich wollte euch mal meinen Itemzerstörer Releasen.
Ihr zieht einfach ein Item drauf und es ist sofort kaputt.
Code:
quest mulleimer begin
state start begin
when 9005.take begin
local destroy = item.get_vnum()
local anzahl = item.get_count()
pc.remove_item(destroy, anzahl)
end
end
end
Da bei mir jedenfalls die server_attrs nicht richtig liefen (fail porten bla bla bla), habe ich mir mal mit nen tool endlich eine funktionstüchtige erstellt.
Mit der Server_attr könnt ihr Mobs/Boss/Metins spawnen und ihr werdet an richtige Koords geportet und nach (0, -1).
da ich das normale "Du wurdest gebannt!" langweilig fand, habe ich mir da noch ein Logo hinzugefügt. Da ich das ganze eigentlich ganz nett finde möchte ich es nun mit euch teilen.
Das ganze soll so aussehen:
Dann fangen wir mal an.
1. Entpackt eure Root.
2. Öffnet die intrologin.py
3. Schreibt oben unter
8. Nun speichern wir alles und entpacken unsere ETC.
9. Geht in den Ordner ymir work/ui erstellt den Ordner login und fügt das Bild
aus dem Anhang in den neuerstellten Ordner ein.
10. Alles packen uns spaß haben
quest regenbogen begin state start begin when 50512.use begin if pc.set_skill_group()==0 then say("Du hast noch keine skillgruppe gewählt") return end local Tabelle={{1,2},{3,4},{5,6},{7,8}} say_title("Servername - Regenbogenstein") say("Hiermit machst du dir P-Skills.") say("...") say("Bitte wähle deine Lehre aus!") if pc.job ==0 then skills_p=select("Körper","Mental") elseif pc.job ==1 then skills_p=select("Nahkampf","Bogen") elseif pc.job ==2 then skills_p=select("Magie","Waffe") elseif pc.job ==3 then skills_p=select("Heil","Drachen") end pc.set_skill_group(Tabelle[pc.get_job()+1][skills_p]) for _,i in next,special.active_skill_list[pc.get_job()+1][skills_p] do pc.set_skill_level(i ,59) end pc.remove_item(50512, 1) say("Deine Skills sind auf Perfekter Meister") end end end
getestet v2:
PHP Code:
quest regenbogen begin state start begin when 50512.use begin if pc.set_skill_group()==0 then say("Du hast noch keine skillgruppe gewählt") return end table.foreachi(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()],function(r,skill) pc.set_skill_level(skill,59) end) chat("Deine Fertigkeiten wurden auf P gestellt") end end end
Wer es braucht denn Gratuliere ich und gut das ich helfen konnte
Wer es nicht braucht denn Gratuliere ich und gut das ich helfen konnte
Wer es sinnlos findet denn Gratuliere ich und gut das ich nicht neben ihm wohne.
Welche Formate sind das:
- PNG
- GIF
ACHTUNG SEHR WICHTIG:
wer es wagt mir THANKS zugeben wird von diese 2 heute nacht besucht
auch wenn es nicht der 13te ist also ufpasse jungs:
when 20047.click or 20048.click or 20049.click or 20050.click or 20051.click or 20052.click or 20053.click or 20054.click or 20055.click or 20056.click or 20057.click or 20058.click or 20059.click begin
if pc.is_mount() != true then pc.mining() end end end end
quest test begin state start begin when 9009.chat."noa test quest" begin say(mob_name(npc.get_race())) repeat say("hallo "..pc.get_name()) say("Wähle dein Item") say() a={"schwert+0","schwert+1","schwert+2","weiter","Abbrechen"} b={10,11,12} s=select_table(a) if s==4 then say("Wähle dein Item") say() a={"schwert+3","schwert+4","schwert+5","zurück","Abbrechen"} b={13,14,15} s=select_table(a) end if s==5 then break end say(item_name(b[s])) pc.give_item2(b[s]) until s!=4 end end end