Haalwa
Advanced User
- Joined
- Jul 5, 2008
- Messages
- 201
- Reaction score
- 8
Przepraszam ale niestety b?d? musia? tutaj double postowa?
Witam, tak wi?c zastanawiaj?c si? postanowi?em zrobi? taki du?y temat gdzie b?d? znajdowa?y si? przydatne poradniki. Zaczynamy Oczywi?cie
Tutaj opisz? Vocations.xml - opis funkcji.
UWAGA - Przerobi? tylko 1 profesj? - we wszystkich innych s? te same funkcje
name="Sorcerer" - nazwa profesji
description="a Sorcerer" - opis profesji (You see bla. He is a Sorcerer
gaincap="10" gainhp="5" gainmana="30" - ile capu, hp, many dostaje co level.
gainhpamount="5" gainmanaamount="5" - ile hp i many odnawia.
maxsoul="100" - maksimum punkt?w soul
manamultiplier="1.1" - ile razy szybciej leci magic level
attackspeed="1000" - szybko?c ataku - 1000=1 sekunda
basespeed="220" - pocz?tkowa szybkosc chodzenia
<diepercent experience="8" magic="8" skill="8" equipment="8" container="100"/> - ile procent EXPa, magic levelu, skilla traci, ile ma procent na strat? EQ, baga/backpacka.
<formula damage="1.2" defense="1.1" armor="1.1"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
- Mno?niki - razy ile leci jaki skill (kolejnosc jak w kliencie).
Have Fun
Wszystkie funkcje LUA w najnowszych SVN!* AUTOR: Killavus
Zacznijmy od rzeczy definitywnej - w najnowszych SVN nie ma rozr??nienia na funkcj? dla NPC?w, Actions, Movements, Talkactions itp... wszystkie funkcje s? dost?pne dla wszystkich skrypt?w.
W poni?szym spisie pragn? om?wi? wszystkie funkcje LUA, kt?re mo?esz zastosowa? w swoich skryptach.
Funkcje podstawowe spisz? tutaj:
function onUse(cid, item, frompos, item2, topos) – funkcja wyzwalana przy u?yciu przedmiotu. Wywo?ywana z argumentami: cid (w?a?ciwie to uid, ale cid to ten, kt?ry u?y? przedmiot, wi?c b?dzie najcz??ciej u?ywany), item (przedmiot, kt?ry jest u?ywany. Aby go wywo?a? pos?ugujemy si? komend? item.uid), frompos (pozycja, z jakiej zosta? u?yty przedmiot.), item2 (przedmiot, na kt?rym u?ywamy przedmiotu... wiem, ?e to zawile brzmi. Wywo?uje si? to komend? item2.uid) oraz topos (pozycja na kt?rej zosta? u?yty przedmiot).
Funkcje z udzia?em tej funkcji zapisujemy w data/actions/scripts. Deklarujemy je w actions.xml.
Przyk?ady deklaracji:
Function onStepIn(cid, item, pos) – funkcja wyzwalana przy wej?ciu na dan? tile (przedmiot). Wywo?ywana z argumentami cid, item, pos (je?eli nie wiesz, co to za argumenty, sp?jrz do opisu onUse... pos to pozycja, na kt?r? wszed? gracz). Takowe skrypty zapisujemy do data/movements/scripts. Deklarujemy je w movements.xml.
Przyk?ady deklaracji:
Przyk?ad skryptu:
function onStepOut(cid, item, pos) – funkcja odwrotna do onStepIn. Deklaruje si? j? w tym samym miejscu. Uruchamia si?, gdy gracz ZEJDZIE z danego pola.
Przyk?ady deklaracji:
Przyk?ad skryptu:
function onEquip(cid, item, slot) – funkcja wyzwalana przy equipie (“za?o?eniu na siebie”) danego itemu. Deklaruje si? j? w tym samym miejsciu co onStepIn oraz onStepOut. R?wnie? w tym samym miejscu si? j? zapisuje. Wywo?ywana z argumentami cid, item, slot (tutaj tylko slot jest nowy – jest to miejsce, gdzie item jest wsadzony...)
Przyk?ady deklaracji:
Przyk?ad skryptu:
function onDeEquip(cid, item, slot) – funkcja odwrotna do onEquip. Deklaruje si? j? w tym samym miejsciu co onStepIn oraz onStepOut. R?wnie? w tym samym miejscu si? j? zapisuje. Wywo?ywana z argumentami cid, item, slot.
Przyk?ady deklaracji:
Przyk?ad skryptu:
UWAGA! W deklaracji poda?em tajemnicze “miejsce”... mianowicie, wpisuje si? tam:
function onAddItem(moveitem, tileitem, pos) – funkcja wyzwalana przy stworzeniu przedmiotu na danym przedmiocie, gdzie moveitem to ten przedmiot (tworzony), tileitem to przedmiot, na kt?rym ten przedmiot jest tworzony. Zapisuje si? tam gdzie inne movement funkcje.
Przyk?ady deklaracji:
Przyk?ad skryptu:
function onRemoveItem(moveitem, tileitem, pos) – funkcja odwrotna od onAddItem. Argumenty te same, zapisywanie to same.
Przyk?ady deklaracji:
Przyk?ad skryptu:
function onUseWeapon(cid, var) – Funkcja wywo?ywana przy u?yciu broni (ataku). Argumenty s? jasne, var nie jest dla nas istotne . Skrypty z t? funkcj? zapisuje si? do data/weapons/scripts, a deklaruje w weapons.xml
Przyk?ady deklaracji:
Przyk?ad skryptu:
function onTargetCreature(cid, target) – Funkcja wywo?ywana na “trafionej creature”. Cid to kreatura, kt?ra rzuca spell, a target to nasz cel. Skrypty z t? funkcj? zapisuje si? do data/spells/scripts. Deklaruje si? je w actions.xml. UWAGA! Ten skrypt jest “stale zespolony” z funkcj? onCastSpell!
function onCastSpell(cid, var) – zespolona z onTargetCreature.
Przyk?ady deklaracji:
Przyk?ad skryptu:
To wszystko. Przejd?my do polece?:
Witam, tak wi?c zastanawiaj?c si? postanowi?em zrobi? taki du?y temat gdzie b?d? znajdowa?y si? przydatne poradniki. Zaczynamy Oczywi?cie
Tutaj opisz? Vocations.xml - opis funkcji.
UWAGA - Przerobi? tylko 1 profesj? - we wszystkich innych s? te same funkcje
vocation id="1" - ID profesji - nie zmieniajcie ;]<vocation id="1" name="Sorcerer" description="a Sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="5" gainmanaticks="3" gainmanaamount="5" gainsoulticks="3600" gainsoulamount="1" maxsoul="100" manamultiplier="1.1" attackspeed="1000" prevoc="1" basespeed="220">
<diepercent experience="8" magic="8" skill="8" equipment="8" container="100"/>
<formula damage="1.2" defense="1.1" armor="1.1"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
name="Sorcerer" - nazwa profesji
description="a Sorcerer" - opis profesji (You see bla. He is a Sorcerer
gaincap="10" gainhp="5" gainmana="30" - ile capu, hp, many dostaje co level.
gainhpamount="5" gainmanaamount="5" - ile hp i many odnawia.
maxsoul="100" - maksimum punkt?w soul
manamultiplier="1.1" - ile razy szybciej leci magic level
attackspeed="1000" - szybko?c ataku - 1000=1 sekunda
basespeed="220" - pocz?tkowa szybkosc chodzenia
<diepercent experience="8" magic="8" skill="8" equipment="8" container="100"/> - ile procent EXPa, magic levelu, skilla traci, ile ma procent na strat? EQ, baga/backpacka.
<formula damage="1.2" defense="1.1" armor="1.1"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
- Mno?niki - razy ile leci jaki skill (kolejnosc jak w kliencie).
Have Fun
Wszystkie funkcje LUA w najnowszych SVN!* AUTOR: Killavus
Zacznijmy od rzeczy definitywnej - w najnowszych SVN nie ma rozr??nienia na funkcj? dla NPC?w, Actions, Movements, Talkactions itp... wszystkie funkcje s? dost?pne dla wszystkich skrypt?w.
W poni?szym spisie pragn? om?wi? wszystkie funkcje LUA, kt?re mo?esz zastosowa? w swoich skryptach.
Funkcje podstawowe spisz? tutaj:
Code:
Actionscript:
function onUse(cid, item, frompos, item2, topos)
Movement:
function onStepIn(cid, item, pos)
function onStepOut(cid, item, pos)
function onEquip(cid, item, slot)
function onDeEquip(cid, item, slot)
function onAddItem(moveitem, tileitem, pos)
function onRemoveItem(moveitem, tileitem, pos)
Weapons:
function onUseWeapon(cid, var)
Spells:
function onTargetCreature(cid, target)
function onCastSpell(cid, var)
Funkcje z udzia?em tej funkcji zapisujemy w data/actions/scripts. Deklarujemy je w actions.xml.
Przyk?ady deklaracji:
Code:
<action itemid="przyk?adowy item" script="przyk?ad.lua" />
<action uniqueid="przyk?adowe UID" script="przyk?ad.lua" />
<action actionid="przyk?adowe AID" script="przyk?ad.lua" />
Przyk?ady deklaracji:
Code:
<movevent event="StepIn" itemid="Item" script="przyk?ad.lua" />
<movevent event="StepIn" uniqueid="UID" script="przyk?ad.lua" />
<movevent event="StepIn" actionid="AID" script="przyk?ad.lua" />
Code:
function onStepIn(cid, item, pos)
if(pos.x == 200) and (pos.y == 200) and (pos.z == 7) then
doPlayerSendTextMessage(cid, 19, “Ha! Stoje na tile o X: 200, Y: 200 i Z:200!”
end
return 1
end
Przyk?ady deklaracji:
Code:
<movevent event="StepOut" itemid="Item" script="przyk?ad.lua" />
<movevent event="StepOut" actionid="AID" script="przyk?ad.lua" />
<movevent event="StepOut" uniqueid="UID" script="przyk?ad.lua" />
Code:
function onStepOut(cid, item, pos)
if(item.uid ~= 8000) then
doPlayerSendTextMessage(cid, 19, “O nie! Ta tile nie mia?a uniqueid 8000;(“)
end
return 1
end
Przyk?ady deklaracji:
Code:
<movevent event="Equip" itemid="Item ID" slot="miejsce" script=”przyk?ad.lua” />
<movevent event="Equip" actionid="AID" slot="miejsce" script=”przyk?ad.lua” />
<movevent event="Equip" uniqueid="UID" slot="miejsce" script=”przyk?ad.lua” />
Code:
function onEquip(cid, item, slot)
if(slot ~= 1) then
doPlayerSendTextMessage(cid, 19, “Mysle, ze helm lepiej zalozyc na glowe.”)
end
return 1
end
Przyk?ady deklaracji:
Code:
<movevent event="DeEquip" itemid="Item ID" slot="miejsce" script=”przyk?ad.lua” />
<movevent event="DeEquip" actionid="AID" slot="miejsce" script=”przyk?ad.lua” />
<movevent event="DeEquip" uniqueid="UID" slot="miejsce" script=”przyk?ad.lua” />
Code:
function onDeEquip(cid, item, slot)
if(item.itemid == 2195) and (slot == 8) then
doPlayerSendTextMessage(cid, 19, “Zdjalem moje drogocenne BoHy :(“)
end
return 1
end
Code:
head – g?owa
necklace – naszyjnik (amulet)
backpack – no... tam gdzie si? trzyma plecak :P (plecy)
armor – zbroja
right-hand – prawa r?ka
left-hand – lewa r?ka
legs – nogawice
feet – buty
ring – pier?cie?
Przyk?ady deklaracji:
Code:
<movevent event="AddItem" tileitem="Item ID" itemid="Item ID" script=”przyk?ad.lua”/>
<movevent event="AddItem" tileitem="Item ID" actionid="AID" script=”przyk?ad.lua”/>
<movevent event="AddItem" tileitem="Item ID" uniqueid="UID" script=”przyk?ad.lua”/>
Code:
function onAddItem(moveitem, tileitem, pos)
if(tileitem ~= 101) then
doTransformItem(tileitem.uid, 101)
end
return 1
end
Przyk?ady deklaracji:
Code:
<movevent event="RemoveItem" tileitem="Item ID" itemid="Item ID" script=”przyk?ad.lua”/>
<movevent event="RemoveItem" tileitem="Item ID" actionid="AID" script=”przyk?ad.lua”/>
<movevent event=”RemoveItem" tileitem="Item ID" uniqueid="UID" script=”przyk?ad.lua”/>
Code:
function onRemoveItem(moveitem, tileitem, pos)
if(tileitem == 101) then
doTransformItem(tileitem.uid, math.random(101, 6000)
end
return 1
end
Przyk?ady deklaracji:
Code:
<wand id="ID Wanda" range="Zasi?g” enabled="1" exhaustion="Powoduje wyczerpanie?" script="przyk?ad.lua"></wand>
<distance id="ID Itemu" range="Zasi?g” ammo="Usuwa? czy przesuwa? na pozycj? ataku (jak speary?) (move albo removecount)" enabled="1" script="przyk?ad.lua"></distance>
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISONARROW)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.1, -30, -0.2, 0)
local condition = createConditionObject(CONDITION_POISON)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 10, 2000, -10)
setCombatCondition(combat, condition)
function onUseWeapon(cid, var)
return doCombat(cid, combat, var)
end
function onCastSpell(cid, var) – zespolona z onTargetCreature.
Przyk?ady deklaracji:
Code:
<rune name="Nazwa Runy" id="ID Runy" charges="Liczba ?adunk?w" needtarget="Potrzebuje celu?" lvl="Lvl wymagany do u?ycia" maglv="Mlvl wymagany do u?ycia" mana="mana potrzebna do u?ycia" soul=”soule potrzebne do u?ycia" exhaustion="powoduje wyczerpanie?" prem="dla Premium? (nie dzia?a.)" enabled="1" allowfaruse="1" script="przyk?ad.lua"></rune>
<instant name=”Nazwa spella" words="S?owa, kt?re nale?y wypowiedzie?" direction="Potrzebuje kierunku gracza?" blocktype="co blokuje ten spell?" lvl="wymagany lvl" maglv="wymagany mlvl" mana="wymagana mana" soul="wymagane soule" exhaustion="powoduje wyczerpanie?" prem="dla Premium? (nie dzia?a.)" enabled="1" script="przyk?ad.lua">
<vocation name="nazwa profesji."/>
</instant>
Code:
local ArrayRopeSpot = {384, 418}
function onCastSpell(cid, var)
local pos = getPlayerPosition(cid)
pos.stackpos = 0
local grounditem = getThingfromPos(pos)
if(isInArray(ArrayRopeSpot, grounditem.itemid) == TRUE) then
local newpos = pos
newpos.y = newpos.y + 1
newpos.z = newpos.z - 1
doTeleportThing(cid, newpos)
doSendMagicEffect(pos, CONST_ME_ENERGYAREA)
return LUA_NO_ERROR
else
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(pos, CONST_ME_POFF)
return LUA_ERROR
end
end
Last edited: