Pomoc dla Skryptera
Tam tu przykłady skryptów, co trzeba napisać itd... jest tego dużo więc nie wiem czy sie zmieści
Uwaga! Nie dla początkujących tylko dla zaawasnowancyh!
Zaczynamy:

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)

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).

A tu przyklad:

<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" />

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.

Przyklad:

<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" />

przykladowy skrypt:

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

function onStepOut(cid, item, pos) – funkcja odwrotna do onStepIn
. Deklaruje się ją w tym samym miejscu. Uruchamia się, gdy gracz ZEJDZIE z danego pola.

przyklad:

<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" />

Przykladowy skrypt

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

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...)

przyklady

<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” />

przyklad skryptu

function onEquip(cid, item, slot)
if(slot ~= 1) then
doPlayerSendTextMessage(cid, 19, “Mysle, ze helm lepiej zalozyc na glowe.”)
end
return 1
end

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.

przyklady:

<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” />

przyklad skryptu

function onDeEquip(cid, item, slot)
if(item.itemid == 2195) and (slot == then
doPlayerSendTextMessage(cid, 19, “Zdjalem moje drogocenne BoHy “)
end
return 1
end

tam gdzie wyzej jest miescie wpisujemy jedna z tych rzeczy

head – głowa
necklace – naszyjnik (amulet)
backpack – no... tam gdzie się trzyma plecak (plecy)
armor – zbroja
right-hand – prawa ręka
left-hand – lewa ręka
legs – nogawice
feet – buty
ring – pierścień

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.

przyklady

<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”/>

przyklad skryptu

function onAddItem(moveitem, tileitem, pos)
if(tileitem ~= 101) then
doTransformItem(tileitem.uid, 101)
end
return 1
end

function onRemoveItem(moveitem, tileitem, pos) – funkcja odwrotna od onAddItem. Argumenty te same, zapisywanie to same.

przyklady

<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”/>

przykladowy skrypt

function onRemoveItem(moveitem, tileitem, pos)
if(tileitem == 101) then
doTransformItem(tileitem.uid, math.random(101, 6000)
end
return 1
end

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

przyklad

<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>

przyklad skryptu

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 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.

<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>

przyklad

<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>

skrypt:

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

*Polecenia*
uid – po prostu cid, albo inny cel (target.uid)

getPlayerFood(uid) – Pobiera foodstatus gracza i zapisuje go w postaci liczby.
getPlayerHealth(uid) - Pobiera AKTUALNĄ ilość życia gracza i zapisuje ją w postaci liczby.
getPlayerMana(uid) – jw. Tyle, że z maną.
getPlayerLevel(uid) – Pobiera level gracza i zapisuje go w postaci liczby.
getPlayerMagLevel(uid) - Pobiera magic level gracza i zapisuje go w postaci liczby.
getPlayerName(uid) - Pobiera nazwę gracza i zapisuje ją w postaci stringu.
getPlayerAccess(uid) – Pobiera access gracza i zapisuje go w postaci liczby.
getPlayerPosition(uid) – Pobiera pozycję gracza i zapisuje ją w postaci TABLICY (to ważne) trzech elementów: x, y, z. Nie można odnieść się do całej tablicy, więc należy zadeklarować zmienną, a potem odnosić się do składników
tablicy za pomocą “.x”, “.z”, “.y” dopisanymi na koniec.
Przykład:

local pos = getPlayerPosition(cid)
doPlayerSendTextMessage(cid, 19, “Moja pozycja to: X: “ .. pos.x .. “, Y: “ .. pos.y .. “, Z: “ .. pos.z .. “!”)

getPlayerSkill(uid,skillid) – Pobiera wartość skilla gracza i zapisuje go pod postacią liczby. “skillid” to ID skilla, odpowiednio:

0 – fist
1 – club
2 – sword
3 – axe
4 – dist
5 – shield
6 – fishing

getPlayerMasterPos(uid) – Pobiera pozycje templa gracza i zapisuje ją w postaci TABLICY. Zachować się tak samo jak przy getPlayerPosition(uid) .

getPlayerVocation(uid) – Pobiera vocation gracza i zapisuje je pod postacią liczby.
Voc:

1 – sorc
2 – druid
3 – pally
4 – knight

getPlayerItemCount(uid,itemid) – Pobiera ilość itemów o danym ID, jakie posiada gracz i zapisuje tą liczbę. “itemid” to właśnie ID tych itemów.
getPlayerSoul(uid) – Pobiera ilość souli gracza i zapisuje je w postaci liczby.
getPlayerFreeCap(uid) – Pobiera ilość wolnego jeszcze capa playera i zapisuje tą liczbę.
getPlayerLight(uid) – Pobiera ilość światła, które “wydziela” player
i zapisuje tą liczbę.
getPlayerSlotItem(uid, slot) – Pobiera przedmiot z danego slotu gracza i zwraca jego itemid.
getPlayerDepotItems(uid, depotid) – Pobiera ilość przedmiotów, które znajdują się w depocie gracza (depot o DepotID równym drugiemu argumentowi) i zapisuje tą liczbę.
getPlayerGuildId(uid) – Pobiera GuildID (numer gildii) gracza i zapisuje tą liczbę.
getPlayerGuildName(uid) – Pobiera nazwę gildii gracza i zapisuje ją.
getPlayerGuildRank(uid) – Pobiera rangę w gildii gracza i zapisuje ją.
getPlayerGuildNick(uid) – Pobiera tytuł w gildii gracza i zapisuje go.
getPlayerStorageValue(uid,valueid) – Pobiera storagevalue o valueid i zapisuje tą liczbę.
getGlobalStorageValue(valueid) – Pobiera globalvalue i zapisuje tą liczbę.
getTilePzInfo(pos) – Sprawdza, czy tile o danej pozycji jest PZ, czy nie. Jeżeli nie, zwraca 0. W przeciwnym wypadku zwraca 1.
getTileHouseInfo(pos) - Sprawdza, czy tile o danej pozycji należy do domku, czy nie. Jeżeli nie, zwraca 0. W przeciwnym wypadku zwraca houseID tego domku.
getItemRWInfo(uid) – Sprawdza, czy na przedmiocie można pisać czy nie.
getThingfromPos(pos) – Pobiera rzecz z danej pozycji.
getThing(uid) – Pobiera rzecz o danym UID.
getThingPos(uid) – Pobiera pozycję rzeczy o danym UID.
doRemoveItem(uid,n) – Usuwa n itemów o danym UID.
doPlayerFeed(uid,food) – Dodaje +food do foodstatusu rzeczy o danym UID. (i tak to zawsze gracz )
doPlayerSendCancel(uid,text) – Przerywa wczytywanie skryptu i wysyła wiadomość do gracza.
doPlayerSendDefaultCancel(uid, ReturnValue) - Przerywa wczytywanie skryptu i wysyła
domyślnie zdefiniowaną wiadomość do gracza.
doTeleportThing(uid,newpos) – Teleportuje rzecz o danym UID do newpos.
doTransformItem(uid,toitemid) – Przemienia przedmiot o danym UID na przedmiot o ID równym toitemid.
doPlayerSay(uid,text,type) – Sprawia, że gracz coś mówi. Type to typ wiadomości.
doSendMagicEffect(position,type) – Wysyła animowany efekt na daną pozycję.
doChangeTypeItem(uid,new_type) – Zmienia item.type przedmiotu na inny.
doSetItemActionId(uid,actionid) – Zmienia actionid przedmiotu o danym UID.
doSetItemText(uid,text) – Zmienia zapisany tekst na przedmiocie o danym UID.
doSetItemSpecialDescription(uid,desc) – Dodaje specjalny opis przedmiotowi o danym UID.
doSendAnimatedText(position,text,color) – Wysyła animowany text na daną pozycje.
doPlayerAddSkillTry(uid,skillid,n) – Dodaje ilość “prób” do zdobycia skilla graczowi o danym UID.
doPlayerAddHealth(uid,health) – Dodaje “health” życia graczowi o danym UID. (Uwaga: równie dobrze ta funkcja może odbierać życie... wystarczy wpisać wartość minusową...)
doCreatureAddHealth(uid,health) – Dodaje “health” życia KREATURZE (to dość istotna różnica – gracz to tylko gracz, a kreatura to i gracz i potwór i NPC) o danym UID. Reszta analogicznie do doPlayerAddHealth(uid,health).
doPlayerAddMana(uid,mana) – Dodaje “mana” many graczowi o danym UID.
doPlayerAddSoul(uid,soul) – jw. Tylko, że soule zamiast many.
doPlayerAddItem(uid,itemid,count or type) – dodaje item graczowi o danym UID. “count” to ilość (lub typ, jeżeli mówimy o runach – liczba ładunków, a jeżeli mówimy o fluidach – ID napoju w środku)
doPlayerSendTextMessage(uid,MessageClasses,message ) – Wysyła wiadomość tekstową danemu graczowi. MessageClasses to typ wiadomości.
doPlayerRemoveMoney(uid,money) – Usuwa “money” ilości pieniędzy graczowi o danym uid.
doShowTextWindow(cid,maxlen,canWrite) – wyświetla okienko tekstowe graczowi o danym UID. Maxlen to ilość znaków, jakie gracz może wpisać, a canWrite to czy może pisać, czy nie.
doDecayItem(uid) – Rozpoczyna “decayowanie” przedmiotu o danym UID.
doCreateItem(itemid,type or count,position) – Tworzy item na danej pozycji. (działa tylko na ziemi)
doSummonCreature(name, position) – Przywołuje “dziką” kreaturę o nazwie “name” na daną pozycje.
doMoveCreature(uid, direction) – Przesuwa kreaturę o danym UID o 1 pole w danym kierunku.
doPlayerSetMasterPos(uid,pos) – Zmienia pozycję temple gracza o danym UID.
doPlayerSetVocation(uid,voc) – Zmienia profesję gracza o danym UID.
doPlayerRemoveItem(uid,itemid,count) – Usuwa “count” przedmiotów od gracza o danym UID.
doPlayerAddExp(uid,exp) – Dodaje “exp” doświadczenia graczowi o danym UID.
doPlayerSetGuildRank(uid, rank) – Zmienia rangę w gildii gracza o danym UID.
doPlayerSetGuildNick(uid, nick) – Zmienia tytuł w gildii gracza o danym uid.
doPlayerAddOutfit(uid,looktype,addons) – Dodaje outfit o looktype równym “looktype” i z addonami równymi “addons” graczowi o danym UID.
doPlayerRemOutfit(uid,looktype,addons) – jw. Tylko, że usuwa .
doSetCreatureLight(uid, lightLevel, lightColor, time) – Zmienia poziom światła o kolorze “lightColor” kreaturze o danym UID na czas równy “time”.
isPlayer(uid) – Sprawdza, czy rzecz o danym UID to player. Jeżeli tak, zwraca 1, jeżeli nie, zwraca -1.
isContainer(uid) – Sprawdza, czy rzecz o danym UID to kontener. Jeżeli tak, zwraca 1, jeżeli nie, zwraca -1.
isMoveable(uid) - Sprawdza, czy rzecz o danym UID da się przesunąć. Jeżeli tak, zwraca 1, jeżeli nie, zwraca -1.

Miłego skryptowania ;]
Sonda i licznik wejść
 
Czy Podoba Ci Się Strona ?
Tak
Nie
Nie mam zdania

Polecam
 
OTS-Download ZrubOtsa.pl ZrubOtsa.pl