
Tudo que Wise postou
-
Script de "mutação"
changesword.lua em data/actions/scripts: function onUse(cid, item, fromPosition, itemEx, toPosition) local firstid, secondid, str, time = 8931, 8932, 18930, 5 if exhaustion.check(cid, str) then doPlayerSendCancel(cid, "Você só pode transformar sua arma de ".. time .." em ".. time .." segundos.") return 1 end if item.itemid == firstid then exhaustion.set(cid, str, time) doTransformItem(item.uid, secondid) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você transformou um(a) ".. getItemName(firstid) .." em um(a) ".. getItemName(secondid) ..".") elseif item.itemid == secondid then exhaustion.set(cid, str, time) doTransformItem(item.uid, firstid) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você transformou um(a) ".. getItemName(secondid) .." em um(a) ".. getItemName(firstid) ..".") end return 1 end Em data/actions, adicione estas tags ao arquivo actions.xml: <action itemid="8931;8932" event="script" value="changesword.lua"/> Adicionei também uma mensagem ao transformar o item e um exhausted de 5 segundos pra transformar o item de novo. Não testei
-
(Resolvido)Mudar efeito da wand
Disponha, irei ver.
-
!createguild não pega
Espero que dessa vez te ajude: DROP TRIGGER IF EXISTS `oncreate_guilds`; DROP TRIGGER IF EXISTS `ondelete_guilds`; DROP TABLE IF EXISTS `guilds`; DROP TABLE IF EXISTS `guild_invites`; DROP TABLE IF EXISTS `guild_kills`; DROP TABLE IF EXISTS `guild_wars`; CREATE TABLE `guilds` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `ownerid` INT NOT NULL, `creationdata` INT NOT NULL, `checkdata` INT NOT NULL, `motd` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE (`name`, `ownerid`) FOREIGN KEY (`ownerid`) REFERENCES `players`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB; CREATE TABLE `guild_invites` ( `player_id` INT NOT NULL DEFAULT 0, `guild_id` INT NOT NULL DEFAULT 0, UNIQUE (`player_id`, `guild_id`), FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE, FOREIGN KEY (`guild_id`) REFERENCES `guilds`(`id`) ON DELETE CASCADE ) ENGINE = InnoDB; CREATE TABLE `guild_kills` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `guild_id` INT NOT NULL, `war_id` INT NOT NULL, `death_id` INT NOT NULL ) ENGINE = InnoDB; CREATE TABLE `guild_wars` ( `id` int(11) NOT NULL AUTO_INCREMENT, `guild1` int(11) NOT NULL DEFAULT '0', `guild2` int(11) NOT NULL DEFAULT '0', `name1` varchar(255) NOT NULL, `name2` varchar(255) NOT NULL, `status` tinyint(2) NOT NULL DEFAULT '0', `started` bigint(15) NOT NULL DEFAULT '0', `ended` bigint(15) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `guild1` (`guild1`), KEY `guild2` (`guild2`) ) ENGINE=InnoDB; Vou estudar mais sobre essa linguagem de pesquisa declarativa que é o SQL.
-
(Resolvido)Mudar efeito da wand
Não dá. Esse hit em "music" é apenas o magiceffect, não dá pra colocá-lo como shoottype. A menos, como eu te disse, que você crie um personalizado e adapte corretamente ao seu servidor. As fórmulas/valores de combat (padrão) são: COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048
-
!createguild não pega
Tenta assim: Pega a database normal, com a tabela guilds assim como estava quando você criou o tópico e etc.. Execute essa query nessa database padrão do seu servidor: DROP TABLE IF EXISTS `guilds`; CREATE TABLE `guilds` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `ownerid` int(11) NOT NULL, `creationdata` int(11) NOT NULL, `motd` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY (`name`), UNIQUE KEY (`ownerid`), FOREIGN KEY (`ownerid`) REFERENCES `players`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB; Dessa vez eu testei e obtive sucesso
-
!createguild não pega
Tente essa outra query (lembre-se de deletar a tabela guilds da sua database antes de executar o código): CREATE TABLE `guilds` ( `id` INT NOT NULL AUTO_INCREMENT, `world_id` TINYINT(2) UNSIGNED NOT NULL DEFAULT 0, `name` VARCHAR(255) NOT NULL, `ownerid` INT NOT NULL, `creationdata` INT NOT NULL, `checkdata` INT NOT NULL, `motd` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE (`name`, `world_id`) ) ENGINE = InnoDB;
-
(Resolvido)Mudar efeito da wand
Você quer dizer, o efeito do shoottype igual ao magiceffect? Acredito que não.. A menos que você crie o shoottype personalizado, adicione na source, no client e na lib..aí dá.
- !createguild não pega
- tile que teleporta player para templo (pedido)
-
problema no Save
Procure pelo arquivo advancesave.lua em data/creaturescripts/scripts e abra ele. Provavelmente deve estar como abaixo: savePlayersOnAdvance = false Apenas mude o false para true, ficando assim: local config = { savePlayersOnAdvance = true } function onAdvance(cid, skill, oldLevel, newLevel) if(config.savePlayersOnAdvance) then doPlayerSave(cid, true) end return true end Verifique se há uma tag habilitada para esse arquivo.lua que você configurou a tabela. Senão tiver nenhuma tag relacionada ao arquivo, então apenas adicione-a em creaturescripts.xml: <event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/> Se você nem ao menos encontrou o arquivo, então basta apenas criar um e adicionar o script a ele. Não se esqueça de adicionar a tag também.
-
!createguild não pega
Bom, se no seu talkactions.xml está configurado corretamente (modo padrão): <talkaction words="!createguild" event="function" value="guildCreate"/> <talkaction words="!joinguild" event="function" value="guildJoin"/> Então, tente executar essa query na sua database: CREATE TABLE IF NOT EXISTS `guilds` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `ownerid` int(11) NOT NULL, `creationdata` int(11) NOT NULL, `motd` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY (`name`), UNIQUE KEY (`ownerid`), FOREIGN KEY (`ownerid`) REFERENCES `players`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB;
-
(Resolvido)Mudar efeito da wand
mas que demônio.. local ef, sh, dmg = CONST_ME_SOUND_BLUE, CONST_ANI_SMALLICE, COMBAT_ICEDAMAGE function onUseWeapon(cid, var) min, max = 500, 700 target = getCreatureTarget(cid) if target ~= 0 then doSendDistanceShoot(getThingPos(cid), getThingPos(target), sh) addEvent(doAreaCombatHealth, 100, cid, dmg, getThingPos(target), 0, -min, -max, ef) end return 1 end
-
(Resolvido)Mudar efeito da wand
Putz..rodei num verificador e reconheceu cada linha como estando corretas ' - ' Ok, vou refazer.
-
(Resolvido)Mudar efeito da wand
Ops! Falta de atenção minha. Editei, tente agora.
-
(Resolvido)Mudar efeito da wand
Não testei local x = { {ef = {24, 37, 512}, dmin = 500, dmax = 700} } function onUseWeapon(cid, var) if getCreatureTarget(cid) ~= 0 then doSendDistanceShoot(getThingPos(cid), getThingPos(target), x.ef[2]) addEvent(doAreaCombatHealth, 100, cid, x.ef[3], getThingPos(target), 0, -x.dmin, -x.dmax, x.ef[1]) end return 1 end Essa questão não tem nada a ver com o tópico
-
script que x items caia de monstros
Se você não sabe de quais monstros tal item que você editou como "donate" cai, então procure pelo nome padrão desse item em algum site de informações sobre Tibia, como por exemplo, o Tibia Wiki. E então depois procure os arquivos XML dos monstros que o site informou como tendo loot desse item e remova a linha do loot dos mesmos. Supondo que eu tenha feito do Medusa Shield um item vip, então eu sei que esse item só vai ser loot de Gorgo, Hydra, Medusa, The Many, The Welter. Então, vou no arquivo desses monstros..por exemplo, Medusa.xml. Basta eu remover a linha completa do ID do item entre os parâmetros de <loot> </loot>. Exemplo do Medusa Shield (linha à remover): <item id="3436" countmax="1" chance="9000"/>
-
(Resolvido)Como Zerar Storages?o que é storages?
Storage é um valor que permanece gravado no banco de dados. Esse valor é estruturado por 1 id, 1 índice diferencial e 1 valor representativo que pode ser numérico ou uma string. Toda storage indefinida (que não tem valor definido), recebe o valor -1. Pelo que vi no sistema do Battlefield que você mencionou, o evento acaba automaticamente quando o outro time invade a outra base e dá use na bandeira rival. Você quer poder finalizar o evento a qualquer momento, para poder usar a talkaction de iniciar o mesmo novamente quando quiser? Se for, tente esse script, é uma talkaction. Crie um arquivo Lua e renomeie-o para closebtf.lua em data/talkactions/scripts; adicione à ele: function onSay(cid, words, param) for _, cid in pairs(getPlayersOnline()) do if getGlobalStorageValue(battlefield.storage) ~= -1 and getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doBroadcastMessage("The event was closed by administrator.") setPlayerStorageValue(cid, battlefield.storage2, -1) setGlobalStorageValue(battlefield.storage, -1) doRemoveCondition(cid, CONDITION_OUTFIT) OpenWallBattle() removeTp() else doPlayerSendCancel(cid, "You can only close the event if it is open.") return 1 end end return 1 end Em talkactions.xml, adicione: <talkaction words="/closebtf" access="4" event="script" value="closebtf.lua"/> Eu não testei Ops..desculpe, aqui não carregou as novas mensagens do tópico. Enfim, tava ocupado e deixei a aba aberta pra responder depois ;]
-
Ajuda piso vocação
Ok, tente esse script sem os metamétodos: function onStepIn(cid, item, position, fromPosition) local voc = 6 if isPlayer(cid) and getPlayerVocation(cid) ~= voc then doPlayerSetVocation(cid, voc) doSendMagicEffect(getThingPos(cid), 28) doPlayerSendTextMessage(cid, 25, "You received a new vocation!!") end end
-
(Resolvido)Efeito Visual do Outfit
Disponha.
-
(Resolvido)Efeito Visual do Outfit
Você poderá ver o nome do arquivo Lua no fim da tag. Pegue o script dentro dele e poste aqui. Aliás, você quer removê-lo..então basta retirar as tags que contenham o nome do arquivo Lua desse script do seu creaturescripts.xml Acredito que o outro que você citou, de adicionar atributos com determinado outfit full, não tem nada a ver com esse outro. Então se você remover, o seu script de atributos irá continuar executando normalmente no seu servidor. Editei a resposta anterior..basta retirar as tags para desativá-lo, amigo. E pelo que vi..deve ter uma segunda tag além dessa que citei acima, acredito que deve ter uma expecífica pra função onLogin. Então..não se esqueça de retirá-la também.
-
(Resolvido)Efeito Visual do Outfit
Pelo que disse, tudo indica que é um creaturescript. Vá até a pasta data/creaturescripts, abra o creaturescripts.xml e procure por alguma tag que se inicie por: <event type="outfit" Você poderá ver o nome do arquivo Lua no fim da tag. Pegue o script dentro dele e poste aqui. Aliás, você quer removê-lo..então basta retirar as tags que contenham o nome do arquivo Lua desse script do seu creaturescripts.xml Acredito que o outro que você citou, de adicionar atributos com determinado outfit full, não tem nada a ver com esse outro. Então se você remover, o seu script de atributos irá continuar executando normalmente no seu servidor.
-
Ajuda piso vocação
-Correção: Desculpa cara, depois que vi a imagem, notei que tinha esquecido de definir o valor de uma string e.e Editei a resposta anterior, tente agora.
-
Problema com Distro 8.54!
Não tem a ver com seu config.lua. O erro é no mapa, você provavelmente não deve ter feito a "entrada" de algumas houses, como indicam os erros no distro. Após você ter posto todos os sqms do interior da house, você precisa clicar em Select Exit (na aba House Palette) e selecionar o sqm em frente a porta da house, que irá ficar como se um fluído tivesse caído ali. Criando essas "entradas" das houses que o distro acusou como não definidas, você conseguirá resolver os erros. Dá uma olhada nesse tutorial aqui, talvez ajude.
-
Ajuda piso vocação
Arquivo newvoc.lua em data/movements/scripts: function onStepIn(cid, item, position, fromPosition) local player, voc = Player(cid), 6 if player:isPlayer() and player:getVocation() ~= voc then player:setVocation(voc) player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_YELLOW) player:sendTextMessage(MESSAGE_INFO_DESCR, 'You received a new vocation.') end end Apenas modifique o número 6 pelo ID da vocação que o player irá receber. Em data/movements, no arquivo movements.xml, adicione: <movevent type="StepIn" actionid="6666" event="script" value="newvoc.lua"/>
-
[Pedido,Simples] Como criar uma quest?
Arquivo newquest.lua em data/actions/scripts: function onUse(cid, item, fromPosition, toPosition) local stor, item, count, player = 22222, 6666, 1, Player(cid) if player:getStorageValue(stor) <= 0 then player:addItem(item, count) player:setStorageValue(stor, 1) player:sendTextMessage(MESSAGE_INFO_DESCR, 'You have found a '.. count ..' '.. item ..'.') else player:sendCancelMessage('You can not do this quest again.') end return 1 end Apenas substitua os valores em: local stor, item, count, player = 22222, 6666, 1, Player(cid) Sendo: 22222 (valor da storage), 6666 (ID do item que o player vai receber), 1 (quantidade do item que o player vai receber). Em data/actions, no arquivo actions.xml, adicione: <action actionid="16661" event="script" value="newquest.lua"/> Agora você só precisa abrir seu mapa e adicionar o ACTIONID 16661 ao baú.