Jump to content

Dilong

Miembro
  • Contador contenido

    1.210
  • Ingreso

  • Última visita

  • Días ganados

    136

Mensajes publicados por Dilong

  1. hace 16 minutos, Kirara Pixel dijo:

    Hola, soy rumana, lo que pone en la frase es ''después de la instalación pones el archivo con el destino/lugar game/db(.tar.gz) en /usr/src 

    Lo de pollo tiene dobre significado ya que pui significa pollo y poner a la vez, solo que es diferente según como lo uses, por si te encuentras en más situaciones similares ^^ 

    Un saludo!

    Si, el problema es que, el que posteo esto estuvo un tiempo haciendo copy paste de todo lo que veía en otro lado y lo traducia todo con el traductor google sin utilizar la lógica y sin probarlo que es lo peor, por que en el tema de source si no hay una guía decente al español o propio no te imaginas la confusión si un nuevo ve algo como esto

  2. hace 1 hora, iDiegoJimenez dijo:

    Amigo una pregunta sabes donde puedo sacar un tutorial de como crear un servidor de metin2 en dedicado? 

    Básicamente se resume en instalar los .tar(serverfiles+mysql+libs si hace falta) en el vps o dedicado

    Pero si o si la máquina que usaras debe tener sistema operativo freebsd y tambien debes preparar el SO para su uso (esa guia tambien existe y esta en el foro)

    Guias para todo lo basico existen, solo falta saber buscar

  3. Basicamente la idea es poner la id de la cuenta gm en la tabla para bloquearlo, con id me refiero a este numero marcado en azul, por si algunos se confunden y ponen los datos de login: 25u15j8.png

    Con esto si la id de su cuenta esta en la tabla, dira que no tiene permiso para comerciar, es algo simple y el codigo puede ser mejorado

    exchange.cpp >> debajo de if (victim->IsBlockMode(BLOCK_EXCHANGE)), debe quedar de esta manera:

    	if (victim->IsBlockMode(BLOCK_EXCHANGE))
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»ó´ë¹æÀÌ ±³È¯ °ÅºÎ »óÅÂÀÔ´Ï´Ù."));
    		return false;
    	}
    
    	if (!IsGM())
    	{
    		if (victim->GetGMLevel() != GM_PLAYER)
    		{
    			ChatPacket(CHAT_TYPE_INFO, LC_TEXT("No puedes darle comercio a un GM"));
    			return false;
    		}
    	}
    
    	if (IsGM())
    	{
    		char szQuery[QUERY_MAX_LEN];
    		snprintf(szQuery, sizeof(szQuery), "SELECT * FROM comerciogm");
    		SQLMsg * pMsg = DBManager::instance().DirectQuery(szQuery);
    		SQLResult * pRes = pMsg->Get();
    		if (pRes->uiNumRows)
    		{
    			MYSQL_ROW row;
    			while ((row = mysql_fetch_row(pRes->pSQLResult)))
    			{
    				DWORD datos = 0;
    				str_to_number(datos, row[0]);
    				if (GetPlayerID()==datos)
    				{
    				ChatPacket(CHAT_TYPE_INFO, "No tienes permiso para comerciar");
    			return false;
    			}
    		}
    	}
    }

    Sql >> Player:
     

    
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for comerciogm
    -- ----------------------------
    DROP TABLE IF EXISTS `comerciogm`;
    CREATE TABLE `comerciogm`  (
      `gm` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
      PRIMARY KEY (`gm`) USING BTREE
    ) ENGINE = MyISAM CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
    
    SET FOREIGN_KEY_CHECKS = 1;

     

  4. hace 5 horas, Metin2Arceus dijo:

    Me dio error alguien sabe porque puede fallar? Solo necesito una quest para activar el evento mineria y al activarlo salga la opcion en uriel de que el evento esta abierto y alli ya esten las vetas añadidas por el mapa y cuando acabe el evento se cierre y mande todo a city1

    Listo, prueba
     

     

    hace 48 minutos, NikoMT dijo:

    Claro esta que ando intentando mejorarla para que saque pj al terminar el evento

    Hay unos detalles que estan mal en tu quest
    Ej:

    hace 48 minutos, NikoMT dijo:

                    notice_all("*El Evento Mineria  ha comenzado")        
                    notice_all("*entra por NPC ubicado en cada reino")    
                    server_timer("Mineria_Evento")    
                    game.set_event_flag("Mineria_activado", 1)  

    Este server timer no te funcionara por que no has puesto el tiempo: server_timer("Mineria_Evento",60*30) << en este caso terminara en 30 minutos

    Y un when al timer cuando se cumpla el tiempo, solo asi desactivara el evento:
    when Mineria_Evento. server_timer begin
    game.set_event_flag("Mineria_activado",0)

    warp_all_to_village(indexmapa, 30)

    notice_all("Evento terminado")
    end

    hace 48 minutos, NikoMT dijo:

                    notice_all("*El Evento Mineria se ha desactivado")
                    notice_all("*Seran todos teletransportados a sus citys.*")        
                    warp_all_to_village( pc.get_map_index() , 1 )
                    game.set_event_flag("Mineria_activado", 0)    
                    game.set_event_flag("empezar_Mineria",0)    
                    warp_to_village()

    Aqui:
    warp_all_to_village(indexmapa, 30) -- para que saque a todos del mapa
    clear_server_timer("Mineria_Evento") -- debes eliminar si o si el timer, o sino dependiendo de lo que hagas con el npc del evento puede tirar el servidor

    El resto con practica y mirando codigo hecho etc lo iras entendiendo

  5. No lo he probado

    quest mineria begin
    state start begin
    when 20091.chat."gm event" with pc.is_gm() begin
    coord_map_x = numero
    coord_map_y = numero
    index_map = index
    say_title("Npc")
    say("Npc")
    local event = select("Activar","Cancelar","Cerrar")
    if event == 1 then
    	game.set_event_flag("event1",1)
    	notice_all("evento activo")
    elseif event == 2 then
    	game.set_event_flag("event1",0)
    	notice_all("evento terminado")
    	return
    end
    end
    when 20091.chat."mapa mineria" with game.get_event_flag("event1")==1 begin
    local map = select("Entrar","Cancelar")
    if map == 1 then
    	pc.warp(coord_map_x,coord_map_y)
    	return
    end
    end
    when login with pc.get_map_index()==index_map and get_event_flag("event1")==1 begin
    loop_timer("eliminarobjeto",5)
    loop_timer("warp",10)
    end
    when warp.timer begin
    if game.get_event_flag("event1")==0 then
    	cleartimer("warp")
    	warp_to_village()
    end end
    when eliminarobjeto.timer begin
    if game.get_event_flag("event1")==0 then
    	local lista_mineral = {id1,id2,id3} -- elimina los minerales cuando acaba el evento, se debe poner las ids aqui
    	for i=1,table.getn(lista_mineral) do
    		pc.remove_item(lista_mineral[i],999)
    		cleartimer("eliminarobjeto")
    	end end end
    when 20091.chat."Obtener objetos" with game.get_event_flag("event1")==1 and pc.get_map_index()==index_map begin
    local objetos = {
    	{"objeto1", idmineral, cantidad,premio,cantidad},
    	{"objeto2",	idmineral, cantidad,premio,cantidad},
    	{"objeto3",	idmineral, cantidad,premio,cantidad},
    	{"Cerrar"}
    }
    local objetos2 = {}
    for i = 1, table.getn(objetos) do
    	table.insert(objetos2, objetos[i][1])
    end
    local sel = select_table(objetos2)
    if pc.count_item(objetos[sel][2]) < objetos[sel][3] then
    	say_reward("No tienes la cantidad necesaria")
    	return end
    	pc.remove_item(objetos[sel][2],objetos[sel][3])
    	pc.give_item2(objetos[sel][4],objetos[sel][5])
    end
    end
    end

     

×
×
  • Crear nuevo...