Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] Script de que troca vocação


Ir para solução Resolvido por egyptPOWER,

Posts Recomendados

Tfs 0.4

Boa noite, estou precisando de um script onde um Royal Paladin [id = 3] usa um item (2361) muda a vocação dele para Hell Shooter, [id = 7] porém só poderá usar no maximo level 8 e não pode ser usado por outra vocação, cada vocação terá seu item.

 

Por Favor ajudem :/  estou muito tempo atras desse script

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

@Kyllini Teste o script e posta o feedback ai! Abraço!

 

Crie um arquivo lua dentro da sua pasta actions/scripts e cole este código.

 

promoteitem.lua

-- Created by egyptPOWER --

function onUse(cid, item, fromPosition, itemEx, toPosition)

	if (getPlayerLevel(cid) <= 8) then 
		if (getPlayerVocation(cid) >= 5 and getPlayerVocation(cid) <=8) then 
				doRemoveItem(item.uid, 1)
				doPlayerSetVocation(cid, getPlayerVocation(cid)+4) 
				doPlayerSendTextMessage(cid, 20, "You are promoted to ".. getPlayerVocationName(cid) .."!") 
		else doPlayerSendTextMessage(cid, 20, "You don\'t have first promotion or you already promoted") 
		end 
	else doPlayerSendTextMessage(cid, 20, "You don\'t have level to do it.") 
	end 
	
end 
 

 

Agora vá em sua actions.xml e adicione a seguinte linha:

 

<action itemid="ID ITEM" event="script" value="promoteitem.lua"/>

Em itemid="Coloque aqui o id do seu item"

 

 

 

No signature.

 

 

 

Link para o post
Compartilhar em outros sites
28 minutos atrás, egyptPOWER disse:

-- Created by egyptPOWER -- function onUse(cid, item, fromPosition, itemEx, toPosition) if (getPlayerLevel(cid) <= 8) then if (getPlayerVocation(cid) >= 5 and getPlayerVocation(cid) <=8) then doRemoveItem(item.uid, 1) doPlayerSetVocation(cid, getPlayerVocation(cid)+4) doPlayerSendTextMessage(cid, 20, "You are promoted to ".. getPlayerVocationName(cid) .."!") else doPlayerSendTextMessage(cid, 20, "You don\'t have first promotion or you already promoted") end else doPlayerSendTextMessage(cid, 20, "You don\'t have level to do it.") end end

Opa, valeu pela iniciativa XD, testei aqui mas não entendi muito bem que funciona..., testei ela com as quatro vocações [Master Sorcerer, Elder Druid, Royal Paladin e Elite Knight] todas falavam que eu ja tinha a promotion ou que eu já estava com a promotion. Mas não deu nenhum erro na Distro ... 

Link para o post
Compartilhar em outros sites
Citar

<?xml version="1.0" encoding="UTF-8"?>
<vocations>
    <vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="1" manamultiplier="4.0" attackspeed="500" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no">
        <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
        <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
    </vocation>
    <vocation id="1" name="Master Sorcerer" description="a master sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="3" gainhpamount="225" gainmanaticks="2" gainmanaamount="325" manamultiplier="1.2" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="1">
        <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
        <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
    </vocation>
    <vocation id="2" name="Elder Druid" description="a elder druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="3" gainhpamount="225" gainmanaticks="2" gainmanaamount="325" manamultiplier="1.2" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="2">
        <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
        <skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/>
    </vocation>
    <vocation id="3" name="Royal Paladin" description="a  royal paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="275" gainmanaticks="3" gainmanaamount="275" manamultiplier="1.4" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="3">
        <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
        <skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>
    </vocation>
    <vocation id="4" name="Elite Knight" description="a elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="375" gainmanaticks="3" gainmanaamount="225" manamultiplier="3.0" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="4">
        <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
        <skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>
    </vocation>
        <vocation id="5" name="Demons Wizard " description="an demon wizard" gaincap="15" gainhp="7" gainmana="45" gainhpticks="2" gainhpamount="200" gainmanaticks="2" gainmanaamount="200" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="1">
    <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
    <skill id="0" multiplier="1.3"/>
    <skill id="1" multiplier="1.6"/>
    <skill id="2" multiplier="1.6"/>
    <skill id="3" multiplier="1.6"/>
    <skill id="4" multiplier="1.6"/>
    <skill id="5" multiplier="1.3"/>
    <skill id="6" multiplier="1.1"/>
    </vocation>
    <vocation id="6" name="Nature Healer" description="a nature healer" gaincap="15" gainhp="7" gainmana="45" gainhpticks="2" gainhpamount="200" gainmanaticks="2" gainmanaamount="200" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="2">
    <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
    <skill id="0" multiplier="1.3"/>
    <skill id="1" multiplier="1.6"/>
    <skill id="2" multiplier="1.6"/>
    <skill id="3" multiplier="1.6"/>
    <skill id="4" multiplier="1.6"/>
    <skill id="5" multiplier="1.3"/>
    <skill id="6" multiplier="1.1"/>
    </vocation>
    <vocation id="7" name="Hell Shooter" description="a hell shooter" gaincap="30" gainhp="15" gainmana="22" gainhpticks="2" gainhpamount="200" gainmanaticks="2" gainmanaamount="200" manamultiplier="1.2" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="3">
    <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
    <skill id="0" multiplier="1.1"/>
    <skill id="1" multiplier="1.2"/>
    <skill id="2" multiplier="1.2"/>
    <skill id="3" multiplier="1.2"/>
    <skill id="4" multiplier="1.1"/>
    <skill id="5" multiplier="1.1"/>
    <skill id="6" multiplier="1.1"/>
    </vocation>
    <vocation id="8" name="Undead Gladiator" description="an undead gladiator" gaincap="37" gainhp="22" gainmana="7" gainhpticks="2" gainhpamount="200" gainmanaticks="2" gainmanaamount="200" manamultiplier="2.8" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="4">
    <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
    <skill id="0" multiplier="1.1"/>
    <skill id="1" multiplier="1.1"/>
    <skill id="2" multiplier="1.1"/>
    <skill id="3" multiplier="1.1"/>
    <skill id="4" multiplier="1.4"/>
    <skill id="5" multiplier="1.1"/>
    <skill id="6" multiplier="1.1"/>
    </vocation>
    </vocations>
 

@egyptPOWER

Editado por Kyllini (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
-- Created by egyptPOWER --

function onUse(cid, item, fromPosition, itemEx, toPosition)

	if (getPlayerLevel(cid) <= 8) then 
		if (getPlayerVocation(cid) >= 1 and getPlayerVocation(cid) <=4) then 
			doRemoveItem(item.uid, 1)
			doPlayerSetVocation(cid, getPlayerVocation(cid)+4) 
			doPlayerSendTextMessage(cid, 20, "You are promoted to ".. getPlayerVocationName(cid) .."!") 
		else 
			doPlayerSendTextMessage(cid, 20, "You already promoted") 
		end 
	else doPlayerSendTextMessage(cid, 20, "You don\'t have level to do it.") 
	end 
	
end 
 

 

Pode testar que agora vai funcionar!

Editado por egyptPOWER (veja o histórico de edições)
No signature.

 

 

 

Link para o post
Compartilhar em outros sites
-- Created by egyptPOWER --

function onUse(cid, item, fromPosition, itemEx, toPosition)

	if (getPlayerLevel(cid) <= 8) then 
		if (getPlayerVocation(cid) >= 1 and getPlayerVocation(cid) <=4) then 
			doRemoveItem(item.uid, 1)
			doPlayerSetPromotionLevel(cid, getPlayerVocation(cid)+4)
			doSendMagicEffect(getPlayerPosition(cid),10)		
			doPlayerSay(cid, "You are promoted to ".. getPlayerVocationName(cid) .."!", TALKTYPE_MONSTER_SAY) 
		else 
			doPlayerSay(cid, "You already promoted.", TALKTYPE_MONSTER_SAY) 
		end 
	else 
		doPlayerSay(cid, "You don\'t have level to do it.", TALKTYPE_MONSTER_SAY) 
	return false
	
	end 
	
	return true
end 
 

Agora vai! Dei uma incrementada. Testei aqui e funcionou 100%

Editado por egyptPOWER (veja o histórico de edições)
No signature.

 

 

 

Link para o post
Compartilhar em outros sites

@egyptPOWER isso !! é que a "quest" que estou fazendo existe 4 portas e cada porta vai com a vocação dele ... pq se uma pessoa fazer a quest como "druid" e criar char "knight" funciona ... agora se eu fazer isso de 4 items .. ele vai ter que fazer o druid dele novamente ... caso queira trocar .. terá que trocar entre os players

Link para o post
Compartilhar em outros sites
  • Solução

Não tive tempo de testar. Veja ai se funfa

promoteitems.lua

-- Created by egyptPOWER --

function onUse(cid, item, fromPosition, itemEx, toPosition)

local item1 = ID ITEM SORC
local item2 = ID ITEM DRUID
local item3 = ID ITEM PALADIN
local item4 = ID ITEM KNIGHT


-- CONFIG MS
	if (getPlayerLevel(cid) == 8) then
		if (getPlayerVocation(cid) == 1 and item.itemid == item1) then
			doRemoveItem(item.uid, 1)
			doPlayerSetPromotionLevel(cid, getPlayerVocation(cid)+4)
			doPlayerSay(cid, "You are promoted to ".. getPlayerVocationName(cid) .."!", TALKTYPE_MONSTER_SAY) 
			doSendMagicEffect(getPlayerPosition(cid),10)
		else 
			doPlayerSay(cid, "To use it, you need be a  master sorcerer.", TALKTYPE_MONSTER_SAY)
		end
	else 
		doPlayerSay(cid, "You need level 8 to do it!", TALKTYPE_MONSTER_SAY)
	end

-- CONFIG ED	
	if (getPlayerLevel(cid) == 8) then
		if (getPlayerVocation(cid) == 2 and item.itemid == item2) then
			doRemoveItem(item.uid, 1)
			doPlayerSetPromotionLevel(cid, getPlayerVocation(cid)+4)
			doPlayerSay(cid, "You are promoted to ".. getPlayerVocationName(cid) .."!", TALKTYPE_MONSTER_SAY) 
			doSendMagicEffect(getPlayerPosition(cid),10)
		else 
			doPlayerSay(cid, "To use it, you need be a  elder druid.", TALKTYPE_MONSTER_SAY)
		end
	else 
		doPlayerSay(cid, "You need level 8 to do it!", TALKTYPE_MONSTER_SAY)
	end

-- CONFIG RP	
	if (getPlayerLevel(cid) == 8) then
		if (getPlayerVocation(cid) == 3 and item.itemid == item3) then
			doRemoveItem(item.uid, 1)
			doPlayerSetPromotionLevel(cid, getPlayerVocation(cid)+4)
			doPlayerSay(cid, "You are promoted to ".. getPlayerVocationName(cid) .."!", TALKTYPE_MONSTER_SAY) 
			doSendMagicEffect(getPlayerPosition(cid),10)
		else 
			doPlayerSay(cid, "To use it, you need be a  royal paladin.", TALKTYPE_MONSTER_SAY)
		end
	else 
		doPlayerSay(cid, "You need level 8 to do it!", TALKTYPE_MONSTER_SAY)
	end

-- CONFIG EK
	if (getPlayerLevel(cid) == 8) then
		if (getPlayerVocation(cid) == 4 and item.itemid == item4) then
			doRemoveItem(item.uid, 1)
			doPlayerSetPromotionLevel(cid, getPlayerVocation(cid)+4)
			doPlayerSay(cid, "You are promoted to ".. getPlayerVocationName(cid) .."!", TALKTYPE_MONSTER_SAY) 
			doSendMagicEffect(getPlayerPosition(cid),10)
		else 
			doPlayerSay(cid, "To use it, you need be a  elite knight.", TALKTYPE_MONSTER_SAY)
		end
	else 
		doPlayerSay(cid, "You need level 8 to do it!", TALKTYPE_MONSTER_SAY)
	end
	
	return true
end 
 

 

action.xml

 

<action itemid="ID ITEM MS" event="script" value="promoteitem.lua"/>
<action itemid="ID ITEM ED" event="script" value="promoteitem.lua"/>
<action itemid="ID ITEM RP" event="script" value="promoteitem.lua"/>
<action itemid="ID ITEM EK" event="script" value="promoteitem.lua"/>

 

Editado por egyptPOWER (veja o histórico de edições)
No signature.

 

 

 

Link para o post
Compartilhar em outros sites

@egyptPOWER Deu uns erro aqui

Citar

[12/2/2018 15:15:12] [Error - LuaInterface::loadFile] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'
[12/2/2018 15:15:12] [Error - Event::checkScript] Cannot load script (data/actions/scripts/promoteitem.lua)
[12/2/2018 15:15:12] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'
[12/2/2018 15:15:12] [Error - LuaInterface::loadFile] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'
[12/2/2018 15:15:12] [Error - Event::checkScript] Cannot load script (data/actions/scripts/promoteitem.lua)
[12/2/2018 15:15:12] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'
[12/2/2018 15:15:12] [Error - LuaInterface::loadFile] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'
[12/2/2018 15:15:12] [Error - Event::checkScript] Cannot load script (data/actions/scripts/promoteitem.lua)
[12/2/2018 15:15:12] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'
[12/2/2018 15:15:12] [Error - LuaInterface::loadFile] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'
[12/2/2018 15:15:12] [Error - Event::checkScript] Cannot load script (data/actions/scripts/promoteitem.lua)
[12/2/2018 15:15:12] data/actions/scripts/promoteitem.lua:12: ')' expected near 'then'

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo