Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Adaptou o que nela? Não informou nada de mais. Para mim, não li os dois scripts, mas, parece que apenas a indentação mudou, dê mais detalhes.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Boa noite @Snowsz. O Script do nosso amigo @Apocalypse está funcionando bem em TFS anteriores ao 0.4. Se notar os devidos comentários no tópico dele, verá todos reclamarem de não funcionar adequadamente em TFS 0.4. Como gosto muito do script, eu pesquisei e modifiquei o script para funcionar nessa nova versão do 8.6. - A diferença é apenas na função "isSummon", que não era reconhecida e dentro da função "onStarChange" que precisava de algumas coisas. Apenas isso. Caso queira testar, fique a vontade. Estou a utilizar ele aqui. :wink:

 

Se quiser eu ponho o tutorial de instalação no próprio tópico. Só não o fiz porque achei melhor todos conhecerem o tópico do Apocalypse, já que ele merece o maior crédito por ter compartilhado.

 

Abraços!

cms1-pr%C3%AAmio.png

Link para o post
Compartilhar em outros sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites
  • 5 months later...
  • 4 years later...
14 horas atrás, Yurotsz disse:

como faz para coloca as exp subi no char quando esta em party shared esta aparecendo em escrito vermelho pode ajuda ??

 

Você pode tentar assim.

 

-- CONFIGURAÇÕES DE EXPERIENCIA --

useStages = false -- Usar sistema de Stages , true/false
premiumMultipliqueExp = 2 -- Players Premiums terão exp multiplicada, caso não querer deixe 1.
rateExp = 300 -- Exp caso não for usar stages.


local stages = { -- ["DELEVEL-ATELEVEL"] = EXP, (OBS: NUNCA  REPETIR O MSM NUMERO, SEMPRE COLOCAR UM A MAIS.)
	["1-50"] = 300,
	["51-100"] = 250,
	["101-150"] = 200,
	["151-200"] = 150,
	["201-250"] = 100,
	["251-300"] = 50,
	["351-400"] = 25,
}
ultimateExp = 15 -- exp que vai usar caso o level do player não tiver mais na tabela .

-- CONFIGURAÇÕES DA PARTY

partyPorcent = 40 -- Quantos Porcento da exp vai para os membros da party
levelBlockParty = 1000 -- Diferença Maxima de Level permitida para membro da party ganhar exp.
expShareRadiusX = 30 -- Distancia maxima permitida no eixo X para membro da party ganhar exp.
expShareRadiusY = 30 -- Distancia maxima permitida no eixo Y para membro da party ganhar exp.
expShareRadiusZ = 1 -- Distancia maxima permitida no eixo Z para membro da party ganhar exp.

-- CONFIGURAÇÕES DE RINGS --

local rings = { -- [ID DO ANEL] = EXP MULTIPLICADA POR X EXP.
	[3048] = 2,
	[3049] = 4,
	[3050] = 6,
}

-- FIM DAS CONFIGURAÇÕES --


function CalculeExp(monsterhp, exptotal, hit)
	hit = hit <= monsterhp and math.ceil(exptotal * hit / monsterhp) or 0
	return hit < 0 and 0 or hit
end

function isSummon(cid)
return getCreatureMaster(cid)
end

