Jump to content
Sign in to follow this  
KnightFall

bloquear teleport

Recommended Posts

hace 12 horas, KnightFall dijo:

hola buenas noches quisiera saber si existe alguna forma de bloquear el teleport de un jugador que se encuentre en un mapa X... :sad:

gracias 

MM explicate bien ya que teleport puede suceder en varias circunstancias por asi decirlo..

1. Comando de Player /2 que se transporta por cualquier mapa y coordenada

2. Con anillo boda en el cual tienes 2 pj de distinto nivel pero ya casados y el uno lleva el otro.

para la primera pues simplemente por source editar cmd.cpp 

para la segunda añadir quest bloqueo mapa en la cual pues al momento de que un nivel x es menor (ejemplo cape lvl 90 y aparecen pj nivel 50) lo devuelve directamente a la ciudad de cada reino

Share this post


Link to post
Share on other sites

C++

// char_item.cpp @Buscar: bool CHARACTER::UseItem(TItemPos Cell, TItemPos DestCell)

// @Colocar debajo de: 
//	if (item->IsExchanging())
//		return false;

	if (GetMapIndex() == 123){ // Reemplaza {123} por el Index del mapa que quieras bloquear.
		if (item->GetVnum() == 12345 || item->GetVnum() == 30054){ // Reemplaza {12345} por el Vnum de tu anillo de teletransporte.
			ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Los medios de teletransporte estan prohibidos en este mapa."));
			return false;
		}
	}

Si lo quieres hacer a modo de Quest, solo debes agregar la restricción por medio de una condición en el anillo/npc lo que sea que uses.

if pc.get_map_index () == 123 then
  syschat("No puedes usar este objeto en este mapa")
  return
end

 

Share this post


Link to post
Share on other sites
hace 9 horas, Jayden dijo:

C++

// char_item.cpp @Buscar: bool CHARACTER::UseItem(TItemPos Cell, TItemPos DestCell)

// @Colocar debajo de: 
//	if (item->IsExchanging())
//		return false;

	if (GetMapIndex() == 123){ // Reemplaza {123} por el Index del mapa que quieras bloquear.
		if (item->GetVnum() == 12345 || item->GetVnum() == 30054){ // Reemplaza {12345} por el Vnum de tu anillo de teletransporte.
			ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Los medios de teletransporte estan prohibidos en este mapa."));
			return false;
		}
	}

Si lo quieres hacer a modo de Quest, solo debes agregar la restricción por medio de una condición en el anillo/npc lo que sea que uses.

if pc.get_map_index () == 123 then
  syschat("No puedes usar este objeto en este mapa")
  return
end

 

gracias esto me sirvió.... Pero solo me bloquea el anillo. y tengo un teleport en un menú en el inventario pero no lo toma como item que podría hacer en ese caso??

        function ms()
            say_title("Anillo De Teletransportación.")
            say("Seras teletransportado a la region seleccionada.")
        end
        when login begin
            cmdchat("SendQuestIndex "..q.getcurrentquestindex())
        end
        when info or button begin
            cmdchat("input1")
            local primero_button = input(cmdchat("button1"))
            cmdchat("input0")
     if primero_button == "1" then
                say_title("Anillo De Teletransportación.")
                say("Donde quieres viajar?")
                local teles = select("Citys","Otros","Salir")
                if teles == 6 then
                    return
                elseif teles == 1 then
                    say_title("Anillo De Teletransportación.")
                    say("Donde quieres viajar?")
                    local a = select("Ciudad Jinno 1","Cuidad Jinno 2","Ciudad Chunjo 1","Ciudad Chunjo 2","Ciudad Shinso 1","Ciudad Shinso 2","Cerrar")
                    if a == 7 then return end
                    local pueblos_C = {
                        {1111 ,1111},
                        {11111,11111},
                        {11111,1111110},
                        {111100 ,1111100},
                        {4111100 ,91111100},
                        {1111100 ,111100}
                    }
                    Menu_InGame.ms()
                    pc.warp (pueblos_C[a][1],pueblos_C[a][2])

 

gracias

Share this post


Link to post
Share on other sites
		function ms()
			say_title("Anillo De Teletransportación.")
			say("Seras teletransportado a la region seleccionada.")
		end
		when login begin
			cmdchat("SendQuestIndex "..q.getcurrentquestindex())
		end
		when info or button begin
			//////////////////////////////////////////
			if pc.get_map_index () == 123 then
				syschat("El teletransporte esta prohibido en este lugar.")
				return
			end
			//////////////////////////////////////////         
			cmdchat("input1")
			local primero_button = input(cmdchat("button1"))
			cmdchat("input0")
			if primero_button == "1" then
				say_title("Anillo De Teletransportación.")
				say("Donde quieres viajar?")
				local teles = select("Citys","Otros","Salir")
				if teles == 6 then
					return
				elseif teles == 1 then
					say_title("Anillo De Teletransportación.")
					say("Donde quieres viajar?")
					local a = select("Ciudad Jinno 1","Cuidad Jinno 2","Ciudad Chunjo 1","Ciudad Chunjo 2","Ciudad Shinso 1","Ciudad Shinso 2","Cerrar")
					if a == 7 then return end
					local pueblos_C = {
                        {1111 ,1111},
                        {11111,11111},
                        {11111,1111110},
                        {111100 ,1111100},
                        {4111100 ,91111100},
                        {1111100 ,111100}
                    }
                    Menu_InGame.ms()
                    pc.warp (pueblos_C[a][1],pueblos_C[a][2]) 

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...