Ir para conteúdo
  • 0

[Resolvido] Teleport do Pokemon


kaleudd

Pergunta

Salve,gostaria de saber onde edito as posiçao das city do meu script de teleport do /h do pokemon

 

 

Base:PDA 1.2

 

Meu Script:

local config = {
premium = true, -- se precisa ser premium account (true or false)
battle = true	-- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas
}

local places = {
[1] = {name = "Celadon", id = 1},
[2] = {name = "Saffron", id = 2},
[3] = {name = "Cerulean", id = 3},
[4] = {name = "Lavender", id = 4},
[5] = {name = "Vermilion", id = 5},
[6] = {name = "Fuchsia", id = 6},
[7] = {name = "Cinnabar", id = 7},
[8] = {name = "Viridian", id = 9},
[9] = {name = "Pewter", id = 10},
[10] = {name = "Pallet Town", id = 12},
[11] = {name = "Azalea", id = 13},
[12] = {name = "Cianwood", id = 14},
[13] = {name = "Olivine", id = 15},
[14] = {name = "Goldenrod", id = 16},
[15] = {name = "Violet", id = 18},
[16] = {name = "Outland North", id = 20},
[17] = {name = "Outland South", id = 21},
[18] = {name = "Outland East", id = 19},
[19] = {name = "Rod", id = 22},
}

function onSay(cid, words, param)

	if #getCreatureSummons(cid) == 0 then
		doPlayerSendCancel(cid, "You need a pokemon to use teleport.")
	return true
	end

	if not isInArray(specialabilities["teleport"], getCreatureName(getCreatureSummons(cid)[1])) then
	return 0
	end
	
    if getPlayerStorageValue(cid, 22545) == 1 then      --golden arena
       doPlayerSendCancel(cid, "You can't do that while the golden arena!")
    return true
    end
    
    if getPlayerStorageValue(cid, 212124) >= 1 then         --alterado v2.6
       return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!")
    end

    if getPlayerStorageValue(cid, 52480) >= 1 then
       return doPlayerSendCancel(cid, "You can't do it while a duel!")  --alterado v2.6
    end
    
    if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then 
	   return doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!")   --alterado v2.7
    end
    
	if exhaustion.get(cid, 180) and exhaustion.get(cid, 180) > 0 then
		local tempo = exhaustion.get(cid, 180) or 0
		local min = math.floor(tempo)
		doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.")
	return true
	end

	if config.premium and not isPremium(cid) then
		doPlayerSendCancel(cid, "Only premium members are allowed to use teleport.")
	return true
	end

	if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
		doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.")
	return true
	end

	if (param == '') then
		local str = ""
		str = str .. "Places to go :\n\nHouse\n"
			for a = 1, #places do
				str = str..""..places[a].name.."\n"
			end
		doShowTextDialog(cid, 7416, str)
	return true
	end

	local item = getPlayerSlotItem(cid, 8)
	local nome = getPokeballName(item.uid)
	local summon = getCreatureSummons(cid)[1]
	local lastppos = getThingPos(cid)
	local lastspos = getThingPos(summon)
	local telepos = {}
	local myplace = ""
	local townid = 0
	local citySto = 0  --alterado v2.7

	if string.lower(param) == "house" then

		if not getHouseByPlayerGUID(getPlayerGUID(cid)) then
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.")
		return true
		end

		telepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))
		myplace = "our home"

	else

		for x = 1, #places do
			if string.find(string.lower(places[x].name), string.lower(param)) then
				townid = places[x].id
				myplace = places[x].name
				citySto = places[x].sto or -1  --alterado v2.7
			end
		end

		if myplace == "" then
			doPlayerSendCancel(cid, "That place doesn't exist.")
		return true
		end
		if isInArray({"Outland North", "Outland South", "Outland East"}, myplace) then
			if getPlayerLevel(cid) < 150 then
				doPlayerSendTextMessage(cid, 27, "You need level 150 to enter in Outland.")
			return true
			end
		end

	end

	if myplace ~= "" and townid > 0 then
		telepos = getTownTemplePosition(townid)
	end
	
	if getDistanceBetween(getThingPos(cid), telepos) <= 15 then
		doPlayerSendCancel(cid, "You are too near to the place you want to go!")
	return true
	end

	doSendMagicEffect(getThingPos(summon), 29)
	doSendMagicEffect(getThingPos(cid), 29)

	doTeleportThing(cid, telepos, false)

	local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH))

	doTeleportThing(summon, pos2, false)

	doSendMagicEffect(getThingPos(cid), 29)

	doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", TALKTYPE_MONSTER, false, 0, lastppos)
	doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER)
	doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos)

	doCreatureSetLookDir(cid, SOUTH)
	doCreatureSetLookDir(summon, SOUTH)

	doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT)
	exhaustion.set(cid, 180, 180)
	if isInArray({"Outland North", "Outland South", "Outland East"}, myplace) then
		setPlayerStorageValue(cid, 31040, 1)
	else
		setPlayerStorageValue(cid, 31040, -1)
	end

return true
end
Editado por kaleudd
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Administrador
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...