Ir para conteúdo
  • Cadastre-se

Posts Recomendados

MEU OT TEM UM SYSTEM POINTS QUE SERIA FUNCIONAL ATRAVÉS DO SITE, PORÉM EU NAO USO SITE, E O UNICO JEITO DE DAR PONTOS PARA OS PLAYERS É ATRAVÉS DO COMANDO: "/ADDPOINTS NICKDOPLAYER, QUANTIDADE DE PONTOS"

PORÉM, QUERIA UMA TALKACTION QUE O PLAYER POSSA COMPRAR POINTS USANDO UMA CERTA QUANTIDADE DE COINS. 

Link para o post
Compartilhar em outros sites
6 horas atrás, Xagah disse:

Cola o 'script' do comando do GOD que crio um para 'player' aqui.

Esse é o script que eu uso de Points:

 

Citar

function onSay(cid, words, param)
if(words == "!points") then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tem "..getPoints(cid).." Points.")
elseif(words == "!rankpoints") then
local max_players,str = 20,""
str = "--[ RANK POINTS ]--\n\n"
                query = db.getResult("SELECT `name`, `points` FROM `players` WHERE `points` > -1 AND `id` > 6 AND `group_id` < 2 ORDER BY `points` DESC, `name` ASC;")
                if (query:getID() ~= -1) then k = 1 while true do
str = str .. "\n " .. k .. ". " .. query:getDataString("name") .. " - [" .. query:getDataInt("points") .. "]"
                k = k + 1
                if not(query:next()) or k > max_players then break end end query:free()end
                if str ~= "" then doShowTextDialog(cid,6500, str) end
elseif(words == "/addpoints") then  
if getPlayerAccess(cid) == 5 then
local t = string.explode(param, ",")  
if not t[1] or not t[2] then  return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")  end  
local player = getPlayerByName(t[1])  
local points = t[2]  
local pid = getPlayerByNameWildcard(t[1])  
if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then  
return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")  end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você adicionou "..points.." Points do jogador "..t[1])  
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..points.." Points no seu character.")  
addPoints(player,points)
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você agora tem "..getPoints(player).." Points.")   
end
elseif(words == "/delpoints") then
if getPlayerAccess(cid) == 5 then
local t = string.explode(param, ",")  
if not t[1] or not t[2] then  return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")  end  
local player = getPlayerByName(t[1])  
local points = t[2]  
local pid = getPlayerByNameWildcard(t[1])  
if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then  
return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")  end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você removeu "..points.." Points do jogador "..t[1])  
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram removidos "..points.." Points do seu character.")  
removePoints(player,points)
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você agora tem "..getPoints(player).." Points.")   
end
elseif(words == "/setpoints") then
if getPlayerAccess(cid) == 5 then
local t = string.explode(param, ",")  
if not t[1] or not t[2] then  return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")  end  
local player = getPlayerByName(t[1])  
local points = t[2]  
local pid = getPlayerByNameWildcard(t[1])  
if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then  
return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")  end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Agora o jogador "..t[1].." tem "..points.." Points no seu character.")  
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "agora você tem "..points.." Points do seu character.")  
setPoints(player,points)
end
end
return TRUE
end

 

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

Faz assim, dentro do seu 'talkactions.xml' vc adiciona o seguinte:

<talkaction log="yes" words="!buyvip" event="script" value="buyvip.lua"/>

E, dentro da pasta data > talkactions > script vc adiciona um 'script' de extensão '.lua' e salva o seguinte dentro:

function onSay(cid, words, param)
		config = 
		{
		days = 15, -- Número de Dias que poderá ser comprado
		item = 8181, -- Id do item que será removida para pagar a VIP
		qtde = 5, -- Quantidade de moedas que serão retiradas para pagar a VIP
		maxDays = 120, -- Quantidade máxima de Dias que um Player pode ter
		nameDoPlayer = getPlayerName(cid) -- não mude isto
		}
		
	if(getPlayerPremiumDays(cid) < config.maxDays) then
		if (doPlayerRemoveItem(cid,config.item,config.qtde)) then
			doSendMagicEffect(getThingPosition(cid), 13)
			doSendAnimatedText(getPlayerPosition(cid), "VIP!", TEXTCOLOR_RED)
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou " .. config.days .. " dias VIP.")	
			addPoints(config.nameDoPlayer,config.days)
		else
			doPlayerSendCancel(cid, "Você não tem moedas suficientes, " .. config.days .. " dias VIP custam 05 moedas.")
			doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
			return
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode comprar mais do que " .. config.days + config.maxDays .. " dias VIP.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		return
	end
