Ir para conteúdo

Problema Com Nova Potion E Sqlite


JNLPB

Posts Recomendados

Olá! Estou com dois problemas:

 

1 - Eu criei um novo tipo de potion, com base em uma já existente. Mas essa nova, estranhamente, não está funcionando! Seguem os erros:

 

[22/01/2011 13:32:03] [Error - LuaScriptInterface::loadFile] data/actions/scripts/liquids/newpotion.lua:16: 'then' expected near ')'

[22/01/2011 13:32:03] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/liquids/newpotion.lua)

[22/01/2011 13:32:03] data/actions/scripts/liquids/newpotion.lua:16: 'then' expected near ')'

 

Como podem ver, é dito que o problema é a falta de "then", mais observem o script:

 

 

local MIN = 350
local MAX = 445
local EMPTY_POTION = 7633


local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
function onUse(cid, item, fromPosition, itemEx, toPosition)
if isPlayer(itemEx.uid) == FALSE then
      return FALSE
end
if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
           return TRUE
             end	
if getPlayerLevel(itemEx.uid) <200) then
elseifgetPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
doCreatureSay(itemEx.uid, "Only players of level 200 or above may drink this holy fluid.", TALKTYPE_ORANGE_1)
	return TRUE
end
if doPlayerAddMana and doCreatureAddHealth(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
	return FALSE
end
doAddCondition(cid, exhaust)
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
doTransformItem(item.uid, EMPTY_POTION)
return TRUE
end

 

 

Já tentei retirar a linha do erro, mudar o "then" de lugar, mais nada funcionou. A intensão era fazer com que essa potion recuperasse hp e mana ao ser usada.

 

 

2 - O outro problema eh com o SQLite. Na hora de importar um arquivo (Query) com o que deve ser alterado na database, acontecem os erros:

 

Error while executing query: near "UNSIGNED": syntax error

 

Tentei remover os "UNSIGNED"s apenas para testar, mais acaba acontecendo outro erro:

 

Error while executing query: near "KEY": syntax error

 

 

E abaixo o "documento":

 

 

 

CREATE TABLE IF NOT EXISTS `guild_wars` (
 `id` INT NOT NULL,
 `guild_id` INT NOT NULL,
 `enemy_id` INT NOT NULL,
 `begin` BIGINT NOT NULL DEFAULT '0',
 `end` BIGINT NOT NULL DEFAULT '0',
 `frags` INT unsigned NOT NULL DEFAULT '0',
 `payment` BIGINT UNSIGNED NOT NULL DEFAULT '0',
 `guild_kills` INT UNSIGNED NOT NULL DEFAULT '0',
 `enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0',
 `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`),
 KEY `status` (`status`),
 KEY `guild_id` (`guild_id`),
 KEY `enemy_id` (`enemy_id`)
) ENGINE=InnoDB;

ALTER TABLE `guild_wars`
 ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE,
 ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;

ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`;

CREATE TABLE IF NOT EXISTS `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;

ALTER TABLE `guild_kills`
 ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE,
 ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE,
 ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;

ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0;

 

 

 

Alguém podem me ajudar com estes problemas? Agradeço desde já! :smile_positivo:

(me desculpem se esta não é a área certa para postar sobre problemas com SQL.)

 

Ninguém? ;S

Editado por JNLPB
Link para o comentário
Compartilhar em outros sites

olha o erro da sqlite, sugiro que mude para msyql [Eu acho] Voce usa o system de war do Elf?

Eu uso e eu executei no msyql e não deu problema.

 

Na sua poção fassa assim:

 

 

Tente assim ctrl+f ache:

 

if getPlayerLevel(itemEx.uid) <200) then

 

e troque por

 

if getPlayerLevel(itemEx.uid) < 200) then

 

 

Se ajudei REP+

Se não deu certo responda aqui novamente.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Eae, Vitinhowcq! Desculpe a demora em responder, mas não estava conseguindo acessar o Xtibia, só hoje voltou a "funcionar". Agradeço pela dica de mudar de SQL para MySQL, realmente deu certo, vlw! Já a potion ainda não pude testar, mais assim que eu fizer, edito ake avisando, e te dou rep, caso funcione. xD

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...