Ir para conteúdo

Kydrai

Visconde
  • Total de itens

    250
  • Registro em

  • Última visita

  • Dias Ganhos

    14

Tudo que Kydrai postou

  1. Kydrai

    Scrit De Efeito

    Vc ta usando o addEvent de forma errada. function onLogin(cid) if (getPlayerVocation(cid) == 304) or (getPlayerVocation(cid) == 304) then addEvent(onThink2, 0, cid) end return TRUE end function onThink1(cid) if isCreature(cid) then doSendMagicEffect(getCreaturePosition(cid), 1) addEvent(onThink2, 3000, cid) end end function onThink2(cid) if isCreature(cid) then doSendMagicEffect(getCreaturePosition(cid), 1) addEvent(onThink1, 3000, cid) end end
  2. Da pra fazer pelas sources, se vc tiver ela e souber compilar, eu posso ajudar.
  3. Na linha 6 não existe a variável uid. E os outros é porque a variável summon não está sendo usando corretamente. E a forma como utilizou o "doCreatureAddHealth" não garante que o summon irá ficar com a vida cheia. Tenta assim (eu n testei): function onCastSpell(cid, var) ----Player Status local playerpos = getPlayerPosition(cid) local cloth = getCreatureOutfit(cid) local maxhp = getCreatureMaxHealth(cid) ----Clone do Player local summon = doSummonCreature("Clone", playerpos) doConvinceCreature(cid, summon) setCreatureMaxHealth(summon, maxhp) doCreatureAddHealth(summon, maxhp) doSetCreatureOutfit(summon, cloth, -1) doSendMagicEffect(playerpos, 2) return end
  4. Essas variáveis são usadas de acordo com a função. Elas facilitam lembrar o nome ou procurar por elas. E também, dependendo da versão do ot, na maioria das vezes o que varia são os números, já as variáveis são as mesmas.
  5. Vc pode criar um globalevents e colocar: function onThink(interval, lastExecution, thinkInterval) local monsters = {"Rat", "Demon", "Dragon"} local pos = {x=, y=, z=} doCreateMonster(monsters[math.random(#monsters)], pos) end
  6. Claro que usa ... A função do TFS 0.3.6 é: function doPlayerAddSkill(cid, skill, amount, round) if(skill == SKILL__LEVEL) then return doPlayerAddLevel(cid, amount, round) elseif(skill == SKILL__MAGLEVEL) then return doPlayerAddMagLevel(cid, amount) end return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill')) end doPlayerAddSkillTry(cid, skillid, n) -> add n "tentativas" de skill. getPlayerRequiredSkillTries(cid, skillId, skillLevel) -> pega a quantidade de "tentativas" necessária para o skillLevel desejado. getPlayerSkillLevel(cid, skillid) -> pega o level do skill do player. getPlayerSkillTries(cid, skillId) -> pega a quantidade de "tentativas" que o player ja deu. getConfigInfo(key) -> nesse caso vai pega a rate no config.lua
  7. doCreatureSay(uid, text, type) function onSay(cid, words, param) if(param ~= "") then doCreatureSay(cid, param, TALKTYPE_ORANGE_2) end return TRUE end
  8. Ta falando que a função doCreatureSetSpeakType não existe. Acho que essa função só existe apartir da versão 0.3.5 do TFS.
  9. function onSay(cid, words, param) if param:lower() == "on" then doCreatureSetSpeakType(cid, TALKTYPE_MONSTER) -- cor da voz doPlayerSendTextMessage(cid, 25, "Sua voz agora soa como uma voz monstruosa.") --25 = MESSAGE_INFO_DESCR elseif param:lower() == "off" then doCreatureSetSpeakType(cid, 1) --1 = TALKTYPE_SAY ou TALKTYPE_FIRST doPlayerSendTextMessage(cid, 25, "Sua voz monstruosa foi desativada.") --25 = MESSAGE_INFO_DESCR end return TRUE end
  10. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function promotion(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then if(getPlayerPromotionLevel(cid) >= parameters.promotion) then npcHandler:say('You are already promoted!', cid) elseif(getPlayerLevel(cid) < parameters.level) then npcHandler:say('I am sorry, but I can only promote you once you have reached level ' .. parameters.level .. '.', cid) elseif(not doPlayerRemoveMoney(cid, parameters.cost)) then npcHandler:say('You do not have enough money!', cid) else setPlayerPromotionLevel(cid, parameters.promotion) npcHandler:say(parameters.text, cid) end else npcHandler:say("You need a premium account in order to get promoted.", cid) end npcHandler:resetNpc() return true end local node1 = keywordHandler:addKeyword({'promotion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You need Level 50 to second promotion.'}) node1:addChildKeyword({'yes'}, promotion, {npcHandler = npcHandler, cost = 500000, level = 60, promotion = 2, text = 'Gz Man You are Promoted'}) node1:addChildKeyword({'no'}, promotion, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) npcHandler:addModule(FocusModule:new()) Acho que tbm, ao invés de mudar o config.lua, vc poderia só colocar premium = false dentro do {}.
  11. Modifiquei algumas coisas e tirei um bug que da quando a posição não existe. O script é movement, para usar precisa por actionid 5500 no item. {1675, 1676, 1674, 1677} são os items de acordo com o lado que está virado. movements.xml <movevent type="StepIn" actionid="5500" event="script" value="car.lua"/> car.lua local CAR_ID = {1675, 1676, 1674, 1677} function onStepIn(cid, item, pos, frompos) if isPlayer(cid) == TRUE then local oldPos = getThingPos(item.uid) addEvent(carMove, 200, cid, oldPos) end end function carMove(cid, oldPos) local car = getThingfromPos(oldPos) local newPos = getCreatureLookPosition(cid) if getDistanceBetween(getThingPos(cid), oldPos) == 0 then if isInArray(CAR_ID, car.itemid) == TRUE then local tmp = newPos tmp.stackpos = 253 if getTileThingByPos({x=newPos.x, y=newPos.y, z=newPos.z}).uid ~= 0 and doTileQueryAdd(car.uid, newPos) == 1 and getTilePzInfo(newPos) == FALSE and isCreature(getThingFromPos(tmp).uid) == FALSE then local carId = CAR_ID[getCreatureLookDirection(cid)+1] doTransformItem(car.uid, carId) doTeleportThing(car.uid, newPos, false) doTeleportThing(cid, newPos, false) doSendMagicEffect(oldPos, CONST_ME_GROUNDSHAKER) end end end end
  12. Não precisava reviver um tópico antigo pra isso. O que acontece, pelo que sei, é que o cliente bloqueia os números pra não passar pra ninguém. Se colocar 111111/tibia não sei se resolve. Mas da pra editar o cliente para não aparecer mais essa mensagem, com um programa como o ollydbg por exemplo.
  13. Na parte do login tem: if(get > -1 and get < os.time())then Mas get não foi declarado. Acho que faltou o: local get = getPlayerStorageValue(cid,store) E se o servidor cair ou reiniciar por exemplo, ai a variável _jail_ não seria apagada? Não gosto dessa tag quote, ela não aceita o tab, ai o código fica ruim de visualizar. Acho que bastante gente vai se interessar pelo script -- Você editou o login e tirou a variável store rs
  14. lol Se desse pra fazer isso tão facilmente... Você pode tentar estudar ou procurar sobre engenharia reversa (acho que é isso) para então tentar chegar perto do que você quer. Mas oq vc quer abrir exatamente? Acho que aqui não é a área certa pra isso.
  15. Esse script que você colocou só pega as informação de um item, precisa colocar tbm o do refinamento.
  16. O certo é um desses: doAddIpBanishment(ip[, mask[, length[, reason[, comment[, admin[, statement]]]]]]) doAddPlayerBanishment(name/guid[, type[, length[, reason[, action[, comment[, admin[, statement]]]]]]]) doAddAccountBanishment(accountId[, playerId[, length[, reason[, action[, comment[, admin[, statement]]]]]]])
  17. Ele está falando do: [color="#FF0000"][b]arr[/b] [color="#000080"][b]raio[/color][/b]=5 --alcance do buraco negro Essas tags só funcionam com quote e não com code. E coloque os créditos de quem fez a magia, pelo que vi deve ser o Yazoo.
  18. Esse tutorial ta simples e bem explicado. Só precisa incrementar na tabela um índice não numérico pro exemplo.
  19. Ainda é preciso testar tudo pra ver se estão funcionando corretamente. Esse script adiciona ao player uma bp com os items do monster dentro. creaturescripts/creaturescripts.xml <event type="death" name="Loot" event="script" value="loot.lua"/> creaturescripts/scripts/loot.lua -- by Kydrai local function getLoot(cid, container, bp) for i=0, getContainerCap(container.uid)-1 do local loot = getContainerItem(container.uid, 0) -- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Loot.itemid = "..loot.itemid) if loot.itemid ~= 0 then if isContainer(loot.uid) then local loot2 = getLoot(cid, loot, doCreateItemEx(loot.itemid)) doAddContainerItemEx(bp, loot2) doRemoveItem(loot.uid) else local qnt = loot.type > 0 and loot.type or 1 doRemoveItem(loot.uid, qnt) doAddContainerItem(bp, loot.itemid, qnt) end else return bp end end end local function autoloot(cid, corpsePos) local bp = doPlayerAddItem(cid, 1988) -- bp onde será add os items local loot = getLoot(cid, getThingfromPos(corpsePos), bp) doAddContainerItemEx(bp, loot) end function onDeath(cid, corpse, deathList) addEvent(autoloot, 100, deathList[1], getCreaturePosition(cid)) return TRUE end monstername.xml <script> <event name="Loot"/> </script> Modificado e entregue pelo msn. talkactions/talkactions.xml <talkaction words="/open;/close" event="script" value="tile.lua"/> talkactions/scripts/tile.lua function onSay(cid, words, param, channel) if words == "/open" then setGlobalStorageValue(5001, 1) else setGlobalStorageValue(5001, 0) end return TRUE end movements/movements.xml <movevent type="StepIn" actionid="2003" event="script" value="tile.lua"/> movements/scripts/tile.lua function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getGlobalStorageValue(5001) <= 0 then doTeleportThing(cid, fromPosition, false) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The tile seems to be protected against unwanted intruders.") end return TRUE end Entregue pelo msn.
  20. Faz um teste: function onSay(cid) local playerPos = getCreaturePosition(cid) if isInRange(playerPos, {x=181, y=28, z=7}, {x=183, y=30, z=7}) then ta na posição else não ta end return TRUE end A função isInRange verifica se a posição está em uma área.
  21. Acho que isso deve da: actions/actions.xml <action itemid="IDDOPRESENTE" event="script" value="present.lua"/> actions/scripts/present.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local items = {2000, 2565, 2156, 1654} -- items que serão sorteados doTransformItem(item.uid, items[math.random(#items)]) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) -- efeito no player return TRUE end
  22. Achei muito bom também. Você faz uns scripts interessantes. O Dinastias ainda esta vivo? A comunidade lá não tem mais o fórum
  23. Não sei sua versão. Mas no tfs 0.3.6 vc colocaria: doPlayerSetTown(cid, cityid) Isso vc substitui pelo -- setPlayerTown (estou sem minha listinha de functions para ver qual function que é para colocar townid), você pode colocar aqui se quiser. Dps é só mudar o cityid = 1 como o GodBz disse. Isso serve pra mudar o templo do player, assim ele não vai para cidade vip quando morre.
  24. Não sei, o jeito seria por movements então. O script seria algo como: function onStepIn(cid, item, position, fromPosition) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) doRemoveConditions(cid) return TRUE end E no xml: <movevent type="StepIn" actionid="1010" event="script" value="tiles.lua"/> Ai colocaria o ationid 1010 no piso onde ele nasceria.
  25. Tenta usar doRemoveConditions(cid) quando o player morrer ou logar, não sei se funciona.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...