-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por ILex WilL
Olá, Alguém poderia me ajudar com uns Scripts? nem que seja cobrando, dependendo eu pago para me ajudar...
-
Por Kill of sumoners
Boa noite, estou com um erro ao atacar um player em meu sv eu nao pego pk, nem sai magia, aparece a mensagem "voce so pode usar isso em criaturas"
obs: magia em area acerta e pega pk, apenas as targets ou hits de arma nao vao
-
Por Jpminatel
Estou com os seguintes erros ; e procuro quem poça ajudar ai a eliminar esses 3 erros , erro 1 e 2 acontece qnd um pokemon usa ps e o erro 3 é nas potions
[Error - TalkAction Interface]
[30/01/2022 17:04:25] data/talkactions/scripts/move1.lua:onSay
[30/01/2022 17:04:25] Description:
[30/01/2022 17:04:25] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
[30/01/2022 17:04:25] stack traceback:
[30/01/2022 17:04:25] data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
Erro 2 ;
[30/01/2022 18:08:53] [Error - Spell Interface]
[30/01/2022 18:08:53] In a timer event called from:
[30/01/2022 18:08:53] data/spells/scripts/ps/Earthquake.lua:onCastSpell
[30/01/2022 18:08:53] Description:
[30/01/2022 18:08:53] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
[30/01/2022 18:08:53] stack traceback:
[30/01/2022 18:08:53] data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
[30/01/2022 18:08:53] data/lib/newStatusSyst.lua:844: in function 'doMoveInArea2'
[30/01/2022 18:08:53] data/lib/pokemon moves.lua:1355: in function <data/lib/pokemon moves.lua:1351>
[30/01/2022 18:08:54] [Error - Spell Interface]
[30/01/2022 18:08:54] In a timer event called from:
[30/01/2022 18:08:54] data/spells/scripts/ps/Earthquake.lua:onCastSpell
[30/01/2022 18:08:54] Description:
[30/01/2022 18:08:54] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
[30/01/2022 18:08:54] stack traceback:
[30/01/2022 18:08:54] data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
[30/01/2022 18:08:54] data/lib/newStatusSyst.lua:844: in function 'doMoveInArea2'
[30/01/2022 18:08:54] data/lib/pokemon moves.lua:1355: in function <data/lib/pokemon moves.lua:1351>
[30/01/2022 18:18:20] [Error - TalkAction Interface]
[30/01/2022 18:18:20] data/talkactions/scripts/move1.lua:onSay
[30/01/2022 18:18:20] Description:
[30/01/2022 18:18:20] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
[30/01/2022 18:18:20] stack traceback:
[30/01/2022 18:18:20] data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
[30/01/2022 18:18:20] data/lib/newStatusSyst.lua:1119: in function 'doMoveInAreaMulti'
[30/01/2022 18:18:20] data/lib/pokemon moves.lua:458: in function 'docastspell'
[30/01/2022 18:18:20] data/talkactions/scripts/move1.lua:173: in function <data/talkactions/scripts/move1.lua:20>
Erro 3 ;
erro potion
[30/01/2022 18:48:35] [Error - Action Interface]
[30/01/2022 18:48:35] data/actions/scripts/potion.lua:onUse
[30/01/2022 18:48:35] Description:
[30/01/2022 18:48:35] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
[30/01/2022 18:48:35] stack traceback:
[30/01/2022 18:48:35] data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
[30/01/2022 18:48:35] data/actions/scripts/potion.lua:45: in function <data/actions/scripts/potion.lua:43>
[30/01/2022 18:48:39] [Error - Action Interface]
[30/01/2022 18:48:39] data/actions/scripts/potion.lua:onUse
[30/01/2022 18:48:39] Description:
[30/01/2022 18:48:39] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
[30/01/2022 18:48:39] stack traceback:
[30/01/2022 18:48:39] data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
[30/01/2022 18:48:39] data/actions/scripts/potion.lua:45: in function <data/actions/scripts/potion.lua:43>
-
Por
Nazo
Buenas, TK!
Um usuário pediu ajuda em um script, onde queria limitar para a quest ser feita apenas uma vez por IP, mesmo que ainda seja possível mudá-lo, resolvi postar aqui xd
Execute esse código SQL no seu banco de dados MySQL, para a criação da tabela onde ficarão as storages e o IP armazenado do player:
CREATE TABLE player_ip_storage( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player_id INT NOT NULL, ip CHAR(15) NOT NULL, storage INT NOT NULL ); ALTER TABLE player_ip_storage ADD CONSTRAINT FK_PLAYER_ID FOREIGN KEY (player_id) REFERENCES players(id);
Ou caso seja SQLITE, utilize esse código:
CREATE TABLE player_ip_storage( player_id INT NOT NULL, ip CHAR(15) NOT NULL, storage INT NOT NULL ); ALTER TABLE player_ip_storage ADD CONSTRAINT FK_PLAYER_ID FOREIGN KEY (player_id) REFERENCES players(id);
Crie um arquivo chamado nazo-functions.lua em data/lib e adicione o seguinte conteúdo:
-- by Nazo (tibiaking.com) -- IP Storage System function getIpQuestStatus(cid, storage) storages = db.getResult("SELECT * FROM `player_ip_storage` WHERE `ip` = \"" .. doConvertIntegerToIp(getPlayerIp(cid)) .. "\" and `storage` = "..storage..";") if(storages:getID() ~= -1) then return false end return true end function setIpQuestStatus(cid, storage) db.executeQuery("INSERT INTO player_ip_storage(player_id, ip, storage) VALUES("..getPlayerGUID(cid)..",\""..doConvertIntegerToIp(getPlayerIp(cid)).."\","..storage..")") return true end
Agora, quando você tiver uma quest, adicione na verificação a função getIpQuestStatus na checagem junto, e quando finalizar a quest utilize o setIpQuestStatus, com os parâmetros cid e número da storage, porém a função só armazena que essa storage tem algo no banco de dados, ou seja, a quest já foi feita, você não armazena o valor da storage junto (como a função normal que geralmente adiciona "1" na storage).
Exemplo de quest abaixo:
-- by Nazo (tibiaking.com) config = { storage = 123123, -- storage da quest premio = {2160, 1} -- {itemid, quantia} } function onUse(cid, item, frompos, item2, toPosition) queststatus = getPlayerStorageValue(cid,config.storage) if(queststatus == -1 and getIpQuestStatus(cid, config.storage)) then -- note que eu só adicionei a função, nenhuma comparação, explicarei abaixo do código doPlayerSendTextMessage(cid,22,"Tome seu prêmio.") doPlayerAddItem(cid,config.premio[1],config.premio[2]) setPlayerStorageValue(cid,config.storage,1) setIpQuestStatus(cid,config.storage) -- função que adiciona a storage no banco de dados else doPlayerSendTextMessage(cid,22,"Você já fez esta quest.") end end
Explicação básica do motivo da função não possuir comparação na verificação e ficar como a seguir:
if(getIpQuestStatus(cid, config.storage)) then Quando você faz um if, com uma função dentro sem comparações, ela continuará o bloco de comando apenas se o retorno da mesma for verdadeiro, assim quando você fizer a quest, e tentar novamente, o get retorna falso, e isso cancela a condição e vai para o bloco de comando do "else".
-
Por tataboy67
Opa galera beleza?
Meu amigo esses dias pediu um sistema basicamente assim:
sistema:
!quests charizard (você é teleportado para hunt ou quest por "x" tempo, e após esse tempo, você é teleportado para 1 posição "y" (cp/templo)) !quest time (o jogador recebe uma msg de quanto tempo ainda resta para ele ficar nessa hunt/quest) !quest (abre uma janela aonde fala as informações dessa hunt/quest)
bom eu tentei usar o "for" para fazer com que tenha varios tipos de hunts dentro (criando uma tabela), mas como ainda estou estudando lua e esse é meu 1º script, eu não consegui fazer, então eu to usando o "param" E eu fui pesquisar aqui no forum e em outro forums tbm esse sistema, e vi que ninguem nunca postou
então resolvi cria-lo.
Em Talkactions.xml, adicione a linha:
Em Talkactions, crie um arquivo com o nome de quest_time.lua, e adicione:
Creditos:
Eu: Pelo script
Desculpa se o script ficou ruim, é que é meu primeiro script, tenham pena de mim.
Eu farei melhoras nesse script mais pra frente.
-