end

Tenta aí e vê o que dá.

 

Ajudei? Rep+

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

Poxa cara, acho que você entendeu errado... o Sistema de Points não em nada haver com VIP(o ot já tem um Vip System que o player fala !buyvip e compra.. ). O problema é o seguindo, meu ot sem um Point System que funciona da seguinte forma: o player compra Points no game com dinheiro de verdade, e dentro do game tem diversos itens que só podem ser adquiridos usando esses points. Esse é o problema, nao quero nenhum tipo de pagamento real, quero que o player possa comprar os "Points" com dinheiro do jogo. Ex: 1 point = 2kk 

Link para o post
Compartilhar em outros sites

Ah, entendi, o seu jogo não tem nada a ver com dinheiro real?

 

Porque usei as funções do seu próprio 'script', não peguei na net.

 

Chegou a testá-lo?

 

A única coisa que não está de acordo é que no 'script' que te passei ele usa as moedas 8181 como troca. No seu caso você quer que estes pontos fiquem 'online', no banco de dados.

 

É isto?

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
2 horas atrás, Xagah disse:

Ah, entendi, o seu jogo não tem nada a ver com dinheiro real?

 

Porque usei as funções do seu próprio 'script', não peguei na net.

 

Chegou a testá-lo?

 

A única coisa que não está de acordo é que no 'script' que te passei ele usa as moedas 8181 como troca. No seu caso você quer que estes pontos fiquem 'online', no banco de dados.

 

É isto?

Exatamente isso, eu nao uso funções de Donate nem nada do tipo, apenas o próprio game.

 

Eu testei, mas nao teve o efeito que eu queira...

 

Os "Points" não tem um "id", digamos assim, a unica coisa que posso fazer pros players ganharem pontos, seria com o comando de GOD: "/addpoints nick, quantidade", porém... queria que eles mesmos consigam comprar esses points, com dinheiro do jogo.

Link para o post
Compartilhar em outros sites

Olá, veja se isto supre o que precisa:

Spoiler

function onSay(cid, words, param)
	
	--============== PARTE CONFIGURAVEL ====--------------------------		
		
	local preco = 100 -- valor de cada ponto em 'k', ou seja, em 1000gps. Ex.: 10 neste local diz que cada ponto custa 10.000 gps.
	local qtde = 1 -- Quantos pontos serão comprados com cada unidade de preço mostrada acima
	local money = getPlayerMoney(cid)
	local nameDoPlayer = getPlayerName(cid) -- não mude isto
	local nomePonto = "points" -- coloque aqui dentro o nome do ponto, isto aparecerá em todas as frases do script
		
	--============== NÃO MEXA DAQUI PARA BAIXO ====--------------------------	
	if(money >= preco*qtde*1000) then 
		doPlayerRemoveMoney(cid, preco.qtde)) then
		doSendMagicEffect(getThingPosition(cid), 13)
		doSendAnimatedText(getPlayerPosition(cid), ""..nomePonto.."", TEXTCOLOR_RED)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou " .. qtde .. " dias "..nomePonto..".")	
		addPoints(nameDoPlayer,qtde)

	else
		doPlayerSendCancel(cid, "Você não tem dinheiro suficientes, " .. qtde .. ". "..qtde.." "..nomePonto.." custam "..preco*qtde.." gps.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		return true
end

 

 

Você já tem um sistema de "balance", ou seja, para que os player possam ver quantos pontos eles têm?

Abraço.

 

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
4 horas atrás, Xagah disse:

Olá, veja se isto supre o que precisa:

  Mostrar conteúdo oculto



function onSay(cid, words, param)
	
	--============== PARTE CONFIGURAVEL ====--------------------------		
		
	local preco = 100 -- valor de cada ponto em 'k', ou seja, em 1000gps. Ex.: 10 neste local diz que cada ponto custa 10.000 gps.
	local qtde = 1 -- Quantos pontos serão comprados com cada unidade de preço mostrada acima
	local money = getPlayerMoney(cid)
	local nameDoPlayer = getPlayerName(cid) -- não mude isto
	local nomePonto = "points" -- coloque aqui dentro o nome do ponto, isto aparecerá em todas as frases do script
		
	--============== NÃO MEXA DAQUI PARA BAIXO ====--------------------------	
	if(money >= preco*qtde*1000) then 
		doPlayerRemoveMoney(cid, preco.qtde)) then
		doSendMagicEffect(getThingPosition(cid), 13)
		doSendAnimatedText(getPlayerPosition(cid), ""..nomePonto.."", TEXTCOLOR_RED)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou " .. qtde .. " dias "..nomePonto..".")	
		addPoints(nameDoPlayer,qtde)

	else
		doPlayerSendCancel(cid, "Você não tem dinheiro suficientes, " .. qtde .. ". "..qtde.." "..nomePonto.." custam "..preco*qtde.." gps.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		return true
end

 

 

Você já tem um sistema de "balance", ou seja, para que os player possam ver quantos pontos eles têm?

Abraço.

 

 

É a primeira função no script que eu lhe mandei.

Link para o post
Compartilhar em outros sites

A função de adicionar pontos deu certo?

 

Porque dependendo vou começar a função balance pelo modo errado.

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
2 horas atrás, Xagah disse:

A função de adicionar pontos deu certo?

 

Porque dependendo vou começar a função balance pelo modo errado.

A função de adicionar pontos já veio no system, e funciona sim.

Link para o post
Compartilhar em outros sites

Não... eu quis dizer com relação ao 'script' que te passei, velho. Ele funcionou?

 

A função de adicionar pontos eu presumi que funcionasse porque estava no seu 'script' e você havia dito que funcionava.

 

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
6 minutos atrás, Xagah disse:

Não... eu quis dizer com relação ao 'script' que te passei, velho. Ele funcionou?

 

A função de adicionar pontos eu presumi que funcionasse porque estava no seu 'script' e você havia dito que funcionava.

 

 

Me desculpe a ignorância.. mas onde eu devo colocar o script?

Link para o post
Compartilhar em outros sites

Então, cria um 'script' com qualquer nome (aqui usarei o 'addpointsplayer') e salve, com a extensão '.lua', na pasta: 

data > talkactions > scripts

Depois vá no talkactions.xml (na pasta 'data > talkactions') e insira a seguinte linha:

 

<talkaction log="yes" words="!addpoints" event="script" value="addpointsplayer.lua"/>

Salve tudo, entre no 'game' e, com um player normal use a frase:

 

!addpoints 10 

Veja se funciona.

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

Ops, desculpe a demora, estava no trabalho. De fato havia um erro na função.

 

Troque-a por:

function onSay(cid, words, param)
	
	--============== PARTE CONFIGURAVEL ====--------------------------		
		
	local preco = 100 -- valor de cada ponto em 'k', ou seja, em 1000gps. Ex.: 10 neste local diz que cada ponto custa 10.000 gps.
	local qtde = 1 -- Quantos pontos serão comprados com cada unidade de preço mostrada acima
	local money = getPlayerMoney(cid)
	local nameDoPlayer = getPlayerName(cid) -- não mude isto
	local nomePonto = "points" -- coloque aqui dentro o nome do ponto, isto aparecerá em todas as frases do script
		
	--============== NÃO MEXA DAQUI PARA BAIXO ====--------------------------	
	if(money >= preco*qtde*1000) then 
		doPlayerRemoveMoney(cid, preco.qtde)
		doSendMagicEffect(getThingPosition(cid), 13)
		doSendAnimatedText(getPlayerPosition(cid), ""..nomePonto.."", TEXTCOLOR_RED)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou " .. qtde .. " dias "..nomePonto..".")	
		addPoints(nameDoPlayer,qtde)
	else
		doPlayerSendCancel(cid, "Você não tem dinheiro suficientes, " .. qtde .. ". "..qtde.." "..nomePonto.." custam "..preco*qtde.." gps.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		return true
	end	
		
		
end

Agora vai.

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
31 minutos atrás, Xagah disse:

Ops, desculpe a demora, estava no trabalho. De fato havia um erro na função.

 

Troque-a por:


function onSay(cid, words, param)
	
	--============== PARTE CONFIGURAVEL ====--------------------------		
		
	local preco = 100 -- valor de cada ponto em 'k', ou seja, em 1000gps. Ex.: 10 neste local diz que cada ponto custa 10.000 gps.
	local qtde = 1 -- Quantos pontos serão comprados com cada unidade de preço mostrada acima
	local money = getPlayerMoney(cid)
	local nameDoPlayer = getPlayerName(cid) -- não mude isto
	local nomePonto = "points" -- coloque aqui dentro o nome do ponto, isto aparecerá em todas as frases do script
		
	--============== NÃO MEXA DAQUI PARA BAIXO ====--------------------------	
	if(money >= preco*qtde*1000) then 
		doPlayerRemoveMoney(cid, preco.qtde)
		doSendMagicEffect(getThingPosition(cid), 13)
		doSendAnimatedText(getPlayerPosition(cid), ""..nomePonto.."", TEXTCOLOR_RED)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou " .. qtde .. " dias "..nomePonto..".")	
		addPoints(nameDoPlayer,qtde)
	else
		doPlayerSendCancel(cid, "Você não tem dinheiro suficientes, " .. qtde .. ". "..qtde.." "..nomePonto.." custam "..preco*qtde.." gps.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		return true
	end	
		
		
end

Agora vai.

Opa, deu certo, muito obrigado amigo <3  REP+

Link para o post
Compartilhar em outros sites

Já coloca uma função balance para eles saberem quantos points tem.

 

Cria um arquivo chamado 'saldoPoints.lua' dentro da pasta 'data > talkactions > scripts' e coloca isto dentro:

function onSay(cid, words, param, channel)

	points = db.getResult("SELECT `name`, `points` FROM `players` WHERE `points` > -1 AND `id` > 6 AND `group_id` < 2 ORDER BY `points` DESC, `name` ASC;")
		
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Saldo atual: '.. query:getDataInt("points") ..' points.')
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Saldo atual: '.. query:getDataInt("points") ..' points.')
	doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)			
end

E, dentro do arquivo 'talkactions.xml' cole o seguinte:

<talkaction log="yes" words="!saldo" event="script" value="saldoPoints.lua"/>

Aí o 'player' escreve '!saldo' e vê quantos pontos tem. Aí eles não irão ficar te perguntando quantos pontos eles têm (não sei se já tinha esta função).

 

Ainda que tivesse função, é bom colocá-las em 'scripts' apartados pois eventuais mudanças terão suas chances de erro diminuídas.

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
Em 19/01/2016 19:49:00, Xagah disse:

Já coloca uma função balance para eles saberem quantos points tem.

 

Cria um arquivo chamado 'saldoPoints.lua' dentro da pasta 'data > talkactions > scripts' e coloca isto dentro:


function onSay(cid, words, param, channel)

	points = db.getResult("SELECT `name`, `points` FROM `players` WHERE `points` > -1 AND `id` > 6 AND `group_id` < 2 ORDER BY `points` DESC, `name` ASC;")
		
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Saldo atual: '.. query:getDataInt("points") ..' points.')
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Saldo atual: '.. query:getDataInt("points") ..' points.')
	doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)			
end

E, dentro do arquivo 'talkactions.xml' cole o seguinte:


<talkaction log="yes" words="!saldo" event="script" value="saldoPoints.lua"/>

Aí o 'player' escreve '!saldo' e vê quantos pontos tem. Aí eles não irão ficar te perguntando quantos pontos eles têm (não sei se já tinha esta função).

 

Ainda que tivesse função, é bom colocá-las em 'scripts' apartados pois eventuais mudanças terão suas chances de erro diminuídas.

Desculpe retornar ao post, mas queria dizer que apareceu um novo erro, e não foi relacionado ao Balance, mas sim ao proprio script de !addpoints que você me passou: 
Fui fazer um teste agora e...: 

Imagem 1 - Comprei 3 points, usando o comando !addpoints 
Imagem 2 - Após comprar os 3 points, tento dar "use" no bau, pra ganhar o respectivo item, porém diz que eu preciso ter 3 points.

Imagem 3 - Erro que apareceu na distro.

 

teste 1.jpg

teste 2.jpg

erro 3.jpg

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

O erro está dizendo que esta função, a 'addpoints' não está lançada dentro do arquivo '050 - function'.

 

Este arquivo é onde você pode 'criar' funções para serem utilizadas em todos os 'scripts' do server.

 

Quando olhei o 'script' que você me mostrou que a função era usada, por isto cheguei a pensar que já existia.

 

Faça alguns testes, use a função 'addpoints' e, logo na sequencia, confira na distro se houve erros. Se sim, o erro será, muito provavelmente na função que comentamos. Aí, para consertá-la coloque, dentro do arquivo 050 - function as seguintes funções:

function getPoints(cid)
	resp = db.getResult("SELECT `points` FROM `players` WHERE `name` =  "..getPlayerByName(cid)..."")
	if (resp:getID() ~= -1) then
		return resp:getDataInt("points")
	else
		return resp:getID()
	end
end

function addPoints(cid,name,value)
	db.executeQuery("UPDATE 'points' SET 'points' = ".. value .." WHERE `name` =  "..getPlayerByName(cid)..."")
end

Depois reinicie seu servidor e tente novamente.

 

Além disto, aproveitando o momento, olhe dentro da sua tabela 'players' se, de fato, existe alguma coluna chamada 'points' ou se ela está na tabela 'accounts'.

 

Fico no aguardo.

Olá, bom dia de novo. Conversei com vários amigos gringos e analisei o erro, o problema, de fato está nas versões anteriores ao TFS .3884.

 

Não vai ter jeito, ou você compila sem o erro (o que será complicado pois terá que saber onde está) ou, o que penso ser melhor, você utiliza a versão .3884.

 

Isto deveria ter ido para outro comentário!

 

Veja o que pensa aí.

 

Abraço.

Editado por Xagah (veja o histórico de edições)

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

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.

  • Conteúdo Similar

    • Por Bagon
      Bom, hoje venho trazer á vocês um sistema de Pet System DIFERENCIADO de alguns presentes no fórum. Este sistema tem diversos comandos diferenciados, como: 
       
      !pet nomedopet este comando irá sumonar o pet. 
      !remove irá remover o pet.
      !fale eu sou lindo o pet falará "eu sou lindo"
      !conversar o pet irá conversar com vc. 
       
      Então sem mais delongas vamos ao script.
       
      OBS: SCRIPT TESTADO SOMENTE EM TFS 0.4/0.3, e este script foi feito com a intenção de ser vendido no site do ot ou em poderá usar como quest usando o item selecionado como premio. fique ao seu critério.
       
      Primeiro vá até a pasta talkaction/script e crie um arquivo chamado petsystem.lua, depois coloque o seguinte script:
       
       
      Agora em talkactions/talkactions.xml adicione a seguinte tag:
       
      <talkaction words="!pet;!remove;!fale;!conversar" event="script" value="petsystem.lua" />  
      EXPLICAÇÂO:
      As partes em Negrito, são os pets. Você pode alterar ou criar monstros para fazer eles como pets. (Recomendo criar um monstro para que seja somente pet.)
       
      Exemplo: ["dog"]= {stor=78552},      
       
       
      Lembrando que é necessário mudar esta parte no script do monstro colocado a cima.
       
      <flag attackable="1" /> para :
       
      <flag attackable="0" />  
      agora vá em action/script e crie um arquivo chamado pet com o seguinte script:
       
       
      e vá em action.xml e adiciona a seguinte tag:
       
      <action itemid="10063" script="pet.lua"/> Explicação: Na tag da action o itemid é o item que deverá ser usado para ganhar a storage 78552, e assim podera sumonar o monstro com esta storage.
       
                                              
                                                         CRIE UMA ACTION COM A TAG A CIMA PARA CADA MONSTRO COLOCADO NA TALKACTION,
                                                         BASTA VC ALTERAR A STORAGE DO SCRIPT DA ACTION
                                                         EXEMPLO: em action altere as storage que estão em vermelho, como mostra abaixo
       
                                                              if getPlayerStorageValue(cid, 78552) < 1 then
                                                              setPlayerStorageValue(cid, 78552, 1)
       
                                                         aonde tem 78552 altere para 78553 que no caso é a storage do cyclops escolhido lá no script da talkaction
                                                         e assim susecivelmente.
       
       
       
      CREDITOS:
      Mulizeu
      Smartbox
      Bagon 
       
    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo