Creaturescripts, são scripts executados ao * logar, atacar , morrer, matar, etc.. *
Funções usadas para começar um script em Creaturescripts:
onLogin(cid) -- Ao logar. onLogout(cid) -- Ao deslogar. onAdvance(cid, skill, oldLevel, newLevel) -- Ao upar. onStatsChange(cid, attacker, type, combat, value) -- Ao peder ou ganhar life, mana ou condições. onDirection(cid, old, current) -- não sei. onOutfit(cid, old, current) -- Não sei. (creio que ao usar outfit).. onSendMail(cid, receiver, item, openBox) -- Ao enviar carta. onReceiveMail(cid, sender, item, openBox) -- Ao receber uma carta. onTradeRequest(cid, target, item) -- Ao dar trade. onTradeAccept(cid, target, item, targetItem) -- ao aceitar trade. onJoinChannel(cid, channel, users) -- Ao entrar em um chat. onLeaveChannel (cid, channel, users) -- Ao sair do chat. onLook(cid, thing, position, lookDistance) -- Ao dar look onThink(cid, interval) -- Executado em Determinado tempo. onTextEdit(cid, item, newText) -- Ao escrever em item (book) onReportBug(cid, comment) -- ao Reportar bug. onAreaCombat(cid, tileItem, tilePosition, isAggressive) onPush(cid, target) -- Ao puxar. (criatura) onTarget(cid, target) -- Não sei (creio que ao seguir ou atacar) onFollow(cid, target) -- Ao seguir. (acompanhar) onCombat(cid, target) -- Parecido com onAttack. (qualquer tipo de ataque) onAttack(cid, target) -- Ao Atacar. onCast(cid, target) -- Ao lançar feitiço ou runa . onKill(cid, target, lastHit) -- Ao matar. onDeath(cid, corpse, deathList) -- Ao morrer. onPrepareDeath(cid, deathList) -- Antes de morrer.
Exemplos de Scripts :
onPrepareDeath:
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if (getCreatureSkullType(cid) >= 4) then if (getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == 7890) then doCreatureSetDropLoot(cid, false) end return true end return true end
Antes de morrer (quanto estiver morrendo)
Se estiver com skull maior ou igual a 4 então
se estiver usando o item 7890 então
o player não vai perder loot ao morrer.
onAdvance:
function onAdvance(cid, skill, oldLevel, newLevel) if getPlayerLevel(cid) >= 200 then if getPlayerStorageValue(cid, 12345) <= 0 then doPlayerAddItem(cid, 2160, 100) doPlayerSendTextMessage(cid, 22, "Parabéns, você atingiu level 200 e ganhou 1kk de bonus!") doSendMagicEffect(getCreaturePosition(cid), 11) setPlayerStorageValue(cid, 12345, 1) end end return true end
Ao upar level 200 então
Se a storage 12345 do player for menor ou igual a 0 então
Adicionar 100 itens com id 2160 ao player ( adiciona 1kk ao player)
Manda uma mensagem "Parabéns, você atingiu level 200 e ganhou 1kk de bonus"
Mandar efeito 11 na posição do player
Mudar valor da storage 12345 para 1.
onLogin:
function onLogin(cid) doPlayerSendTextMessage(cid, 22, "Bem Vindo!") return true end
Ao logar
Mandar mensagem "Bem Vindo" ao player.
onDeath:
function onDeath(cid, corpse, killer) local name = "Demon" if isMonster(killer[1]) and isPlayer(cid) and getCreatureName(killer[1]) == name then doRemoveCreature(killer[1]) end return true end
Ao morrer
Se quem matou foi um monster e quem morreu foi um player, e o nome do monster que matou foi "Demon" então
Remover o monster ("Demon")
(scrip by Zipter)
onKill:
function onKill(cid, target, lastHit) if isPlayer(cid) and isPlayer(target) then doPlayerAddItem(cid, 2160, 20) end return true end
Ao matar
Se foi um player que matou outro player então
adicionar 20 crystal coins(id 2160) ao player que matou
Para adicionar seu script ao server:
1ª Vá em data / creaturescripts / script, crie um Arquivo.lua e cole seu script dentro.
2ª Adicione a tag: em creaturescripts.Xml..
<event type="preparedeath" name="forever amulet" event="script" value="aol.lua"/>
Type = o tipo de função
kill, death, login, preparedeath, joinchannel, reportbug, think ...
name = Nome do Evento
valu = Nome do Arquivo.lua
3ª adicione a tag : em data/creaturescripts/scripts/login.lua..
(obs: se seu script for de função onLogin não precisa adicionar essa tag)
registerCreatureEvent(cid, "forever amulet")
Entre " " , coloca o nome do Evento (o mesmo que você colocou em creaturescripts.Xml.
Quer Aprender a Usar ( if, else , elseif) ? CLICA AQUI !
Algumas funções get, set, do ... Você encontra Aqui !
É isso pessoal ! Não usei exemplo de todas as funções porque são muitas !