Ir para conteúdo

Skydangerous

Membro
  • Registro em

  • Última visita

Tudo que Skydangerous postou

  1. Skydangerous postou uma resposta no tópico em Suporte Tibia OTServer
    Sou ruim de spell. Tentei fazer aqui, não sei se está funcionando local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.366, 0, -0.641, 0) local combat2 = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.366, 0, -0.641, 0) local combat3 = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.366, 0, -0.641, 0) local combat4 = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.366, 0, -0.641, 0) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) setCombatArea(combat2, area) setCombatArea(combat3, area) setCombatArea(combat4, area) function onCastSpell(cid, var) if getPlayerVocation(cid) == 1 then return doCombat(cid, combat, var) elseif getPlayerVocation(cid) == 2 then return doCombat(cid, combat2, var) elseif getPlayerVocation(cid) == 3 then return doCombat(cid, combat3, var) elseif getPlayerVocation(cid) == 4 then return doCombat(cid, combat4, var) end end Testa ai... lembra de mudar os efeitos .. pq todos estão repetidos :>
  2. Skydangerous postou uma resposta no tópico em Suporte Tibia OTServer
    Tópico Movido para seção correta. Mas atenção na próxima vez.
  3. Skydangerous postou uma resposta no tópico em Ouvidoria
    eu também. mas queria saber como faz hauh'.
  4. @ferlations Mais respeito gafanhoto. uHAUHa'
  5. e agora?
  6. Troquei meu avatar como podem perceber ao lado .. O que vocês acharam? Aprovado?
  7. Skydangerous postou uma resposta no tópico em Playground (Off-topic)
    é 2 estourou a corda mizinha do meu violão
  8. ok. thanks reputado !
  9. Skydangerous postou uma resposta no tópico em Playground (Off-topic)
    uHUAH'. Músiquinha irritante
  10. Iae Alguém pode me passar um distro bom para versão 8.6.. Eu preferia se tivesse com escudos , ou se não existir um 8.7 com escudos estou criando um servidor :>
  11. Oque é lower case? Transforma strings em strings minusculas. Ex: "SKYDANGEROUS" - "skydangerous"
  12. Ochi.. Em vez de fazer em 2 linhas faz em 1. Ex: Local a = 1 local b = 2 ------ Local a,b = 1,2 Viu ..
  13. Local = definir uma variavel. Dpa eu posto o resto, ..
  14. A porta ta diferente. E 3306 .. Deve ser isso
  15. Skydangerous postou uma resposta no tópico em Playground (Off-topic)
    vou começar a postar denovo. uhahua, tava tudo aqui guardada meus tutoriais e scripts :>
  16. Skydangerous postou uma resposta no tópico em Remere's Map Editor
    Bom sobre a denuncia. Os tópicos estão semelhantes, mas isso não é considerado ripping. Mesmo assim parabéns.. ficaria melhor centralizar as imagens
  17. Skydangerous postou uma resposta no tópico em Playground (Off-topic)
    uhahu'. e que eu tinha vários tópicos montadas , mas ainda não postei, tem mais uns 12 ainda .. fica tranquilo
  18. Skydangerous postou uma resposta no tópico em Playground (Off-topic)
    wtf?
  19. O script é bem simples, ele salva a sua posição no mapa para que você possa retornar no lugar quando quiser. Salvando a posição(waypoint) no mapa Voltando novamente na posição Se tentar novamente não irá conseguir Crie um arquivo chamado funtele.lua na pasta talkaction/scripts function doMarkPos(cid, posx, posy, posz) setPlayerStorageValue(cid, 19000, posx) setPlayerStorageValue(cid, 19001, posy) setPlayerStorageValue(cid, 19002, posz) end function getMarkPos(cid) return {x=getPlayerStorageValue(cid, 19000), y=getPlayerStorageValue(cid, 19001), z=getPlayerStorageValue(cid, 19002)} end function onSay(cid, words, param) local pos = getCreaturePosition(cid) if words == "!salvar" then if getMarkPos(cid).x < 1 then doSendMagicEffect(pos,15) doMarkPos(cid, pos.x, pos.y, pos.z) doPlayerSendTextMessage(cid, 4, "Você salvou posicao no mapa.") else doPlayerSendCancel(cid, "Você já gravou posição.") end elseif words == "!voltar" then if getMarkPos(cid).x > 0 then doTeleportThing(cid, getMarkPos(cid)) doMarkPos(cid, 0, 0, 0) doPlayerSendTextMessage(cid, 21,"Você foi teleportado para o waypoint") doSendMagicEffect(pos,11) else doPlayerSendCancel(cid, "Você não gravou uma posição.") end end return TRUE end agora em talkaction.xml cole essa tag <talkaction words="!salvar;!voltar" event="script" value="funtele.lua"> Agradecimentos: DemonBholder & Apocarai(jaohd) </talkaction>
  20. crie um arquivo chamado crazy.lua na pasta talkaction/script. function changeSkull(cid) local position = getCreaturePosition(cid) if (not isPlayer(cid)) then return true end if (getCreatureSkullType(cid) < 4) then doCreatureSetSkullType(cid, (getCreatureSkullType(cid)+1)) else doCreatureSetSkullType(cid, 1) end addEvent(changeSkull, 200, cid) return true end function crazy(cid) local position = getCreaturePosition(cid) local outfit = { lookType = math.random(137,160), lookHead = math.random(1,130), lookBody = math.random(1,130), lookLegs = math.random(1,130), lookFeet = math.random(1,130), lookAddons = 3 } doSendDistanceShoot(getCreaturePosition(cid), {x = position.x + math.random(-7, 7), y = position.y + math.random(-5, 5), z = position.z}, math.random(1,41)) doSendMagicEffect({x = position.x + math.random(-7, 7), y = position.y + math.random(-5, 5), z = position.z}, math.random(1,32)) doCreatureChangeOutfit(cid, outfit) doCreatureSetLookDirection(cid, math.random(1,8)) doCreatureSetSpeakType(cid, 19) doSetCreatureLight(cid, math.random(1,200), math.random(1,10), 1000) addEvent(crazy, 200, cid) return true end function onSay(cid, words, param, channel) local time = 1 local storage = 100 local outfit = { lookType = 128, lookHead = math.random(1,130), lookBody = math.random(1,130), lookLegs = math.random(1,130), lookFeet = math.random(1,130), lookAddons = 0 } if param == "on" and getPlayerStorageValue(cid, storage) == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Its Crazy Time.") addEvent(changeSkull, time * 200, cid) addEvent(crazy, time * 200, cid) setPlayerStorageValue(cid, storage, 1) elseif param == "off" then doCreatureChangeOutfit(cid, outfit) setPlayerStorageValue(cid, storage, -1) addEvent(doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"GoodBye"), 4000, cid) addEvent(doRemoveCreature, time * 2000, cid) end return true end </talkaction> agora em talkaction.xml cole a tag. <talkaction words="/crazy" hide="yes" event="script" value="crazy.lua"> Sync Assista o Video http://www.youtube.com/watch?v=H_Ex0G-sj1E Créditos
  21. Bom, essa talkaction é bem simples, você consegue dar mount para qualquer player do servidor, com uma talkaction. Crie um arquivo chamada mount.lua na pasta talkaction/scripts function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") t[1] = tonumber(t[1]) if(not t[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.") return true end local pid = cid if(t[2]) then pid = getPlayerByNameWildcard(t[2]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.") return true end end doPlayerAddMount(pid, t[1]) doSendMagicEffect(getThingPosition(pid), CONST_ME_MAGIC_BLUE) return true end agora na talkaction.xml cola a tag Alehopper a <talkaction log="yes" words="/mount" access="5" event="script" value="mount.lua"/> Créditos:
  22. Bom , como meu servidor não foi pra frente , por alguns motivos , vou disponibilizar o script que o "Big Vamp" da vapus fez para mim. local config = { fromItem = 0, -- Item que precissa. toItem = 0 -- Item que vai transformar. } function onCastSpell(cid, var) if (getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == config.fromItem or getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == config.fromItem) then doPlayerRemoveItem(cid, config.fromItem, 1) doPlayerAddItem(cid, config.toItem, 1) else doPlayerSendCancel(cid, "You must have a " .. getItemNameById(config.fromItem) .. " in your hand to cast this spell.") end return true end em spells.xml <instant name="Potion" words="make potion" lvl="1" mana="20" aggressive="0" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="spell.lua"> Como Funciona: é uma spells , onde você coloca o item que necessário na mão esquerda ou direita , e quando escrever o nome da spell , transformará em outro item. Esse script era do alquimista do meu servidor.</instant>
  23. Título: Quando existe um summon , após morrer não aparece o corpo Autor: KylerXX(OTLAND) & Skydangerous Nivél: Avançado Função: Quando seu pokemon morre não aparece o corpo dele no chão. Testado: TFS 0.3.6 é um simples código , porém você vai precissar da source do seu servidor e depois terá que compilar. Abra o arquivo na source chamado monster.cpp. Abaixo dessa tag Item* corpse = Creature::createCorpse(deathList) Cole essa tag uint8_t effect = 36; if(isSummon()) { const Position& tmp = getPosition(); g_game.addMagicEffect(tmp, effect); return NULL; } Pronto , salve e compile
  24. Tutorial: Soltando magia se tiver tanto de skill. Nivél: Expert Avançado. Esse sistema é perfeito para quem gosta de Dragon Ball, Naruto, Bleach e etc. Aplicação após a implementação do sistema na spells.xml: instant name="XXX" words="xxxx" clubpoints="XX" lvl="XX" mana="XX" aggressive=XX" selftarget="XX" exhaustion="XXX" event="script" value="XXX.lua"/> 1) Procure por player.cpp case RET_TILEISFULL: sendCancel("You cannot add more items on this tile."); break; e cola em cima do código case RET_NOTENOUGHSKILL: sendCancel("You do not have enough club fighting."); break; 2) Declare na linha (o qual será vericado) no spells.xml Procure por spells.cpp if(readXMLInteger(p, "maglv", intValue) || readXMLInteger(p, "magiclevel", intValue)) magLevel = intValue; e cola em cima do código if(readXMLInteger(p, "club", intValue) || readXMLInteger(p, "clubpoints", intValue)) clubpoints = intValue; 3) Adiciona na função principal Procure novamente spells.cpp if((int32_t)player->getMagicLevel() < magLevel) { player->sendCancelMessage(RET_NOTENOUGHMAGICLEVEL); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_POFF); return false; } e cola em cima if((int32_t)player->getSkill(SKILL_CLUB, SKILL_LEVEL) < clubpoints) { player->sendCancelMessage(RET_NOTENOUGHSKILL); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_POFF); return false; } 4) Procure spells.h Procure essa linha int32_t getMagicLevel() const {return magLevel;} cola em cima uint32_t getSkill() const {return clubpoints;} Procure novamente essa linha int32_t magLevel; cola em cima int32_t clubpoints; 5) Procure things.h E procure essa linha RET_TILEISFULL = 64, e cola em cima RET_NOTENOUGHTRAINPOINTS = 65 Para Configurar: Formula do spells: (ex. level*2 + clubpoints*2) Créditos SkyDangerous Fresh
  25. Esse npc é utizado pela guild , um npc de banco para todos membros. 1- Você deve ir na sua database é adicionar esse comando alter table guilds add balance int(11) not null default 0; 2- Agora crie um arquivo na pasta npc e coloque isso dentro. <!--?xml version="1.0" encoding="UTF-8"?--> <npc name="Jhon" script="guildbank.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"> <look type="129" head="114" body="119" legs="114" feet="114" corpse="2212"> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. If you wan't to see your guild's balance, say {balance}."> </parameter></parameters> </look></health></npc> Em seguida abra pasta scripts que está dentro da pasta npcs , crie um arquivo chamado guildbank e cole isto. function getGuildBalance(id) local query = db.getResult("select balance from guilds where id = " .. id .. ";") if query:getID() ~= -1 then return query:getDataInt("balance") end return LUA_ERROR end local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 local money = 0 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid if msgcontains(msg, "balance") then if getPlayerGuildId(cid) < 1 then selfSay("You don't have any guild.", cid) else selfSay("The balance for the guild " .. getPlayerGuildName(cid) .. " is " .. getGuildBalance(getPlayerGuildId(cid)) .. " gold coins.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "deposit") then if getPlayerGuildId(cid) < 1 then selfSay("You don't have any guild.", cid) else selfSay("How much money do you want deposit to your guild balance?", cid) talkState[talkUser] = 1 end elseif talkState[talkUser] == 1 then if not tonumber(msg) or tonumber(msg) < 1 then selfSay("Please tell me how much do you want to deposit to your guild's balance?", cid) end money = math.abs(tonumber(msg)) selfSay("Are you sure that do you want to deposit " .. money .. " gold coins to your guild's balance?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then if getPlayerGuildId(cid) < 1 then selfSay("You don't have any guild.", cid) else if getPlayerMoney(cid) >= money then local query = db.executeQuery("update guilds set balance = balance + " .. money .. " where id = " .. getPlayerGuildId(cid) .. ";") if query ~= LUA_ERROR then selfSay("You have deposited " .. money .. " gold coins to your guild's balance.", cid) doPlayerRemoveMoney(cid, money) talkState[talkUser] = 0 else selfSay("Money can not be deposited, please contact a gamemaster.", cid) error("[Error::Query] " .. query .. ", error while trying to add a value into balance.") talkState[talkUser] = 0 end else selfSay("Sorry, you don't have the money.", cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, "withdraw") then if getPlayerGuildId(cid) < 1 then selfSay("You don't have any guild.", cid) else selfSay("How much money do you want to withdraw from your guild's balance?", cid) talkState[talkUser] = 3 end elseif talkState[talkUser] == 3 then if not tonumber(msg) or tonumber(msg) < 1 then selfSay("Please tell me how much do you want to withdraw from your guild's balance?", cid) end money = math.abs(tonumber(msg)) selfSay("Are you sure that do you want to withdraw " .. money .. " gold coins from your guild's balance?", cid) talkState[talkUser] = 4 elseif msgcontains(msg, "yes") and talkState[talkUser] == 4 then if getPlayerGuildId(cid) < 1 then selfSay("You don't have any guild.", cid) else if getGuildBalance(getPlayerGuildId(cid)) >= money then local query = db.executeQuery("update guilds set balance = (balance - " .. money.. ") where id = " .. getPlayerGuildId(cid) .. ";") if query then selfSay("You withdraw " .. money .. " gold coins from your guild's balance.", cid) doPlayerAddMoney(cid, money) talkState[talkUser] = 0 else selfSay("Money can not be retired, please contact a gamemaster.", cid) error("[Error::Query] " .. query .. ", error while trying to remove a value from balance.") talkState[talkUser] = 0 end else selfSay("Sorry, your guild don't have the money in the balance.", cid) talkState[talkUser] = 0 end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Pronto , bom divertimento. Créditos: darkhaos

Informação Importante

Confirmação de Termo