Jump to content

dacvaldivia1

Members
  • Posts

    5
  • Joined

  • Last visited

Posts posted by dacvaldivia1

  1. Estimados, colegas muy buenas tardes recurro a ustedes para poder ajustar el siguiente NPC de "Auto Event" a un emulador Rathena Actualizado, con una versión de cliente 2018 PRE-Renewal, en la siguiente versión posteada e logrado corregir algunos errores como por ejemplo:

    1. Se realizo la traducción de alguno textos a español, según se realiza pruebas de los eventos (la codificación del archivo es ANSI)
    2. Cambie los Item de premio por x100 Poring Coin y 1M de zeny.
    3. Comente el "Evento Shops" ya no se justificaba en mi servidor.
    4. Algunas correcciones de mapas.
    5. Solucionar problema de la función "dispell"
    6. Se realiza correcciones de consultas query_sql en el evento "Devil Square"
    7. Se modifico el mod del evento "Zombie Survival" ya que al ser PRE-Renewal no existía al ID
    8. Se comentaron líneas de ítems que no existen en PRE-Renewal

    Pero aun no logro corregir algunos errores y es por eso que recurro a ustedes, para que me puedan ayudar

    1. El evento de Emp Breaker manda un error después de agregar la instancia, anuncia al ganador pero no genera el precio
      • [Info]: [Instance] Created map '0282#000003' (921) from 'sword_1-1' (282).
      • [Error]: status_calc_mob: No castle set at map 0282#000003
    //===== Comments: ============================================
    //= [Stolao]
    // Instance.yml
    //  - Id: 44
    //    Name: Emp Breaker
    //    TimeLimit: 900
    //    Enter:
    //      Map: sword_1-1
    //      X: 215
    //      Y: 206
    
    //==================================
    OnEmpStart:	//-- Emperium Event
    //==================================
    
    	$@CurrentEvent = 1;
    	waitingroom "Emperium Event",99;
    	Func_Countdown;
    	$@CurrentEvent = -1;
    	$@BestTime = 2000000000;
    	$@BestCid = 0;
    	getwaitingroomusers strnpcinfo(3);
    	if(.@waitingroom_usercount >= .MinPlayers[1]){
    		freeloop(1);
    		for(.@i = 0; .@i < .@waitingroom_usercount; .@i++){
    			attachrid(.@waitingroom_users[.@i]);
    			callfunc("dispell");
    			if(instance_id(IM_CHAR))
    				instance_destroy(IM_CHAR);
    			instance_create("Emp Breaker",IM_CHAR);
    			instance_enter("Emp Breaker",215,206,getcharid(0),instance_id(IM_CHAR));
    		}
    		freeloop(0);
    		delwaitingroom;
    		if(.TestMode)
    			sleep 60000;
    		else
    			sleep 10000;
    	} else {
    		delwaitingroom;
    		announce .EventName$[1]+" ¡Detenido! No hay suficientes jugadores que se unieron al "+.EventName$[1]+"!",bc_blue|bc_area|bc_npc;
    	}
    	if($@BestCid)
    		Func_Prizes($@BestCid,.EventName$[1]);
    	$@CurrentEvent = 0;
    	end;
                                                       
    //==================================
    //-- Emperium Event Extras
    //==================================
    
    sword_1-1,216,208,4	script	Emp_Break	-1,{
    OnBreak:
    	stopnpctimer;
    	.@Time = getnpctimer(0);
    	.@m = .@Time / 60000;
    	.@s = (.@Time - .@m * 60000) / 1000;
    	.@ms = .@Time % 1000;
    	if(.@Time < BestTime || !BestTime)
    		BestTime = .@Time;
    	if(.@Time < $@BestTime){
    		$@BestTime = .@Time;
    		$@BestCid = getcharid(0);
    		announce "[Emperium Event]: "+strcharinfo(0)+" now holds the top time of "+((.@m)?callfunc("F_InsertPlural",.@i,"minute")+" ":"")+""+((.@s)?.@s+""+((.@ms)?"."+.@ms:"")+" seconds":"")+".",bc_all|bc_blue;
    	}
    	mapannounce 'Map$,"You have a "+((.@Time == BestTime)?"new personal best ":"")+"time of "+((.@m)?callfunc("F_InsertPlural",.@i,"minute")+" ":"")+""+((.@s)?.@s+""+((.@ms)?"."+.@ms:"")+" seconds":"")+".",bc_area|bc_blue;
    	sleep2 2500;
    	instance_destroy;
    	end;
    
    OnInstanceInit:
    	initnpctimer;
    	stopnpctimer;
    	setnpctimer 0,strnpcinfo(3);
    	'Map$ = strnpcinfo(4);
    	monster 'Map$,223,206,"Emperium",1288,1,strnpcinfo(3)+"::OnBreak";
    	'GID = $@mobid;
    	setunitdata 'GID,UMOB_DMGIMMUNE,1;
    	sleep 2000;
    	mapannounce 'Map$,"[Emperium Event]: Goal is simple, kill the Emperium as fast as you can~",bc_map|bc_blue;
    	sleep 1000;
    	mapannounce 'Map$,"[Emperium Event]: Once Countdown is done have at it.",bc_map|bc_blue;
    	sleep 2000;
    	mapannounce 'Map$,"5",bc_map|bc_blue;
    	sleep 1000;
    	mapannounce 'Map$,"4",bc_map|bc_blue;
    	sleep 1000;
    	mapannounce 'Map$,"3",bc_map|bc_blue;
    	sleep 1000;
    	mapannounce 'Map$,"2",bc_map|bc_blue;
    	sleep 1000;
    	mapannounce 'Map$,"1",bc_map|bc_blue;
    	sleep 1000;
    	mapannounce 'Map$,"Go~",bc_map|bc_blue;
    	startnpctimer strnpcinfo(3);
    	setunitdata 'GID,UMOB_DMGIMMUNE,0;
    	end;
    }                                                 

     

    1. El Evento "Poring Event" no warpea al jugador a prontera, después de matar al poring correcto, pero si termina el evento de forma correcta al matar al segundo poring.
    • [Error]: buildin_warp: fatal error ! player not attached!
    • [Debug]: Function: warp (3 parameters):
    • [Debug]: Data: string value="prontera"
    • [Debug]: Data: number value=155
    • [Debug]: Data: number value=172
    //==================================
    OnPoringStart:	//-- Poring Event
    //==================================
    
    	killmonsterall .EnterMap$[6];
    	mapwarp .EnterMap$[6],"prontera",155,172;
    	$@CurrentEvent = 6;
    	pvpoff .EnterMap$[6];
    	for ( .@i = 0; .@i < getarraysize( .bombflag ); .@i++ )
    		setmapflag .EnterMap$[6], .bombflag[.@i];
    	Func_Countdown;
    	$@CurrentEvent = -6;
    	if(getmapusers(.EnterMap$[6]) < .MinPlayers[6]){
    		mapannounce .EnterMap$[6],"¡Evento detenido! No hay suficientes jugadores que se unieron a "+.EventName$[6]+"!",bc_blue;
    	} else {
    		killmonsterall .EnterMap$[6];
    		mapannounce .EnterMap$[6],"Las reglas son simples",bc_blue;
    		sleep 3000;
    		mapannounce .EnterMap$[6],"Mata al 'Poring' con el nombre correcto y regresaras a Prontera con tu premio.",bc_blue;
    		sleep 4000;
    		mapannounce .EnterMap$[6],"Mata al equivocado y vete a Prontera sin nada.",bc_blue;
    		sleep 4000;
    		mapannounce .EnterMap$[6],"Hay 2 'Poring' correctos y un temporizador de 30 minutos.",bc_blue;
    		sleep 4000;
    		mapannounce .EnterMap$[6],"El evento comienza ahora~",bc_blue;
    		for(.@i = 0; .@i < getarraysize(.Poring$); .@i++)
    			monster .EnterMap$[6],0,0,.Poring$[.@i],1725,5,strnpcinfo(3)+"::OnKillWrong";
    		monster .EnterMap$[6],0,0,"--ja--",1725,.PoringSpawn,strnpcinfo(3)+"::OnKillRight";
    		.PoringSpawn = 2;
     		for(.@poring = 30; .@poring > 0; .@poring--){
    			if(getmapusers(.EnterMap$[6]) < 1)
    				.@poring = 0;
    			mapannounce .EnterMap$[6],callfunc("F_InsertPlural",.@poring,"Minuto")+" Restantes.",bc_blue;
    			sleep 60000;
    		}
    	}
    	mapannounce .EnterMap$[6],"El tiempo ha terminado",bc_blue;
    	killmonsterall .EnterMap$[6];
    	for ( .@i = 6; .@i < getarraysize( .bombflag ); .@i++ )
    		removemapflag .EnterMap$[6], .bombflag[.@i];
    	$@CurrentEvent = 0;
    	sleep 5000;
    	mapwarp .EnterMap$[6],"prontera",155,172;
    	end;
    
    OnKillWrong:
    	monster .EnterMap$[6],0,0,.Poring$[rand(1,getarraysize($@Mobs))],1725,1,strnpcinfo(3)+"::OnKillWrong";
    	warp "prontera",155,172;
    	end;
    
    OnKillRight:
    	Func_Prizes(getcharid(0),.EventName$[6]);
    	.PoringSpawn -= 1;
    	if(.PoringSpawn < 1){
    		mapannounce .EnterMap$[6],"El tiempo ha terminado",bc_blue;
    		killmonsterall .EnterMap$[6];
    		for ( .@i = 6; .@i < getarraysize( .bombflag ); .@i++ )
    			removemapflag .EnterMap$[6], .bombflag[.@i];
    		$@CurrentEvent = 0;
    		sleep 5000;
    		mapwarp .EnterMap$[6],"prontera",155,172;
    		end;
    	}
    	warp "prontera",155,172;
    	end;

     

    1. El emulador buega el símbolo "¡" al tratar de crear el mail de premio, trate de modificar la codificación de la base de datos, pero la solución fue omitir el símbolo
      • [SQL]: DB error - Incorrect string value: '\xA1Felic...' for column `rohispano_main`.`mail`.`message` at row 1
    //==================================
    //-- Reward Function
    //==================================
    
    function	script	Func_Prizes	{
    	announce "Felicidades a "+strcharinfo(0,getarg(0))+", ganador del evento "+getarg(1)+", revisa tu correo para ver tu recompensa.",bc_all|bc_blue;
    	if(!getattachedrid())
    		attachrid(getcharid(3,strcharinfo(0,getarg(0))),1);
    	
    	WonEvents++;
    	MWonEvents++;
    	if($@Mail){
    		mail getarg(0), "no-reply", getarg(1), "Felicitaciones!% Has ganado el evento "+getarg(1)+" % % % [ Se adjunta tu recompensa. ]", $@RewardZeny, $@RewardID, $@RewardQNT;
    		sleep 2000;
    		query_sql("UPDATE `mail` SET message = REPLACE(`message`,'%',CHAR(13)) WHERE send_name = 'no-reply'");
    	} else {
    		getitem $@RewardID,$@RewardQNT;
    		zeny += $@RewardZeny;
    	}
    	return;
    }

    desde ya cualquier ayuda es bienvenida, también adjunto el avance del script por si lo quieren utilizar

    Auto_Event_2022.txt

  2. Current Version: 1.8E

     

    I have the following error
     
    2015-08-14%2020_12_36-root@hro_~_server.
     
    any ideas
     
    fix ncp Event_Agent#Maze
     
    original, line 39
     

    function	script	MazeRUN	{
    //callfunc("MazeRUN",<eventid>,<eventname>,<eventmap>,<minplayers>,<length>);
    	if($@CurrentEvent||agitcheck()||agitcheck2()){ end; }
    	mapwarp getarg(2,"maze"),"prontera",155,181;
    	enablenpc "mazeroadblock";
    	disablenpc "Event_Agent#Maze";
    	set $@CurrentEvent,getarg(0,4);
    	for(set .@i,5; .@i > 0; set .@i,.@i-1){
    		Announce ""+getarg(1,"Maze")+" Event Will begin in "+.@i+" Mins!",8;
    		Announce "Please type @joinevent to join",8;
    		sleep 60000;
    	}
    	Announce ""+getarg(1,"Maze")+" Event Has Begun!",8;
    	set $@CurrentEvent,$@CurrentEvent*-1;
    	sleep 9000;
    	if(getmapusers(getarg(2,"maze"))<getarg(3,1)){ mapannounce getarg(2,"maze"),"Sorry there are not enough players for this event to take place",8;
    	} else {
    		mapannounce getarg(2,"maze"),"Rules are simple first to get to end of maze wins, so begin~",8;
    		disablenpc "mazeroadblock";
    		enablenpc "MazePrize"; <-------- **HERE**
    		for(set .@maze,0; .@maze < getarg(4,40); set .@maze,.@maze+1){
    			if(getmapusers(getarg(2,"maze"))<1) set .@maze,.@maze+getarg(4,40);
    			mapannounce getarg(2,"maze"),"There are "+(getarg(4,40)-.@maze)+" Minuets Remaining",8;
    			sleep 60000;
    		}
    	mapannounce getarg(2,"maze"),"Time Is up",8;
    	}
    	disablenpc "Event_Agent#Maze";
    	sleep 5000;
    	mapwarp getarg(2,"maze"),"prontera",155,181;
    	set $@CurrentEvent,0;
    	end;
    }
    

    Fix, line 39
     

    function	script	MazeRUN	{
    //callfunc("MazeRUN",<eventid>,<eventname>,<eventmap>,<minplayers>,<length>);
    	if($@CurrentEvent||agitcheck()||agitcheck2()){ end; }
    	mapwarp getarg(2,"maze"),"prontera",155,181;
    	enablenpc "mazeroadblock";
    	disablenpc "Event_Agent#Maze";
    	set $@CurrentEvent,getarg(0,4);
    	for(set .@i,5; .@i > 0; set .@i,.@i-1){
    		Announce ""+getarg(1,"Maze")+" Event Will begin in "+.@i+" Mins!",8;
    		Announce "Please type @joinevent to join",8;
    		sleep 60000;
    	}
    	Announce ""+getarg(1,"Maze")+" Event Has Begun!",8;
    	set $@CurrentEvent,$@CurrentEvent*-1;
    	sleep 9000;
    	if(getmapusers(getarg(2,"maze"))<getarg(3,1)){ mapannounce getarg(2,"maze"),"Sorry there are not enough players for this event to take place",8;
    	} else {
    		mapannounce getarg(2,"maze"),"Rules are simple first to get to end of maze wins, so begin~",8;
    		disablenpc "mazeroadblock";
    		enablenpc "Event_Agent#Maze"; <-------- **HERE**
    		for(set .@maze,0; .@maze < getarg(4,40); set .@maze,.@maze+1){
    			if(getmapusers(getarg(2,"maze"))<1) set .@maze,.@maze+getarg(4,40);
    			mapannounce getarg(2,"maze"),"There are "+(getarg(4,40)-.@maze)+" Minuets Remaining",8;
    			sleep 60000;
    		}
    	mapannounce getarg(2,"maze"),"Time Is up",8;
    	}
    	disablenpc "Event_Agent#Maze";
    	sleep 5000;
    	mapwarp getarg(2,"maze"),"prontera",155,181;
    	set $@CurrentEvent,0;
    	end;
    }
    
  3. Hello Rathena community, How do i change the rate for donation in fluxcp? i edited "'CreditExchangeRate'" but it changes the price instead. it goes 'CreditExchangeRate' = 1.00 Credit(s). I dont know if this is a bug. Thank you

     

    i need

    $1 USD = 100 Credits 


    ok solved, only modified 'CreditExchangeRate' => 0.01, in application.php
    ok solved, only modified 'CreditExchangeRate' => 0.01, in application.php
×
×
  • Create New...