Ir para conteúdo
  • Cadastre-se

Erro war system - doGuildAddEnemy


Posts Recomendados

estou com um problema na minha war system

seguinte

quando vou no guild chat

e digito o comando

/war invite,nomedaguild,frags vai blz ate aparece a mensagem na tela

mais ai quando a outra pessoa vai aceitar com o comando

/war accept,nomedaguild .. fica como mensagem no guidl chat e aparece o seguinte error

errorwarsystem.jpg

por favor me ajudem ai so falta isso

Editado por festhuslmb (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Faça uma imagem na http://imageshack.us/ Pq Ninguem Vai Baxar Isso

e Fassa Isso %7Boption%7D

Editado por raell5 (veja o histórico de edições)
13978461.png
Link para o post
Compartilhar em outros sites

Tenta esse:


function onSay(cid, words, param, channel)

	 local guild = getPlayerGuildId(cid)

	 if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then

			 doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0)

			 return true

	 end


	 local t = string.explode(param, ",")

	 if(not t[2]) then

			 doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0)

			 return true

	 end


	 local enemy = getGuildId(t[2])

	 if(not enemy) then

			 doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0)

			 return true

	 end


	 if(enemy == guild) then

			 doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0)

			 return true

	 end


	 local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy)

	 if(tmp:getID() ~= -1) then

			 enemyName = tmp:getDataString("name")

			 tmp:free()

	 end


	 if(isInArray({"accept", "reject", "cancel"}, t[1])) then

			 local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild

			 if(t[1] == "cancel") then

					 query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy

			 end


			 tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0")

			 if(tmp:getID() == -1) then

					 doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)

					 return true

			 end


			 if(t[1] == "accept") then

					 local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild)

					 local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment")


					 _tmp:free()

					 if(state) then

							 doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0)

							 return true

					 end


					 db.executeQuery("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild)

			 end


			 query = "UPDATE `guild_wars` SET "

			 local msg = "accepted " .. enemyName .. " invitation to war."

			 if(t[1] == "reject") then

					 query = query .. "`end` = " .. os.time() .. ", `status` = 2"

					 msg = "rejected " .. enemyName .. " invitation to war."

			 elseif(t[1] == "cancel") then

					 query = query .. "`end` = " .. os.time() .. ", `status` = 3"

					 msg = "canceled invitation to a war with " .. enemyName .. "."

			 else

					 query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1"

			 end


			 query = query .. " WHERE `id` = " .. tmp:getDataInt("id")

			 if(t[1] == "accept") then

					 doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD)

					 doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY)

			 end


			 tmp:free()

			 db.executeQuery(query)

			 doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE)

			 return true

	 end


	 if(t[1] == "invite") then

			 local str = ""

			 tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)")

			 if(tmp:getID() ~= -1) then

					 if(tmp:getDataInt("status") == 0) then

							 if(tmp:getDataInt("guild_id") == guild) then

									 str = "You have already invited " .. enemyName .. " to war."

							 else

									 str = enemyName .. " have already invited you to war."

							 end

					 else

							 str = "You are already on a war with " .. enemyName .. "."

					 end


					 tmp:free()

			 end


			 if(str ~= "") then

					 doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0)

					 return true

			 end


			 local frags = tonumber(t[3])

			 if(frags ~= nil) then

					 frags = math.max(10, math.min(1000, frags))

			 else

					 frags = 100

			 end


			 local payment = tonumber(t[4])

			 if(payment ~= nil) then

					 payment = math.max(100000, math.min(1000000000, payment))

					 tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild)


					 local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment

					 tmp:free()

					 if(state) then

							 doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0)

							 return true

					 end


					 db.executeQuery("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild)

			 else

					 payment = 0

			 end


			 local begining, ending = os.time(), tonumber(t[5])

			 if(ending ~= nil and ending ~= 0) then

					 ending = begining + (ending * 86400)

			 else

					 ending = 0

			 end


			 db.executeQuery("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");")

			 doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE)

			 return true

	 end


	 if(not isInArray({"end", "finish"}, t[1])) then

			 return false

	 end


	 local status = (t[1] == "end" and 1 or 4)

	 tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status)

	 if(tmp:getID() ~= -1) then

			 local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id")

			 tmp:free()

			 doGuildRemoveEnemy(guild, enemy)

			 doGuildRemoveEnemy(enemy, guild)


			 db.executeQuery(query)

			 doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 3 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE)

			 return true

	 end


	 if(status == 3) then

			 doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)

			 return true

	 end


	 tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1")

	 if(tmp:getID() ~= -1) then

			 if(tmp:getDataInt("end") > 0) then

					 tmp:free()

					 doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)

					 return true

			 end


			 local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id")

			 tmp:free()


			 db.executeQuery(query)

			 doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE)

			 return true

	 end


	 doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)

	 return true

end

Título do tópico editado e móvido!

Leia as regras do fórum, por favor.

Link para o post
Compartilhar em outros sites

Vc está usando website? adicionou as query?

Na pasta lib crie um arquivo .lua com o nome 101-war e adicione:


WAR_GUILD = 0

WAR_ENEMY = 1

Ai você tenta...

Link para o post
Compartilhar em outros sites

Já executou a query?

KEY `guild_id` (`guild_id`),

KEY `enemy_id` (`enemy_id`)


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;

Link para o post
Compartilhar em outros sites

Abra seu phpmyadmin -> vá ao console do mysql -> execute abaixo:

KEY `guild_id` (`guild_id`),

KEY `enemy_id` (`enemy_id`)

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;

Editado por HeberPcL (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Erro

consulta SQL:

KEY `guild_id` ( `guild_id` ) , KEY `enemy_id` ( `enemy_id` ) 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

Mensagens do MySQL : b_help.png

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'KEY `guild_id` (`guild_id`),

KEY `enemy_id` (`enemy_id`)

ALTER TABLE `guild_' at line 1

Link para o post
Compartilhar em outros sites


CREATE TABLE IF NOT EXISTS `guild_wars` (

  `id` INT NOT NULL AUTO_INCREMENT,

  `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;

Créditos: Walef Xavier

Link para o post
Compartilhar em outros sites

Erro

consulta SQL:

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

Mensagens do MySQL : b_help.png

#1060 - Duplicate column name 'balance'

Erro

consulta SQL:

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

Mensagens do MySQL : b_help.png#1060 - Duplicate column name 'war'

Olha pessoal se pode fazer isso aqui

poste um link com um servidor 9.1 ou mais atualizado ja com war system se por eu agradeço desde ja

Link para o post
Compartilhar em outros sites
  • 3 months later...

Estou com o mesmo erro, alguém ai pode continuar ajudando ? Ja compilei com war system, ja adicionei as tables, ja configurei o site, ja arrumei os arquivos war.lua, balance.lua, 101-war.lua...

Por favor alguém ajude !

assinatura.jpg

sonanucafan.jpg

Link para o post
Compartilhar em outros sites
  • 3 years later...
Em 27/11/2012 16:27:46, sonanuca disse:

Estou com o mesmo erro, alguém ai pode continuar ajudando ? Ja compilei com war system, ja adicionei as tables, ja configurei o site, ja arrumei os arquivos war.lua, balance.lua, 101-war.lua...

Por favor alguém ajude !

 

Também preciso de ajuda!

Oi

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo