TO

[TFS 0.3.6/0.4] GuildWar - Anti Entrosa

Por Tony Araujo, 29 de mai. de 2018 em Mods, funções e outros

7
4.4k
Tony AraujoT
29 de maio de 2018 às 10:37

iVSIY9Z.jpg

 

Fala galerinha, tudo bom? Então, hoje venho compartilhar um sistema que fiz a dois anos atrás, uma GuildWar (CityWar) - Anti Entrosa.  Bom, caso alguém não conheça, basicamente é o seguinte: Uma batalha entre duas guildas, onde é estipulado o número máximo de mortes e um tempo, quem estiver com o maior número de mortes até o final do tempo ou quem alcançar todos os abates, ganha.  Ela é Anti - Entrosa porque acontece em cidades específicas e ninguém de fora terá acesso de entrar. Ela conta também com alguns módulos de batalhas diferentes, sendo eles: Tradicional (ou seja, vale tudo), sem UE (não é permitido magias em área) e só SD rune (ou seja, nesta guerra os magos só poderão utilizar a Sudden Death Rune). Você é livre para escolher entre quatro tempos de duração e consequentemente, cada um terá valores diferentes, porém, será possível adicionar mais, remover e/ou editar. 

 

A configuração do sistema é super fácil e auto explicativa, segue abaixo.

CityWar_Configurations = {
	Players_Mode = {min = 5, max = 50},
	TimePrice_Mode = {[15] = 50000, [30] = 75000, [60] = 90000, [120] = 120000},
	War_Mode = {
		["tradicional, padrao, normal, 1"] = 1, 
		["sem ue, semue, 2"] = 2,
		["sosd, apenas sd, só sd, soh sd, 3"] = 3;
	},
	Maps_Mode = {
		["grendor"] = {teamA = {x = 32052, y = 33809, z = 6}, teamB = {x = 32172, y = 33784, z = 5}},
		["darashia"] = {teamA = {x = 32859, y = 34023, z = 8}, teamB = {x = 32935, y = 34044, z = 6}},
		["thais"] = {teamA = {x = 32514, y = 33722, z = 7}, teamB = {x = 32479, y = 33681, z = 7}},
		["carlin"] = {teamA = {x = 32441, y = 33527, z = 7}, teamB = {x = 32503, y = 33506, z = 7}},
		["fibula"] = {teamA = {x = 32309, y = 33886, z = 7}, teamB = {x = 32356, y = 33956, z = 6}},
		["edron"] = {teamA = {x = 33038, y = 33663, z = 7}, teamB = {x = 32969, y = 33541, z = 6}},
		["new island"] = {teamA = {x = 32573, y = 34007, z = 7}, teamB = {x = 32496, y = 33949, z = 6}},
		["venore"] = {teamA = {x = 32820, y = 33606, z = 7}, teamB = {x = 32725, y = 33629, z = 7}};
	}
}

 

Bom, esse é meu primeiro post de estreia à colaboração do Eks e a minha volta ao Open Tibia. Espero que gostem e façam um ótimo proveito. É nós galera! ❤️

[TonyAraújo] CityWar.zip

Editado Maio 29 por Tony Araujo

BennyB
29 de maio de 2018 às 11:54

Valeu pelo conteúdo, Tony! ? 

Bom ter você conosco.

 

Tony AraujoT
29 de maio de 2018 às 15:39
3 horas atrás, Bennyyw disse:

Valeu pelo conteúdo, Tony! ? 

Bom ter você conosco.

 

Obrigado manim, é bom estar de volta ;D

1 mês depois...
God MayaG
29 de junho de 2018 às 12:11

please  table mysql

 

INSERT INTO `city_war` (`GuildName_A`, `GuildFrags_A`, `GuildName_B`, `GuildFrags_B`, `War_Time`, `War_Map`, `War_Mode`, `War_PlayersLimit`, `War_Status`, `War_DateEnd`)

 

and comand exemple?

1 mês depois...
BillihardB
16 de julho de 2018 às 23:03

ae, deu o seguinte erro, tem como ajudar?

[20:49:05.048] mysql_real_query(): INSERT INTO `city_war` (`GuildName_A`, `GuildFrags_A`, `GuildName_B`, `GuildFrags_B`, `War_Time`, `War_Map`, `War_Mode`, `War_PlayersLimit`, `War_Status`, `War_DateEnd`) VALUES (Testee, 0, Teste, 0, 30, edron, 2, 10, 1, 1533584945); - MYSQL ERROR: Unknown column 'Testee' in 'field list' (1054)

[20:49:15.528] [Error - TalkAction Interface] 
[20:49:15.528] data/talkactions/scripts/citywar_talkaction.lua:onSay
[20:49:15.528] Description: 
[20:49:15.528] (internalGetPlayerInfo) Player not found when requesting player info #15

[20:49:15.528] [Error - TalkAction Interface] 
[20:49:15.528] data/talkactions/scripts/citywar_talkaction.lua:onSay
[20:49:15.528] Description: 
[20:49:15.528] data/lib/citywar_lib.lua:106: attempt to compare number with boolean
[20:49:15.528] stack traceback:
[20:49:15.528]  data/lib/citywar_lib.lua:106: in function 'accept'
[20:49:15.528]  data/talkactions/scripts/citywar_talkaction.lua:7: in function <data/talkactions/scripts/citywar_talkaction.lua:1>

 

Minha table:

 

