Ir para conteúdo
  • Cadastre-se

(Resolvido)Comando !Rebattle


Ir para solução Resolvido por Orochi Elf,

Posts Recomendados

Ola gostaria de pedir q alguém criase um comando q quando o player fala !rebattle o player perde o battle  custando 5 gb

tem como fazer vlw

 

REP  ++

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

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites
um comando q quando o player fala !rebattle o player perde o battle custando 5 gb

rebattle.lua (data/talkactions/scripts):

local price = 50000 -- 50k/5cc/5gb

function onSay(cid, words, param, channel)
	if getCreatureCondition(cid, CONDITION_INFIGHT) then
		if doPlayerRemoveMoney(cid, price) == true then
			doRemoveCondition(cid, CONDITION_INFIGHT)
		else
			doPlayerSendCancel(cid, "You don't have enough money to remove your battle.")
		end
	else
		doPlayerSendCancel(cid, "You are not in battle.")
	end
	
	return true
end

Tag - talkactions.xml (data/talkactions):

<talkaction words="!rebattle" event="script" value="rebattle.lua"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

rebattle.lua (data/talkactions/scripts):

local price = 50000 -- 50k/5cc/5gb

function onSay(cid, words, param, channel)
	if isPlayerPzLocked(cid) then
		if doPlayerRemoveMoney(cid, price) == true then
			doRemoveCondition(cid, CONDITION_INFIGHT)
		else
			doPlayerSendCancel(cid, "You need "..price.." gold bars to remove your battle.")
		end
	else
		doPlayerSendCancel(cid, "You are not in battle.")
	end
	
	return true
end

Tag - talkactions.xml (data/talkactions):

<talkaction words="!rebattle" event="script" value="rebattle.lua"/>

Isso não faria com que dissesse "You need 50000 gold bars to remove your battle."? Acho que daria para fazer algo assim: "You need "..price-49995.." gold bars to remove your battle.", problema seria se ele trocasse o valor depois.

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites
Isso não faria com que dissesse "You need 50000 gold bars to remove your battle."? Acho que daria para fazer algo assim: "You need "..price-49995.." gold bars to remove your battle.", problema seria se ele trocasse o valor depois.

É, faria. Fiz isso rápido e nem me incomodei com a questão, até porque não é nada significativa, apenas um detalhe interpretativo.

Da pra adaptar de outra forma, no entanto, vai estender um pouco mais o script, não precisando de uma equação pra dar o resultado e com uma verificação desnecessária (na minha opinião).

Mas, tudo bem:

local price = 5 -- quantidade em crystal coins (gold bars, no caso)

function onSay(cid, words, param, channel)
    if getTilePzInfo(getThingPos(cid)) then
        if isPlayerPzLocked(cid) then
            if doPlayerRemoveMoney(cid, price * 10000) then
                doRemoveCondition(cid, CONDITION_INFIGHT)
            else
                doPlayerSendCancel(cid, "You need "..price.." gold bars to remove your battle.")
            end
        else
            doPlayerSendCancel(cid, "You are not in battle.")
        end
    else
        doPlayerSendCancel(cid, "You can only remove your battle in a protection zone.")
    end
    
    return true
end

PS: desse modo, a talkaction só vai reconhecer que o player tem dinheiro se tiver a determinada quantidade em gold bars (ID 2160), somente em gold bars.

Corrigi uma função do script que eu havia confundido antes, li o pedido errado.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

É, faria. Fiz isso rápido e nem me incomodei com a questão, até porque não é nada significativa, apenas um detalhe interpretativo.

Da pra adaptar de outra forma, no entanto, vai estender um pouco mais o script, não precisando de uma equação pra dar o resultado e com uma verificação desnecessária (na minha opinião).

Mas, tudo bem:

local price = {2160, 5} -- {GoldBarID, count}

function onSay(cid, words, param, channel)
	if isPlayerPzLocked(cid) then
		if getPlayerItemCount(cid, price[1]) >= price[2] then
			doPlayerRemoveItem(cid, price[1], price[2])
			doRemoveCondition(cid, CONDITION_INFIGHT)
		else
			doPlayerSendCancel(cid, "You need "..price[2].." "..getItemNameById(price[1]).." to remove your battle.")
		end
	else
		doPlayerSendCancel(cid, "You are not in battle.")
	end
	
	return true
end

PS: desse modo, a talkaction só vai reconhecer que o player tem dinheiro se tiver a determinada quantidade em gold bars (ID 2160), somente em gold bars.

 

Ou só troca de "You need 50000 gold bars to remove your battle." para "You need 50000 gold coins to remove your battle.". Mas tudo bem, não foi por isso que respondi, Suicide já que você está online me ajude em uma questão que pode mudar o rumo do universo? É só clicar aqui.

 

Editado

PS: Não é pornografia, aquela mulher gritando, site do Nyan Cat ou qualquer tipo de zoação. É só um link para um tópico aqui do fórum criado por mim que pode ou não(depende de você) mudar o rumo do universo e impedir de Hitler reviver.

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

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites
Ou só troca de "You need 50000 gold bars to remove your battle." para "You need 50000 gold coins to remove your battle.". Mas tudo bem

