Ésse negocio de indentar quebrou minha nota ahuehuae.
- Fórum
- OTServ
- Tutoriais
- Tutoriais de Scripting
- [Exercícios - Aula 7 (Parte 1)] Respostas
RO
[Exercícios - Aula 7 (Parte 1)] Respostas
Por Roksas, 21 de set. de 2013 em Tutoriais de Scripting
otserv
tibia
script
5
1.2k
info
Grupo: Infante
Registrado: 06/03/13
Posts: 1.6k
Reputação: +319
Gênero: Masculino
Char no Tibia: Lord Sorte

21 de setembro de 2013 às 12:25
info
Grupo: Conde
Registrado: 29/07/13
Posts: 780
Reputação: +60
Gênero: Masculino
Char no Tibia: aguarde...

21 de setembro de 2013 às 12:46
ficou legal
info
Grupo: Barão
Registrado: 16/11/10
Posts: 203
Reputação: +78
Char no Tibia: Lerv

21 de setembro de 2013 às 13:07
Quando vai abrir novas vagas para a escolinha? Haha quero entrar xD




info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino
Saudações galerinha, num nível já alto da Escolinha, aprendemos diversas coisas da linguagem, e neste tópico estarei postando as respostas dos alunos e correções.
Allan Harlen:
--------------- 10 funçoes ------------- local config = { monster = "Demon", posi = {x = 1168, y = 1465, z = 7}, storage = 1589, quant = -1, level = 300, mana = 1000 } function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) >= level then doSummonMonster(config.monster, config.posi) doRemoveItem(item.uid, config.quant) setPlayerStorageValue(cid, config.storage, config.quant) doSendMagicEffect(pos, config.effects) doCreatureAddMana(cid, config.mana) elseif getPlayerStorageValue(cid) >= storage then doPlayerSendCancel(cid, "Voce nao tem "..storage.." correta") else doPlayerSendCancel(cid, "Voce nao tem lvl "..level.." para usar este item") end end ----------------------------- tarefa de add 100 gps --------- function onUse(cid, item, frompos, item2, topos) doPlayerAddMoney(cid, 100) end ----------------- explicar -------------- --[[ Aki e assim so passa por um tile se tiver x storage se tiver a storage voce e teleportado para x local caso contrario manda uma mensagem de sendcancell ]]-- function onStepIn(cid, item, pos) teleport1 ={x=154, y=43, z=7} -- teleport que o thing tava faland oaonde vai teleporta quando passar if isPlayer(cid) then -- local storage = 15420 -- storage que a storage vip fala if item.actionid == storage then -- action da tile que so passa com x storage vip = getPlayerStorageValue(cid,storage)-- storage vip if vip == -1 then --remove storage vip doPlayerSendCancel(cid,"frases") -- mensagem de canlcel doTeleportThing(cid,teleport1) ------- teleporta para a posiçaõ do teleport1 else end end end endNota: 5,00
OBS: Você errou bastante na identação e não entendeu corretamente os exercícios.
Matheus Ribeiro:
-- 1º Exercício: function onUse(cid, item, frompos, item2, topos) doPlayerAddMoney(cid, 100) doRemoveItem(item.uid,1) end -- OU function onUse(cid, item, frompos, item2, topos) doPlayerAddMoney(cid, 100) end -- 2º Exercício: function onUse(cid, item, frompos, item2, topos) local levelnecessario = 50 local table = { [1] = "rat", [2] = "demon skeleton", } local aleatorio = math.random(1,2) local summon = doSummonCreature(table[aleatorio],getPlayerPosition(cid)) if getPlayerLevel(cid) >= levelnecessario then doRemoveItem(item.uid,1) doConvinceCreature(cid, summon) doCreatureSay(cid, 'me ajude '..table[aleatorio], 1) -- momento pokemon '-' doSendDistanceShoot(getCreaturePosition(cid),getCreaturePosition(summon), 3) else doPlayerSendCancel(cid, 'Você deve ter level '..levelnecessario..' ou mais') doSendMagicEffect(getCreaturePosition(cid), 1) end end -- 3º Exercício: -- <globalevent name="mensagem" interval="500" script="mensagem.lua"/> a tag que irá chamar o script em um intervalo de 500 milisegundos -- [( Script created by Doidin for XTibia.com )] -- function onThink(interval, lastExecution) -- ao pensar ( quando o script for chamado) MENSAGEM = { -- tabela MENSAGEM "FRASE 1", "FRASE 2", "FRASE 3", "FRASE 4", "FRASE 5", } doBroadcastMessage(MENSAGEM[math.random(1,#MENSAGEM)],22) -- envia uma mensagem aleatoria que está na tabela MENSAGEM return TRUE endNota: 7,00
OBS: Não entendeu corretamente o primeiro exercício, identação quase correta.
Pablo Rodrigues:
[Primeira Tarefa] function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) >= 10 then doPlayerAddItem (cid,2158,100) end end [Segunda Tarefa] function onUse(cid) local lv = 10 local storage = 8991 if getPlayerStorageValue(cid, storage) >= 1 then doPlayerSendCancel(cid,"Você ja pegou o item.") return true end if getPlayerLevel(cid) >= lv then doPlayerSendTextMessage(cid, 20, "Você precissa ser menor que level "..lv..".") doCreatureAddHealth(cid, -100) doPlayerRemoveMoney(cid, 10000) doPlayerFeed(cid, 1000) return true end setPlayerStorageValue(cid, storage,1) doPlayerAddLevel(cid, 1) doPlayerAddMoney(cid,100000) doPlayerSendTextMessage(cid,20,"Parabéns, Tome seus 100k") doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) return true end [Terceira Tarefa] -- Script feito por tiagoduuarte function onUse(cid, item, frompos, item2, topos) --- Função inicia e é utilizada para executar o script, no caso é uma action doRemoveItem(item.uid,5944) --- Esta função remove o item 5944 do player ( Soul Orb ) doPlayerAddItem(cid,6529) --- Esta função adiciona ao player o item 6529 ( Infernal Bolt) doSendMagicEffect(topos,12) --- Manda um efeito para player doPlayerSendTextMessage(cid,22,"Você ganhou infernal bolts.") --- Ao trocar a soul orb pela infernal bolt esta mensagem é enviada end --- fecha o escopo do functionNota: 7,00
OBS: Você está quase conseguindo identar, mas não soube resolver o primeiro exercício como foi pedido.
É isso aí galerinha, em breve posto as respostas da segunda parte.