CREATE TABLE IF NOT EXISTS `city_war` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`GuildFrags_A` int(11) NOT NULL,
`GuildFrags_B` int(11) NOT NULL,
`GuildName_A` varchar(255) NOT NULL,
`GuildName_B` varchar(255) NOT NULL,
`War_Time` int(11) NOT NULL,
`War_Mode` int(11) NOT NULL,
`War_Map` int(11) NOT NULL,
`War_PlayersLimit` int(11) NOT NULL,
`War_DateEnd` BIGINT NOT NULL DEFAULT '0',
`War_Status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `id` (`id`),
KEY `War_Status` (`War_Status`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

 

Editado Julho 17 por Billihard

1 ano depois...
PokkuruP
16 de junho de 2020 às 01:23
Em 29/05/2018 em 09:37, Tony Araujo disse:

iVSIY9Z.jpg

 

Fala galerinha, tudo bom? Então, hoje venho compartilhar um sistema que fiz a dois anos atrás, uma GuildWar (CityWar) - Anti Entrosa.  Bom, caso alguém não conheça, basicamente é o seguinte: Uma batalha entre duas guildas, onde é estipulado o número máximo de mortes e um tempo, quem estiver com o maior número de mortes até o final do tempo ou quem alcançar todos os abates, ganha.  Ela é Anti - Entrosa porque acontece em cidades específicas e ninguém de fora terá acesso de entrar. Ela conta também com alguns módulos de batalhas diferentes, sendo eles: Tradicional (ou seja, vale tudo), sem UE (não é permitido magias em área) e só SD rune (ou seja, nesta guerra os magos só poderão utilizar a Sudden Death Rune). Você é livre para escolher entre quatro tempos de duração e consequentemente, cada um terá valores diferentes, porém, será possível adicionar mais, remover e/ou editar. 

 

A configuração do sistema é super fácil e auto explicativa, segue abaixo.

CityWar_Configurations = {
	Players_Mode = {min = 5, max = 50},
	TimePrice_Mode = {[15] = 50000, [30] = 75000, [60] = 90000, [120] = 120000},
	War_Mode = {
		["tradicional, padrao, normal, 1"] = 1, 
		["sem ue, semue, 2"] = 2,
		["sosd, apenas sd, só sd, soh sd, 3"] = 3;
	},
	Maps_Mode = {
		["grendor"] = {teamA = {x = 32052, y = 33809, z = 6}, teamB = {x = 32172, y = 33784, z = 5}},
		["darashia"] = {teamA = {x = 32859, y = 34023, z = 8}, teamB = {x = 32935, y = 34044, z = 6}},
		["thais"] = {teamA = {x = 32514, y = 33722, z = 7}, teamB = {x = 32479, y = 33681, z = 7}},
		["carlin"] = {teamA = {x = 32441, y = 33527, z = 7}, teamB = {x = 32503, y = 33506, z = 7}},
		["fibula"] = {teamA = {x = 32309, y = 33886, z = 7}, teamB = {x = 32356, y = 33956, z = 6}},
		["edron"] = {teamA = {x = 33038, y = 33663, z = 7}, teamB = {x = 32969, y = 33541, z = 6}},
		["new island"] = {teamA = {x = 32573, y = 34007, z = 7}, teamB = {x = 32496, y = 33949, z = 6}},
		["venore"] = {teamA = {x = 32820, y = 33606, z = 7}, teamB = {x = 32725, y = 33629, z = 7}};
	}
}

 

Bom, esse é meu primeiro post de estreia à colaboração do Eks e a minha volta ao Open Tibia. Espero que gostem e façam um ótimo proveito. É nós galera! ❤️

[TonyAraújo] CityWar.zip 8 kB · 48 downloads

 

Bro u can show the dates to create the correct table mysql please?

2 semanas depois...
cs007C
26 de junho de 2020 às 19:31

Solução para o error na database.

CREATE TABLE IF NOT EXISTS `city_war` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `GuildName_A` varchar(255) NOT NULL,
  `GuildFrags_A` tinyint(4) unsigned NOT NULL DEFAULT '0',
  `GuildName_B` varchar(255) NOT NULL,
  `GuildFrags_B` tinyint(4) unsigned NOT NULL DEFAULT '0',
  `War_Time` int(11) NOT NULL DEFAULT '0',
  `War_Map` varchar(255) NOT NULL,
  `War_Mode` int(11) NOT NULL DEFAULT '0',
  `War_PlayersLimit` int(11) NOT NULL DEFAULT '0',
  `War_Status` int(11) NOT NULL DEFAULT '0',
  `War_DateEnd` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Depois vá em data/libs/citywar_lib.lua

Linha 275.

	doBroadcastMessage("[City War]\n" .. war.challengerGuildName .. " convidou a guild " .. war.challengedGuildName .. "\nA guerra sera na cidade de " .. war.city .. "\nSerao " .. war.players .. " jogadores para cada time. \nSerao " .. war.time .. " minutos de guerra.\nO Lider da guild tem 5 minutos para aceitar o convite.\nDigite: !citywar accept")
	db.executeQuery("INSERT INTO `city_war` (`id`, `GuildName_A`, `GuildFrags_A`, `GuildName_B`, `GuildFrags_B`, `War_Time`, `War_Map`, `War_Mode`, `War_PlayersLimit`, `War_Status`, `War_DateEnd`) VALUES ('0','" .. war.challengerGuildName .. "', '0', '" .. war.challengedGuildName .. "', '0', '" .. war.time .. "', '" .. war.city .. "', '" .. war.mode .. "', '" .. war.players .. "', '1', '" .. os.time() + (war.time * 60 * 1000) .. "');")
	return setmetatable(war, {__index = self}, addEvent(CityWar.checkWar, 5 * 60 * 1000, war.city))

Só modificar.

 

Agora o error no script não consegui resolver ainda. Na hora que aceita ele gera um erro na chamada a função "accept".

 

Digite: !citywar accept".

[0:44:15.961] [Error - TalkAction Interface] 
[0:44:15.961] data/talkactions/scripts/citywar_talkaction.lua:onSay
[0:44:15.962] Description: 
[0:44:15.962] (internalGetPlayerInfo) Player not found when requesting player info #11

[0:44:15.962] [Error - TalkAction Interface] 
[0:44:15.962] data/talkactions/scripts/citywar_talkaction.lua:onSay
[0:44:15.962] Description: 
[0:44:15.962] (luaDoPlayerSendTextMessage) Player not found

 

Editado Junho 26 por cs007