@tibiaa4e
creio que o 3º script nao funciona assim, pq eu tambem tentei botar desse jeito(if getPlayerSlotItem(cid, 2) == ID DO COLAR) e nao deu certo, ja tentei tambem assim(amulet = getPlayerSlotItem(cid, 2)
if amulet == ID DO COLAR then) e mesmo assim nao funcionou, pode ser algum erro do distro ou sei la :S
bom de qualquer forma foi muitoo legal e gostaria que tivesse mais provas dessas :smile_positivo: (é claro se mais players participassem...)
EDIT
falta tambem a resposta do script da fishing rod xD





info
Grupo: Conde
Registrado: 18/12/05
Posts: 912
Reputação: +86
Gênero: Masculino
Char no Tibia: Kohzete
Bem depois de muita demora minha =/
Aqui estão as respostas...
<Eu minha ideia inicial era se basear nos scripts aqui postados, como so o tozão participo da criação vou me basear no dele
na maioria dos scripts e esses serão postados os devidos creditos.
Criação de Scripts
1-
Bem o Tozão fez até mais do que eu pedi, se fosse uma empresa ele seria um otimo funcionario...
O dele está perfeito, aqui está um mais simples para iniciantes
function onUse(cid, item, frompos, item2, topos) local bridgepos = {x=926, y=958, z=8, stackpos=0} local bridgepos2 = {x=926, y=958, z=8, stackpos=0} local bridgepos3 = {x=926, y=958, z=8, stackpos=0} local bridgepos4 = {x=926, y=958, z=8, stackpos=0} local getbridge = getThingfromPos(bridgepos) local getbridge2 = getThingfromPos(bridgepos2) local getbridge3 = getThingfromPos(bridgepos3) local getbridge4 = getThingfromPos(bridgepos4) if item.uid == 8551 and item.itemid == 1945 then doCreateItem(493,1,bridgepos) doCreateItem(493,1,bridgepos2) doCreateItem(493,1,bridgepos3) doCreateItem(493,1,bridgepos4) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 8551 and item.itemid == 1946 then doCreateItem(1284,1,bridgepos) doCreateItem(1284,1,bridgepos2) doCreateItem(1284,1,bridgepos3) doCreateItem(1284,1,bridgepos4) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1Ai eu faço o script simples, porém funcional...
Esse ai não expulsa as pessoas da ponte, e sinceramente não sei o que acontece se tiver um infeliz na ponte
2-
Bem esse até era simples, só quem não tem experiencia copiar ou no minimo se basear em um script "descente" de quest...
O do Tozão teve as exigencias então está aqui o correto
3-
Bem o primeiro postado aqui está quase correto, eu acredito que o isinArray não funcione com essa função...
A ultima vez que usei essa função funcionava perfeitamente nessa sintaxe aqui
4-
Mais uma vez o dele está correto.
------------Script made by Tozao(for ta4e competition)------------ ----------------Created for version 8.4------------------- function onUse(cid, item, fromPosition, itemEx, toPosition) coalbasin1 = {x=1027, y=1021, z=7, stackpos=STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE} coalbasin2 = {x=1026, y=1022, z=7, stackpos=STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE} coalbasin3 = {x=1027, y=1023, z=7, stackpos=STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE} coalbasin4 = {x=1028, y=1022, z=7, stackpos=STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE} food1 = getThingFromPos(coalbasin1) food2 = getThingFromPos(coalbasin2) food3 = getThingFromPos(coalbasin3) food4 = getThingFromPos(coalbasin4) if item.actionid == 20020 and item.itemid == 1945 then if getPlayerLevel(cid) >= 50 then if food1.itemid == 2787 and food2.itemid == 2789 and food3.itemid == 2792 and food4.itemid == 2796 then doRemoveItem(food1.uid) doRemoveItem(food2.uid) doRemoveItem(food3.uid) doRemoveItem(food4.uid) setPlayerStorageValue(cid,2479,1) doPlayerSendTextMessage(cid,25, "Congratulations, now you may pass on the magic door.") doTransformItem(item.uid,item.itemid+1) else doPlayerSendTextMessage(cid,26, "Sorry, you don\'t have all foods, you need a white, brown, dark and green mushrooms.") end else doPlayerSendTextMessage(cid,26, "Sorry, you need get level 50.") end elseif item.actionid == 20020 and item.itemid == 1946 then doTransformItem(item.uid,item.itemid-1) end return TRUE end5-
Bem esse eu ja imaginava ser o mais "dificil"
O seu tozão eu vi apenas 1 erro de sintaxe que era apenas para level 9 fazer e uma pessoa com vocation e não promotion (isso esqueci de falar)
Porém são erros simples e normais.
Sobre ele abrir normalmente isso acontece porque você chamou algo fora da função da principal (os vetores e matrizes)
Isso é um bug desde a 8.4, que infelizmente os developers ainda não arrumaram...
Pode ser corrigido fazendo uma função simples em c++ (que não possuo aqui =/).
Ou seja ainda pode ser seu script mais perfeito que você fez xD
Eu por exemplo criei uma função maravilhosa para quests e esse erro não possibilita o uso dela.
-------------Script made by Tozao(for ta4e competition)------------ ----------------Created for version 8.4-------------------- local VOC_DRUID = {2,6} local VOC_SORC = {1,5} local VOC_KINA = {4,8} local VOC_PALLY = {3,7} local prizes = {[VOC_DRUID] = 2182, [VOC_PALLY] = 2456, [VOC_SORC] = 2190, [VOC_KINA] = 2409} function onUse(cid, item, frompos, item2, topos) local vocation = getPlayerVocation(cid) local itemweight = getItemWeightById(prizes[vocation],1) local itemname = getItemNameById(prizes[vocation],1) pos = getCreaturePosition(cid) health = getCreatureHealth(cid) if item.uniqueid == 20025 then if getPlayerLevel(cid) == 9 then if vocation >= 1 and vocation <= 4 then if getPlayerStorageValue(cid,7777) == -1 then if getPlayerFreeCap(cid) >= itemweigth then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a " .. itemname .. ".") doPlayerAddItem(cid,prizes[vocation],1) setPlayerStorageValue(cid,7777,1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You have found a demon helmet. Weighing " .. itemweight .. " oz it is too heavy.") end else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You already made this quest.") doPlayerAddHealth(cid, health -1) doSendMagicEffect(pos,12) end else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Sorry, you need a vocation.") end else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Sorry, you need get level 9.") end return TRUE end endBem, Obrigado ao Tozão por ter participado dessa "prova" e pelo jeito você está até mais a frente desse nivel de script
COrreção de Erros
Aqui tivemos dois "alunos", eram erros simples que só pediam atenção
1-
No caso dependendo da versão existiam dois erros...
Primeiro a função doPlayerSay não existe mais sendo agora doCreatureSay e a outra é por causa dos numeros das falas.
O TFS constantemente muda isso, e devemos acostumar a usar as variaveis do Const.lua
2-
Essa era facil...
3-
Essa foi meio uma sacanagem minha
Não tinha erros de sintaxe e sim que o autor imbecil (eu msm) falo o maximo de caracteres para o animated text...
A string em LUA é usada por ' e " então se você usar aspas duplas não afetará a simples...
Eu cai nessa a uns dias atrás e não podia deixar escapar xD
O usuario Radamanthis conseguiu essa
4 -
O usuario Tozão encontrou uma maneira de burlar o erro que era o case sensitivy (essa parte não fui q inventei
foi um amigo do msn que pediu para eu colocar essa ai esqueci o erro o0)
function onUse(cid, item, fromPosition, itemEx, toPosition) newnPosition = {x=1904, y=1006, z=8} if item.uid == 32194 then doTeleportThing(cid,newnPosition) doSendMagicEffect(newnPosition,10) else return 0 end return 1 end5 e 6 -
Esse como falei não tem certo e errado.
O erro de sintaxe era um end faltando ao final para fechar o function
Esse script ja tinah ele no Xtibia postado por mim com ele diminuido...
O do Tozão eu bati o olho e não vi erros também...
Espero que tenha sido proveitoso ou no minimo legal isso...
Claro que pensei q teria mais usuarios participando
Agradeço aos que participaram e esperem os proximos tutoriais, quando eu acabar a segunda semana de prova (essa)
Voltarei a fazer os ultimos tutoriais