Jump to content

Shogun

Miembro
  • Contador contenido

    378
  • Ingreso

  • Última visita

  • Días ganados

    51

Mensajes publicados por Shogun

  1. Buenas hoy como es domingo y es un dia tonto os traigo una quest también un poco tonta a modo de entrante de lo que vendrá después.
     
    Se trata de un item que al usarlo dejarás de ganar experiencia de los monstruos (no de las misiones ojo). Para librarte de la "maldición" simplemente debes clickear el item de nuevo o deshacerte de el.
     
    Fallos: se te resta la exp inmediatamente después de recibirla por lo que si estás a 99.9% por ejemplo y matas un mob -el cual te de suficiente exp para el 100%- con el item puesto subes de nivel.
     
    item_proto.txt

    70210	¿©½ÅÀÎÇü	ITEM_QUEST	0	1	ANTI_SELL	LOG	NONE	NONE	100000	100000	0	0	0	LIMIT_NONE	0	LIMIT_NONE	0	APPLY_NONE	0	APPLY_NONE	0	APPLY_NONE	0	0	0	0	0	0	0	0	0	0		

    item_proto (db)


    INSERT INTO `item_proto` VALUES ('70210', 0xBFA9BDC5C0CEC7FC, 0x476F64646573732720446F6C6C, '18', '0', '0', '1', '256', '8192', '0', '', '100000', '100000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');

    quest

    -- Anti-Exp Ring by Shogun for WoM (c) 2013
    quest exp_curse begin
    	state start begin
    		when 70210.use begin
    			pc.setqf("lastexp",pc.get_exp())
    			syschat("You are under the curse of the goddess. You will gain no experience.")
    			set_state(use)
    		end
    	end
    	
    	state use begin
    		when 70210.use begin
    			syschat("You lifted the curse of the goddess. You gain experience again.")
    			set_state(start)
    		end
    		
    		when login begin
    			syschat("You are currently under the curse of the goddess and gain no experience.")
    		end
    		
    		when kill or party_kill begin
    			local current = pc.get_exp()
    			local doll = pc.count_item(70210)
    			if doll == 0 then
    				syschat("The curse of the Goddess has lifted. You will gain Experience again.")
    				set_state(start)
    			end
    			if current < pc.getqf("lastexp") then
    				pc.setqf("lastexp",current)
    			end
    			if not npc.is_pc() then
    				local dif = pc.get_exp()-pc.getqf("lastexp")
    				pc.give_exp2(-dif)
    			end
    		end
    	end
    end
    
    
  2. reemplaza esto que te puse antes

    def SetHorseState(self, level, health, battery):		if level==0:			self.horseImage=None		else:			image = HorseImage()			image.SetParent(self)			image.SetState(level, health, battery)			image.Show()			self.horseImage=image			self.__ArrangeImageList()

    por esto

    def SetHorseState(self, level, health, battery):	self.horseImage=None
  3. Te falta esto en uiAffectShower.py

    	def SetHorseState(self, level, health, battery):		if level==0:			self.horseImage=None		else:			image = HorseImage()			image.SetParent(self)			image.SetState(level, health, battery)			image.Show()			self.horseImage=image			self.__ArrangeImageList()

    Debe ir debajo de esta linea:

     

    self.lovePointImage.OnUpdateLovePoint(lovePoint)

     

    y antes de esta

     

    def SetPlayTime(self, playTime):

  4. Hoy tenía un rato libre y traduje al español la primera quest que hice para el SG que también es el primer trabajo que publico sólo para Zone.

     

    Se trata de un mapa de eventos configurable (yo he usado metin2_map_t1 pero podéis usar otro) en el que se entra desde el Alguacil de Batalla en la ciudad. Podéis escoger que niveles y que reinos pueden entrar así como abrir el mapa o cerrarlo (lo cual mandará a todos los que se encuentren en el a su ciudad). Cuando el mapa está cerrado sólo los GM pueden entrar a él.

     

    Requisitos: metin2_map_t1 con mapindex 103 ( o se lo cambiáis en la quest ) el mapa para quien no lo conozca es este:

     

    Imagen enviada

     

    Para que cada reino renazca en su lado aconsejo añadir esto al Town.txt oficial:

     

    452 579
    469 200
    208 300
    452 579
     
    Y nada más a partir de aquí podéis inventar cualquier cosa nosotros lo usamos para lluvias de metines y para el evento de minería pero se pueden hacer otras cosas como la caza del zorro (soltar 100 zorros del desierto en modo "cobarde" y gana el gremio o reino que los mate antes), etc.
     
    quest sg_eventarena begin	state start begin		when login with pc.get_map_index() == 103 begin			if game.get_event_flag("sg_eventarena") == 0 and pc.is_gm() == false then				warp_to_village()			end		end                when 11001.chat."Mapa de eventos"                or 11003.chat."Mapa de eventos"                or 11005.chat."Mapa de eventos" with game.get_event_flag("sg_eventarena") > 0 begin                	----"111111222222333333444444555555666666777777888888999999"                	say_title("Alguacil de Batalla:")                	say("")                	say("El pueblo se está reuniendo en el paso del monte")                	say("Baekdu. Veamos si estás preparado para resistir la")                	say("jornada...")                	say("")                	wait()                	if game.get_event_flag("sg_eventarena_open"..pc.get_empire()) == 0 then				say_title("Alguacil de Batalla:")				say("")				----"111111222222333333444444555555666666777777888888999999"                		say("Lo siento, tu imperio no puede acceder a la montaña")                		say("en este momento.")                		say("")                		return                	end                	if game.get_event_flag("sg_eventarena_minlv") > pc.level then				say_title("Alguacil de Batalla:")				say("")                		say("Lo siento, necesitas nivel "..game.get_event_flag("sg_eventarena_minlv").." para entrar.")                		say("")                		return                	end                	if game.get_event_flag("sg_eventarena_maxlv") < pc.level then				say_title("Alguacil de Batalla:")				say("")                		say("Tu nivel es demasiado alto. El máximo permitido")                		say("en este momento es "..game.get_event_flag("sg_eventarena_maxlv")..".")                		say("")                		return                	end                	say_title("Archer Guardian:")                	say("")                	say("¿Estás preparado?")                	say("Vamos hacia la montaña...")                	say("")                	wait()                	if pc.get_empire() == 1 then                		pc.warp(46942, 45372)                	elseif pc.get_empire() == 2 then                		pc.warp(20754, 55748)                	else                		pc.warp(45253, 83437)                	end                end                when 11001.chat."GM: Mapa de Eventos"                or 11003.chat."GM: Mapa de Eventos"                 or 11005.chat."GM: Mapa de Eventos" with pc.is_gm() begin                	say_title("Opciones del Mapa de Eventos")                	say("")	               	if game.get_event_flag("sg_eventarena") > 0 then                		msg = "El mapa está abierto."                		statuschange = "Cerrar"                		new = 0                	else                		msg = "El mapa está cerrado."                		statuschange = "Abrir"                		new = 1                	end                	say(msg.." Ajustes actuales:")                	say("Nivel mínimo: "..game.get_event_flag("sg_eventarena_minlv").." Nivel máximo: "..game.get_event_flag("sg_eventarena_maxlv").." ")                	say("")                	say("")                	local s = select("Editar niveles admitidos", "Editar imperios admitidos", statuschange.." mapa de eventos", "Salir del menú")                	if s == 1 then                		say("Escribe el nivel mínimo:")                		say("")                		local min = input()            			say("Escribe el nivel máximo:")            			say("")            			local max = input()            			if min > max then            				say("¡El nivel máximo debe ser mayor o igual que el mínimo!")            				say("")            				return            			end				game.set_event_flag("sg_eventarena_minlv",min)				game.set_event_flag("sg_eventarena_maxlv",max)				say("Nivel admitido ajustado.")			elseif s == 2 then				if game.get_event_flag("sg_eventarena_open1") > 0 then					statuschange1 = "No admiti"					new1 = 0				else					statuschange1 = "Admiti"					new1 = 1				end								if game.get_event_flag("sg_eventarena_open2") > 0 then					statuschange2 = "No admiti"					new2 = 0				else					statuschange2 = "Admiti"					new2 = 1				end								if game.get_event_flag("sg_eventarena_open3") > 0 then					statuschange3 = "No admiti"					new3 = 0				else					statuschange3 = "Admiti"					new3 = 1				end				s=select(statuschange1.."r reino Shinsoo", statuschange2.."r reino Chunjo", statuschange3.." reino Jinno", "Cancelar")				if s == 1 then					game.set_event_flag("sg_eventarena_open1",new1)					say("Shinsoo "..statuschange1.."do")					say("")				elseif s ==2 then					game.set_event_flag("sg_eventarena_open2",new2)					say("Shinsoo "..statuschange2.."do")					say("")				elseif s== 3 then					game.set_event_flag("sg_eventarena_open3",new3)					say("Jinno "..statuschange3.."ed")					say("")				end                	elseif s == 3 then                		if new == 0 then                			notice_all("El mapa de eventos está cerrado.")                			warp_all_to_village(103, 10)                		else                		        notice_all("El mapa de eventos ha abierto! El Alguacil de")                			notice_all("Batalla está reclutando a los más valientes.")                		end                		game.set_event_flag("sg_eventarena",new)                		say("El mapa de eventos está "..statuschange..".")                		say("")                	end                end     endend                	                	
×
×
  • Crear nuevo...