Como ele citou que precisa remover certa quantidade em gold bars, provavelmente o servidor dele não deve usar gold coins e sim dollars. Além de que desse modo também precisaria configurar tanto o valor quanto a mensagem, então eu simplifiquei tudo com alguns valores e funções.

 

 

me ajude em uma questão que pode mudar o rumo do universo? É só clicar aqui.

Acho que isso não convém com o tópico, mas beleza. Vou ver sim.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
local price = 5 -- quantidade em crystal coins (gold bars, no caso)

function onSay(cid, words, param, channel)
    if getTilePzInfo(getThingPos(cid)) then
        if isPlayerPzLocked(cid) then
            if doPlayerRemoveMoney(cid, price * 10000) then
                doRemoveCondition(cid, CONDITION_INFIGHT)
            else
                doPlayerSendCancel(cid, "You need "..price.." gold bars to remove your battle.")
            end
        else
            doPlayerSendCancel(cid, "You are not in battle.")
        end
    else
        doPlayerSendCancel(cid, "You can only remove your battle in a protection zone.")
    end
    
    return true
end
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Man agora ele não remove o battle.Tipo não tem com remover o battle nem dentro nem fora de PZ

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

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites

Certo. Tente agora, refiz o script.


não tem com remover o battle nem dentro nem fora de PZ

Você pediu pra usar a talkaction somente estando dentro de uma protection zone, então está certo.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

ss mas quando eu escrevo !rebattle dentro de área PZ ele n remove e aparece a msm falando que só pode usar dentro de pz se eu estou dentro de pz

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites

Ops, falha minha. Confundi o que li e fiz errado.
Agora deve dar:

local price = 5 -- quantidade em crystal coins (gold bars, no caso)

function onSay(cid, words, param, channel)
	if getTilePzInfo(getThingPos(cid)) then
		if isPlayerPzLocked(cid) then
			if doPlayerRemoveMoney(cid, price * 10000) then
				doRemoveCondition(cid, CONDITION_INFIGHT)
			else
				doPlayerSendCancel(cid, "You need "..price.." gold bars to remove your battle.")
			end
		else
			doPlayerSendCancel(cid, "You are not in battle.")
		end
	else
		doPlayerSendCancel(cid, "You can only remove your battle in a protection zone.")
	end
	
	return true
end
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Man acontecendo a mesma coisa não tem como usar dentro nem fora de PZ quando eu uso o comando dentro ou fora de Pz aperce isso You are not in battle. Tenta arrumar pfv é urgente e só pra falar é versão 8.54 

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

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites
acontecendo a mesma coisa não tem como usar dentro nem fora de PZ quando eu uso o comando dentro ou fora de Pz aperce isso You are not in battle.

Ué, não vejo erros na formulação do script. Por acaso a protection zone do seu servidor já não remove o battle do player automaticamente e você não percebeu?

De qualquer forma, tente com essa estrutura:

local price = 5 -- quantidade em crystal coins (gold bars, no caso)

function onSay(cid, words, param, channel)
	if not getTilePzInfo(getThingPos(cid)) then
		return doPlayerSendCancel(cid, "You can only remove your battle in a protection zone.")
	end
	
		if not isPlayerPzLocked(cid) then
			return doPlayerSendCancel(cid, "You are not in battle.")
		end
		
	if not doPlayerRemoveMoney(cid, price * 10000) then
		return doPlayerSendCancel(cid, "You need "..price.." gold bars to remove your battle.")
	end
			
	doRemoveCondition(cid, CONDITION_INFIGHT)
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED)
	return true
end

E você não prefere que a protection zone remova automaticamente o battle do player assim que ele fique sobre ela?

Posso fazer o script, se preferir.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

battleonpz.lua (data/creaturescripts/scripts):

function onThink(cid)
	if getTilePzInfo(getThingPos(cid)) then
		doRemoveCondition(cid, CONDITION_INFIGHT)
	end
	return true
end




Adicione o registro do creature event em login.lua (data/creaturescripts/scripts):

registerCreatureEvent(cid, "BattleOnPz")



 

Tag - creaturescripts.xml (data/creaturescripts):

<event type="think" name="BattleOnPz" event="script" value="battleonpz.lua"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

como funciona pfv


 a intendi desculpe


mas vc consegue ainda resolver o !rebattle ?

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites

Esse aqui ta pegando suave aqui testei e pa ;D 

local price = 5

function onSay(cid, words, param, channel)
	if getTilePzInfo(getCreaturePosition(cid)) then
		if isPlayerPzLocked(cid) then
			if doPlayerRemoveMoney(cid, price * 10000) then
				doRemoveCondition(cid, CONDITION_INFIGHT)
			else
				doPlayerSendCancel(cid, "You need "..price.." gold bars to remove your battle.")
			end
		else
			doPlayerSendCancel(cid, "You are not in battle.")
		end
	else
		doPlayerSendCancel(cid, "You can only remove your battle in a protection zone.")
	end
	
	return true
end
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