function onStatsChange(cid, attacker, type, combat, value)
	if isPlayer(attacker) and isMonster(cid) then
		if getCreatureStorage(cid, 50001) ~= 1 then
			doCreatureSetStorage(cid, 50002, getMonsterInfo(getCreatureName(cid)).experience * rateExp)
			doCreatureSetStorage(cid, 50001, 1)
		end
	end
	if type == STATSCHANGE_HEALTHLOSS then
		if isMonster(cid) then
			if isCreature(attacker) then
				local _cid = isSummon(attacker) and getCreatureMaster(attacker) or attacker
				if isPlayer(_cid) then
					if useStages then
						for strstage, experience in pairs(stages) do
							tabstage = string.explode(strstage, "-")
							if getPlayerLevel(_cid) >= tonumber(tabstage[1]) and getPlayerLevel(_cid) <= tonumber(tabstage[2]) then
								ultimateExp = experience
							end
						end
						experienceRate = ultimateExp
					else
						experienceRate = rateExp
					end
					local expgain = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * experienceRate, value)
					if getCreatureStorage(cid, 50002) > 0 then
						if getCreatureStorage(cid, 50002) - expgain < 0 then
							expgain = getCreatureStorage(cid, 50002)
						end
						doCreatureSetStorage(cid, 50002, getCreatureStorage(cid, 50002) - expgain)
						local ringexp = 1
						for idring, expring in pairs(rings) do
							if getPlayerSlotItem(_cid, 9).itemid == idring then
								ringexp = expring
								break
							end
						end
						local premiumMultipliqueExp = isPremium(_cid) and premiumMultipliqueExp or 1
						expgain = expgain * ringexp * premiumMultipliqueExp
						local party = false
						if isInParty(_cid) then
							local partyMembers, expParty = getPartyMembers(getPartyLeader(_cid)), expgain / 100 * partyPorcent
							for indice, partyMember in pairs(partyMembers) do
								attackerLevel, partyLevel = getPlayerLevel(_cid), getPlayerLevel(partyMember)
								attackerPos, partyPos = getThingPos(_cid), getThingPos(partyMember)
								x = false
								if math.abs(attackerLevel - partyLevel) > levelBlockParty then
									x = true
								elseif math.abs(attackerPos.x - partyPos.x) > expShareRadiusX then
									x = true
								elseif math.abs(attackerPos.y - partyPos.y) > expShareRadiusY then
									x = true
								elseif attackerPos.z ~= partyPos.z then
									x = true
								elseif _cid == partyMember then
									x = true
								end
								if x then
									partyMembers[indice] = nil
								end
							end
							if #partyMembers ~= 0 then
								expParty = math.ceil(expgain / 100 * partyPorcent)
								expmember = math.ceil(expParty / #partyMembers)
								for _, member in pairs(partyMembers) do
									if member ~= _cid then
										doPlayerSendTextMessage(member, 12, "You received "..expmember.." party exp.")
										doSendAnimatedText(member, expmember, 215)
										doPlayerAddExp(member, expmember)
									end
								end
								doPlayerSendTextMessage(_cid, 12, "You gain "..expgain.." exp. (" ..partyPorcent.."% send to party)")
								doSendAnimatedText(_cid, expgain - expParty, 215)
								doPlayerAddExp(_cid, expgain - expParty)
								party = true
							else
								party = false
							end
						end
						if not party then
							doPlayerAddExp(_cid, expgain)
							doSendAnimatedText(getThingPos(_cid), expgain, 215)
						end
					end
				end
			end
		end
	end
	return true
end

function onCombat(cid, target)
	if isMonster(target) and not isSummon(target) and not isPlayer(target) then
		registerCreatureEvent(target, "ExpGain")
	end
	return true
end

 

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

cms1-pr%C3%AAmio.png

Link para o post
Compartilhar em outros sites

esta dando esse problema

 

 [23:17:28.460] [Error - CreatureScript Interface]
[23:17:28.465] data/creaturescripts/scripts/exphit.lua:onStatsChange
[23:17:28.467] Description:
[23:17:28.471] attempt to index a number value
[23:17:28.473] stack traceback:
[23:17:28.476]  [C]: in function 'doSendAnimatedText'
[23:17:28.478]  data/creaturescripts/scripts/exphit.lua:113: in function <data/creaturescripts/scripts/exphit.lua:47>

Link para o post
Compartilhar em outros sites
Em 25/01/2021 em 23:18, Yurotsz disse:

esta dando esse problema

 

 [23:17:28.460] [Error - CreatureScript Interface]
[23:17:28.465] data/creaturescripts/scripts/exphit.lua:onStatsChange
[23:17:28.467] Description:
[23:17:28.471] attempt to index a number value
[23:17:28.473] stack traceback:
[23:17:28.476]  [C]: in function 'doSendAnimatedText'
[23:17:28.478]  data/creaturescripts/scripts/exphit.lua:113: in function <data/creaturescripts/scripts/exphit.lua:47>

 

Pois na linha 113 onde está ocorrendo o erro, troque o:

doSendAnimatedText(member, expmember, 215)

por:

doSendAnimatedText(getCreaturePosition(member), expmember, 215)

E veja se resolve.

cms1-pr%C3%AAmio.png

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 30/01/2021 em 18:40, Frenesy disse:

 

Pois na linha 113 onde está ocorrendo o erro, troque o:


doSendAnimatedText(member, expmember, 215)

por:


doSendAnimatedText(getCreaturePosition(member), expmember, 215)

E veja se resolve.

Valeu funciono agora so como que faço pra pode pega a exp no final quando o bixo morre

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

Valeu funciono agora so como que faço pra pode pega a exp no final quando o bixo morre

Se é isso que você quer, então está usando o sistema errado. Isso aqui é EXP POR HIT. Então a cada hit você ganha exp.

cms1-pr%C3%AAmio.png

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 2 years later...

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 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.
    • Por Naze
      Uns dos problemas das maiorias dos otserv casual que estão online é o autoloot, alguns com erros e defeito na checagem dos containers e sempre consumindo muito por ser em lua fazendo checagens de tile, corpo, itens e etc. Por isso decidi da uma contribuição a essa comunidade que me evoluiu bastante um autoloot diretamente na source na função que insere os itens no corpo, otimizando em 100% na hr da entrega do item, e não tendo problemas ocasionais como corpos sobre corpos ou varias bags.
       
           Esse sistema já é bem comum quando comprado, mas gratuito acredito que ainda não tinha disponível, então fiz esse totalmente do 0 na source tfs 0.4 rev 3999 (do yan).
          
          Atenção na instalação! Qualquer problema pra compilar que envolva as linhas presente no código verifique novamente se instalou corretamente antes de pedir ajuda para evitar flood. Qualquer bug, erro ou mal funcionamento encontrado pode postar que estarei corrigindo, mas não irei customizar a seu agrado, você consegue fazer isso sozinho com atenção e calma, e se precisa de ajuda é só posta as duvidas.
       
      Imagens do Sistema:
       
      Características: 
      -> Otimizado executando apenas funções necessarias -> Comandos simples e praticos -> !autoloot on/off //Autoloot estara sempre ligado, e caso queria desliga use '!autoloot off' -> !autoloot bank/bag //Define para onde ira o dinheiro coletado, direto banco ou no inventario -> !autoloot list //Lista todos itens adicionados para coleta -> !autoloot clear/clean //Remove todos itens da lista -> !autoloot add, name item, name item, ... //Adiciona itens na lista, podendo adicionar quantos quiser de uma vez. Ele retorna um messagem dizendo os itens que foram adicionados e os que deram erro e não foram adicionados, talvez por escrito errado, ja existente na lista, na lista de bloquados, etc. -> !autoloot remove, item name, item name, ... //Remove itens da lista, com a mesma logica do add. -> Opções configuravel pelo Config.lua -> AutoLoot_MoneyIDs //IDs dos Itens Moedas do servidor como gold coins, platinium coins, crystal coins. -> AutoLoot_BlockIDs //IDs dos itens bloqueados para autoloot -> AutoLoot_MaxItem //Quantidade maxima de itens para adicionar a lista -> Sistema livres de bugs ou logs de erros.  
      Instalação:
      Toda instalação será feita na source, exceto por 1 linha em talkactions.xml e 3 variáveis no config.lua
       
      TFS 0.4 :
       
      Link para Otx -> https://tibiaking.com/forums/topic/101086-otimizado-autoloot-in-sources-for-otx2-ou-menor/
       
      Nas versões atual da TFS para servidores 10+ não ira funcionar pois algumas funções são diferente e não irei corrigir agora, em breve passo o mesmo pra tfs 1.x e otx3.
       
      Esse sistema foi totalmente feito por mim, mas dou créditos também ao @Mathias Kenfi por me ajudar muito na evolução em lua/c++ e a tabela sql é a mesma usada no quick autoloot 1.3 postado por Pedriinz
       
      @Edit: 
      Quem usa source de derivados caso ocorra erro aplica as alterações dos comentários abaixo.
      Pequena correção em talkactions.cpp na parte remove na linha if(!player->checkAutoLoot(itemId)), para if(player->checkAutoLoot(itemId))
    • Por Sekk
      Bom galera, direto ao assunto, segui um tópico no OTLand(aqui) para adicionar o evento Zombie Event no meu server.
       
      Tudo certo até os players entrarem no mapa do zombie, mas ai começa uns bugs no console:
       
       
      Ai vai o meu lib/zombie_event.lua
        globalevents/scripts/zombie/onthink.lua  
        POR FAVOR, ME AJUDEM!! Quero muito esse evento, e nenhum outro na internet funcionou comigo... NENHUM!
    • Por Sekk
      Bom galera,  no meu server, tem a talkaction !promotion, que ao usar, o player é promovido, como exemplo: o paladin usa o comando, ai ele vira royal paladin entendeu?
       
      Então, eu testei vários scripts de promotion, mas nenhum funciona devidamente no server, ele chegam a promover o player, mas se o mesmo deslogar ou ser morto, ele perde o promotion...
       
      Ja teste vários scripts, e o meu atural script é:
       
       
      O que pode ocasionar o problema? Ele simplesmente não salva a vocation nova do player.. ME AJUDEM POR FAVOR!!
       
      USO TFS 0.4
    • Por Sekk
      Bom galera, ta aparecendo essa DROGA DE ERRO no meu distro:
       
       
      Me ajudem POR FAVOR!   Ai vai meu actions/scripts/other/doors.lua  
      ME AJUDEM POR FAVOR, MEU DEUS!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo