Jump to content

Kido

Members
  • Posts

    1445
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by Kido

  1. That script sounds very cool for low rate servers o: i would like to have it for my high rate but, since y do not allow players to @warp dungeonds like biolab, thanaboss or thor, i would like to have it too just for those maps :D!

  2. My players were trying to summon some mvps with hocus pocus at lvl 8 and they did not summoned any around 3 hours, i told them that the skill has that low chance, however since my server is a high rate one, they demand a higher probability to summon mvps.

     

    So i went to skill db and tryied to edit it did not work, i also tryied to copy the probability of monocell to hocus pocus but that did not work

     

    i even shutted down my server and turned on again but the changes did not take effect

     

    i know that this sound kinda easy to configurate but i just can not get over it x_x

     

    please i just need the line edited so they will summon mvp at the same chance as monocell appears when using hocus pocus

     

    thand in advance, my players and i are very gratefull for all the help that you guys give to us :3

  3. thank you so much! just a question, how can i make it to give 2000 silver coins for each item of the array instead of one?

    thank you again!

     

    Edit:

    I do not why but for some IDs the npc is not giving silver coins ):

    jupe_ele,47,49,6	script	Coin Trader	510,{
    
    	set .npcname$, "[Custom Trader]";
    	cutin "ep14_nyd04",2;
    	mes .npcname$;
    	mes "Hey i can exchange you some items for silver coins";
    	menu "Sure!",-,"No thanks", EXIT;
    	next;
    	mes "Allright, for each one you will get close to 2000 silver coins! ";
    	next;
    	mes "Lets start";
    	next;
    	mes "Hmm";
    
    	setarray .@itemlist[0],26140,26141,26142,26143,26144,26145,26146,26147,26148,26149,26150,26151,26152,26173,26174,26175,26176,26177,26178,26179,26180,26181,26182,26183,26184,26194,26195,26196,26197,26198,26199,26822,26824,26171,26202,26798,26809,26817,26789,16527,16528,3174,20000,20001,26341,16533,3169,26416,26417,26418,26419,26420,26421,26422,26423,26424,26425,26426,26427,26792,26793,26794,26795,26796,26797,20072,26119,26121,26123,26446,26447,26448,26449,26450,26451,26452,27001,27003,27004,27005,27007,27008,27009,27010,27011,27012,27015,27017,27019,27020,27021,27025,27026,27027,27030,27033,27034,27037,27038,27039,27041,27043,27046,27048,27049,27050,27051,27052,27055,27056,27058,27062,27063,27064,27066,27069,27070,27071,27072,27074,27075,27076,27080,27082,27083,27084,27095,27096,27097,27099,27100,27109,27111,27112,27114,27115,27117,27118,27119,27124,27126,27127,27128,27130,27131,27132,27133,27135,27140,27143,27144,27145,27146,27147,27149,27150,27151,27154,27155,27157,27160,27161,27162,27163,7164,27165,27167,27168,27169;
    	set .@reward, 0;
    	
    	for( set .@i,0; .@i < getarraysize(.@itemlist); set .@i,.@i + 1 )
    		{
    			if(countitem(.@itemlist[.@i]) >= 1)
    				set .@count, countitem(.@itemlist[.@i]);
    				set .@reward, .@reward + .@count;
    		}
    
    		if (.@count > 0)
    			{
    				mes "Here you go!";
    				for( set .@i,0; .@i < getarraysize(.@itemlist); set .@i,.@i + 1 )
    					{
    							set .@countdel, countitem(.@itemlist[.@i]);
    							delitem .@itemlist[.@i], .@countdel;
    					}
    				getitem 675,.@reward*18;
    		close2;
    	cutin "",255;
    	end;
    			}
    		else
    			{
    			goto NOITEM;
    			}
    
    	NOITEM:
    		next;
    		mes .npcname$;
    		mes "aw you do not hace the correct items";
    		close2;
    	cutin "",255;
    	end;
    	EXIT:
    		next;
    		mes .npcname$;
    		mes "if you ever get more items just tell me n.n";
    		close2;
    		cutin "",255;
    end;
    }
    
  4. i need a npc that can exchange any id of the array for a specific ammount of silver coins

    i tryied myself and got stucked like ... well, i was stucked too much time

     

    i need a npc like this

     

    the player talks to the npc

    the npc checks if the player has one or more item of the array ids

    if the player has 1 or more items of the array ids, the player may exchanges all of those items ids for an ammount of silver coins per item exchanged

     

    here is my lame script ):

    jupe_ele,47,49,6	script	Coin Trader	123,{
    
    mes "Would you like to exchange Customs for Silver Coins?";
    menu "Sure!",-;
    next;
    mes "Allright, shall we continue?!";
    menu "Ok",-;
    next;
    mes "Do you have all items?";
    menu "I have them all",-;
    set .@items$,"26140,26141,26142,26143,26144,26145,26146,26147,26148,26149,26150,26151,26152,26173,26174,26175,26176,26177,26178,26179,26180,26181,26182,26183,26184,26194,26195,26196,26197,26198,26199,26822,26824,26171,26202,26798,26809,26817,26789,16527,16528,3174,20000,20001,26341,16533,3169,26416,26417,26418,26419,26420,26421,26422,26423,26424,26425,26426,26427,26792,26793,26794,26795,26796,26797,20072,26119,26121,26123,26446,26447,26448,26449,26450,26451,26452,27001,27003,27004,27005,27007,27008,27009,27010,27011,27012,27015,27017,27019,27020,27021,27025,27026,27027,27030,27033,27034,27037,27038,27039,27041,27043,27046,27048,27049,27050,27051,27052,27055,27056,27058,27062,27063,27064,27066,27069,27070,27071,27072,27074,27075,27076,27080,27082,27083,27084,27095,27096,27097,27099,27100,27109,27111,27112,27114,27115,27117,27118,27119,27124,27126,27127,27128,27130,27131,27132,27133,27135,27140,27143,27144,27145,27146,27147,27149,27150,27151,27154,27155,27157,27160,27161,27162,27163,7164,27165,27167,27168,2716";
    if(countitem(.@items$) < 1) goto Lne;
    next;
    mes "Allright here you go!";
    delitem .@items$,1*.@items$;
    getitem 675,2000*.@items$;
    close;
    
    Lne:
    mes "do not try to fool me, you do not have any items";
    close;
    
    }
    
    

    please i need a working npc like that one pleasee

    thanks in adivance!

  5. just edit like this

    file npc/battleground/flavius/flavius01.txt

     

    find:

    waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80;
    

    change to:

    waitingroom "Battle Station",4,"start#bat_b01::OnReadyCheck",1,0,80;
    

     

    Find:

    waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80;
    

    To:

    waitingroom "Battle Station",4,"start#bat_b01::OnReadyCheck",1,0,80;
    

     

     

    find:

    if( .@Guillaume < 10 || .@Croix < 10 )
    

    change to:

    if( .@Guillaume < 3 || .@Croix < 3 ) //will be 3 VS 3
    

     

     

    do same thing to other script

     

    wo thanks sir that totally helped and ended the error

    may i ask, how to change max lvl an rewards for the other npcs?

    thanks a lot!

  6. of course yes, because you duplicate the NPC by copy one NPC to another different with same name

    i suggest you to revert original battle ground.

    just minor edit to make 20 participant requirement to be 6 only (3VS3)

    that is what i idid, u deleted the edited battleground and when i putted the original one those errores appeared D:!

    Your NPCs are duplicated. The other set of Battleground NPCs are still in your server. Turn it off first.

    i did that too, i turned of the server and then turned on again and they are still the same ):

  7. I was trying to edit my battleground so less ppl can participate (i do not have many players) but i just can not, the thing won't work

    so i just ended deleting the battleground folder and adding the original one, the ona that is supposed to not have any errors

    however, when y turned off my server and turned on again, i got a bunch of this errors D:!

    91NPL9i.png

     

    here is my battlegrounds ):

     

    i got error for all kinds of battleground )):

     

    some players already leave because my server always has been bugged with the battleground thing )):

     

    help us please, i do  not know what to do 

     

    i based the modifications on this topic but it did not wokr ):

    http://rathena.org/board/topic/78550-configuracion-de-battleground/

     

    thanks guys i hppe you guys can help me

     

    Edit:

    something weird i found, this npcs just got duplicated D:!

    LPpfwIA.png

    flavius_enter.txt

    flavius01.txt

    flavius02.txt

    kvm_enter.txt

    kvm_item_pay.txt

    kvm01.txt

    kvm02.txt

    kvm03.txt

    tierra_enter.txt

    tierra01.txt

    tierra02.txt

    bg_common.txt

  8. This noc allows to 8 players to register in odin's side or freya's side, allowing them to team up and battle in a party of 4 vs 4.

    The problem is that the script bugs itself autofulling itself

     

    i do not know the mechanics of this script, thanks in advice, i just want to make it work, this is the script

    // ------------------------------------------------------------------------------------------
    // ------ rAthena Script Release
    // Title: Simple 4 versus 4 PVP Gateway
    // Author: jTynne - [email protected]
    // Modified by: Scene - [email protected]
    // Version: 0.1 (Beta)
    // ------------------------------------------------------------------------------------------
    izlude,91,153,6	script	Party Battle Recruiter	416,{
    set .@n$,"[^FF0000Party Battle Recruiter^000000]";
    set .@charid,getcharid(0);
    mes .@n$;
    mes "Would you like to register for a 4 versus 4 Party Battle?";
    next;
    menu "Yes",-,"No",L_cancel;
    if(getmapusers("guild_vs3") > 0) { mes .@n$; mes "There appears to be a match currently in session. Check back momentarily."; close; end; }
    mes .@n$;
    mes "Which side of the arena would you like to join?";
    next;
    menu "Odin ("+$pvp4nA+"/4)",L_odin,"Freya ("+$pvp4nB+"/4)",L_freya;
     
    L_odin:
    if(.@charid == $pvp4nAchar1 || .@charid == $pvp4nAchar2 || .@charid == $pvp4nAchar3 || .@charid == $pvp4nAchar4 || .@charid == $pvp4nBchar1 || .@charid == $pvp4nBchar2 || .@charid == $pvp4nBchar3 || .@charid == $pvp4nBchar4) { mes .@n$; mes "You may only register once per round."; close; end; }
    if($pvp4nA < 4) {
    set $pvp4nA,$pvp4nA+1;
    if($pvp4nA == 1) { set $pvp4nAchar1,getcharid(0); }
    if($pvp4nA == 2) { set $pvp4nAchar2,getcharid(0); }
    if($pvp4nA == 3) { set $pvp4nAchar3,getcharid(0); }
    if($pvp4nA == 4) { set $pvp4nAchar4,getcharid(0); }
    if($pvp4nA == 1 || $pvp4nB == 1) { if($pvp4timer == 0 ) { initnpctimer; set $pvp4timer,1; } }
    mes .@n$;
    mes "You've joined the selected team. Once the other team have filled up, you'll automatically be transferred into the Colosseum. If the other team do not fill up within the next 30 seconds, this session will be cleared.";
    npctalk strcharinfo(0)+" has entered the round on Odin's Side.";
    if($pvp4nA == 4 && $pvp4nB == 4) { stopnpctimer; goto L_begin;}
    close;
    end;
    }
     
    L_freya:
    if(.@charid == $pvp4nAchar1 || .@charid == $pvp4nAchar2 || .@charid == $pvp4nAchar3 || .@charid == $pvp4nAchar4 || .@charid == $pvp4nAchar5 || .@charid == $pvp4nAchar6 || .@charid == $pvp4nAchar7 || .@charid == $pvp4nBchar1 || .@charid == $pvp4nBchar2 || .@charid == $pvp4nBchar3 || .@charid == $pvp4nBchar4 || .@charid == $pvp4nBchar5 || .@charid == $pvp4nBchar6 || .@charid == $pvp4nBchar7) { mes .@n$; mes "You may only register once per round."; close; end; }
    if($pvp4nB < 4) {
    set $pvp4nB,$pvp4nB+1;
    if($pvp4nB == 1) { set $pvp4nBchar1,getcharid(0); }
    if($pvp4nB == 2) { set $pvp4nBchar2,getcharid(0); }
    if($pvp4nB == 3) { set $pvp4nBchar3,getcharid(0); }
    if($pvp4nB == 4) { set $pvp4nBchar4,getcharid(0); }
    if($pvp4nA == 1 || $pvp4nB == 1) { if($pvp4timer == 0 ) { initnpctimer; set $pvp4timer,1; } }
    mes .@n$;
    mes "You've joined the selected team. Once the other team have filled up, you'll automatically be transferred into the Colosseum. If the other team do not fill up within the next 30 seconds, this session will be cleared.";
    npctalk strcharinfo(0)+" has entered the round on Freya's Side.";
    if($pvp4nA == 4 && $pvp4nB == 4) { stopnpctimer; goto L_begin;}
    close;
    end;
    }
     
    goto L_full;
     
     
    L_full:
    mes .@n$;
    mes "Sorry, but this team is full. Try another team, please.";
    close;
    end;
     
    L_begin:
    npctalk "Both teams have been filled. All participants currently logged in will be transferred to the arena in ten seconds.";
    sleep2 10000;
    set .@x,0;
    L_warploop:
            while (.@x < 7) {
                    if (.@x == 0)
                            { warpchar "guild_vs3",18,50,$pvp4nAchar1; }
                    else if (.@x == 1)
                            { warpchar "guild_vs3",18,50,$pvp4nAchar2; }
                    else if (.@x == 2)
                            { warpchar "guild_vs3",18,50,$pvp4nAchar3; }
                    else if (.@x == 3)
                            { warpchar "guild_vs3",18,50,$pvp4nAchar4; }
                    else if (.@x == 4)
                            { warpchar "guild_vs3",83,50,$pvp4nBchar1; }
                    else if (.@x == 5)
                            { warpchar "guild_vs3",83,50,$pvp4nBchar2; }
                    else if (.@x == 6)
                            { warpchar "guild_vs3",83,50,$pvp4nBchar3; }
                    else if (.@x == 7)
                            { warpchar "guild_vs3",83,50,$pvp4nBchar4; }
                    else
                            { npctalk "A round is now in session."; goto L_clear;}
            set .@x, .@x + 1;
            }
    goto L_warploop;
    end;
     
    L_cancel:
    mes .@n$;
    mes "Do come back if you change your mind.";
    close;
    end;
     
    OnTimer10000:
    npctalk "Ten seconds have passed. Entry to the round ends in 20 seconds.";
    end;
     
    OnTimer20000:
    npctalk "Twenty seconds have passed. Entry to the round ends in 10 seconds.";
    end;
     
    OnTimer30000:
    npctalk "Thirty seconds have passed and thus I have canceled the round.";
    stopnpctimer;
    goto L_clear;
     
    L_clear:
    set $pvp4timer,0;
    set $pvp4nA,0;
    set $pvp4nB,0;
    set $pvp4nAchar1,0;
    set $pvp4nAchar2,0;
    set $pvp4nAchar3,0;
    set $pvp4nAchar4,0;
    set $pvp4nBchar1,0;
    set $pvp4nBchar2,0;
    set $pvp4nBchar3,0;
    set $pvp4nBchar4,0;
    end;
    }
     
    -	script	pvp4vs4#1	-1,{
    OnPCDieEvent:
    getmapxy (.@map$, .@x, .@y, 0);
    if(.@map$ == "guild_vs3") { warp "SavePoint",0,0;}
    end;
     
    OnPCKillEvent:
    getmapxy (.@map$, .@x, .@y, 0);
    if( .@map$ == "guild_vs3") {
    set .@tempn1$,strcharinfo(0);
    set .@tempn2$,rid2name(killedrid);
    mapannounce "guild_vs3",""+.@tempn1$+" has killed "+.@tempn2$+".",1,0xD6A4E6;}
    end;
    }
    

    thanks again!

  9. Hello, i would love to add to my pvp script the next features

     

    PVP no heal: can not use any healing item

    PVP no custom: any custom item will be unequiped

     

    this is my script, i do not understand it at all

    /*	[====================================================]
    		SCRIPT:			Battle, Ranking y Premiador.
    		DISEÑADOR:		TitanOz~
    		DESCRIPCION:	NPC pvp, con ranking.
    						Premiador por muertes ( Basado en el script de beck )
    						Anuncia al matar y al entrar.
    						Restricciones de clases y nivel mínimo.
    		PARA:			Uso público.
    	[====================================================]
    		MEJORAS:
    				1.0 :	NONE!
    				2.0 :	- Agregado menú con consumibles.
    						- Agregada opción de premiar en otros mapas.
    						- Variable castigar.
    				2.5 :
    						- Agregada opcion de quitar buff a elección.
    						- Al listar ranking, se ve mas ordenado. Se lista de 5 posiciones.
    						- Eliminado anuncio al cancelar el warp.
    						- Anuncios de entrar a battle, se da solo en la ciudad del jugador que entró.
    						- Se quitó la opción de premiar al que mate al jugador mas de 2 veces.
    						- Script actualizado a EaMod.
    				2.6 :
    						- Corregidos bugs menores.
    				3.0 :
    						- Ranking SQL.
    						- Opción de reinicializar ranking. Da pm a 'npc:RankRestart' con '-reset'
    						- Optimización para quitar los buff.
    	[====================================================]
    		ADVERTENCIA:
    			- CUALQUIER MODIFICACIÓN QUE SE REALIZE
    			AL NPC QUE NO TENGA QUE VER CON LA
    			CONFIGURACIÓN GENERAL, ES A SU PROPIO
    			RIESGO. AGALO SI ESTÁ SEGURO DE LOS
    			CAMBIOS QUE REALIZARÁ.
    	[====================================================]	*/
    
    -	script	BattleFunc	-1,{
    	function BattMap;
    	function BattleMap;
    
    OnInit:
    /* [ ============================ CONFIGURACIONES GENERALES ============================ ] */
    //	Para añadir más mapas, debes seguir el siguiente estructura.
    //	BattleMap("<Nombre del mapa>","<Mapa>",<Usuarios permitidos>,<Restricción>,<Quitar Buff>);
    //	<Restricción> : 0 = Todos , 1 = Baby Class , 2 = Second Class , 3 = Third Class , 4 o mas = Error.
    //	<Quitar Buff> = 0 : Nada , 1 : All Spirits, 2 : Full Chemical Protection , 4 : Increase Agility y Blessing , 8 : Assumptio , 16 : Kyrie Eleison.
    //	Suma los numeros para quitar varios, por ejemplo 7 : All Spirit, Full Chemical Protection, Increase Agility y Blessing
    //	El maximo permitido para agregar mapas es de 120. Si se agregan más puede dar BUG.
    		BattleMap("Room 1","guild_vs2",30,0,0);
    		BattleMap("Room 2","bat_c03",30,0,0);
    		BattleMap("Room 3","guild_vs1",30,0,0);
    		BattleMap("Room 4","guild_vs4",30,0,0);
    		BattleMap("1 VS 1","guild_vs5",2,0,0);
    
    // Para agregár otros mapas donde quieras que se ganen y/o pierdan puntos, debe serguir la siguiente estructura.
    // BattMap("<Mapa>");
    		BattMap("prtg_cas01");
    		BattMap("prtg_cas02");
    		BattMap("schg_cas01");
    		BattMap("schg_cas02");
    		BattMap("payg_cas04");
    		BattMap("prtg_cas04");
    
    //	Otras configuraciones.
    		set $@LvlMin , 99 ; // Nivel minimo para entrar a pvp.
    		set $@Size , 20 ; // Tamaño de ranking [ Maximo = 120 ]
    		set $@nB$ , "Tairyu PvP" ; // Nombre Warper.
    		set $@nR$ , "PvP Ranking" ; // Nombre Rank.
    		set $@nP$ , "Kill Shop"; // Nombre Premiador.
    		set $@Prem , 1 ; // Si se quiere premiar con puntos al matar a un jugador [ 1 = Si ]
    		set $@Desc , 0 ; // Si se quiere descontar puntos [ 1 = Si ]
    //	Premiador.
    		setarray $@BattEquip[0],2280,10,5181,10,5172,50,5170,100,5058,100,5137,100,5374,100,5518,300;// Equipo que se ganan por algun precio en puntos. [ID1,Valor1,ID2,Valor2,ID3,Valor3...]
    		setarray $@BattConsu[0],12085,1,3,12090,1,3,12095,1,3,12080,1,3,12075,1,3,12100,1,3,12028,1,3,12033,1,3,12032,1,3,12030,1,3,12029,1,3,12031,1,3,606,1,3,7072,20,1,7157,20,1,7156,20,1,7112,20,1,963,20,1,7024,1,20,675,5,1;// Consumible que se ganan y la cantidad que se da. [ID1,Cant1,Valor1,ID2,Cant2,Valor2,ID3,Cant3,Valor3...]
    /* [ =================================================================================== ] */
    	query_sql("CREATE TABLE IF NOT EXISTS `battle_npc` (`name_btl` varchar(30) NOT NULL default '' , `kill_btl` int(5) NOT NULL default '0' , `dead_btl` int(5) NOT NULL default '0' ) ENGINE=MyISAM;");
    	end;
    	
    // Mapas.
    // getarg(0) : Nombre.
    // getarg(1) : Mapa.
    // getarg(2) : Usuarios permitidos.
    // getarg(3) : Restricciones.
    // getarg(4) : Buff.
    function BattleMap {
    	set .a , .a + 1;
    	set $@Battle$[ .a ] , getarg(0);
    	set $@MapBat$[ .a ] , getarg(1);
    	set $@UsuPerm[ .a ] , getarg(2);
    	set $@Restric[ .a ] , getarg(3);
    	set $@QuitBuf[ .a ] , getarg(4);
    	return;
    }
    
    // Mapas.
    // getarg(0) : Mapa.
    function BattMap {
    	set .b , .b + 1;
    	set $@OtrMap$[ .b ] , getarg(0) ;
    	return;
    }
    
    // Anuncios y puntos.
    OnPCKillEvent:
    	set .@size, getarraysize($@MapBat$) ;
    	for ( set .@i , 0 ; .@i < .@size ; set .@i , .@i + 1 )
    		if ( strcharinfo(3) == $@MapBat$[ .@i ] )
    		{
    			set @DeadCount , @DeadCount + 1 ;
    			switch( @DeadCount )
    			{
    				case 1:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] Simple Kill!",bc_blue;
    					break;
    				case 2:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] Double Kill!",bc_blue;
    					break;
    				case 3:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] Triple Kill!",bc_blue;
    					break;
    				case 4:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] Super Kill!",bc_blue;
    					break;
    				case 5:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] Mega Kill!",bc_blue;
    					break;
    				case 6:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] Ultra Kill!",bc_blue;
    					break;
    				case 7:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] Monster Kill!",bc_blue;
    					break;
    				default:
    					mapannounce strcharinfo(3),"[ " + strcharinfo(0) + " ] God of Dead!",bc_blue;
    					break;
    			}
    			if ( $@Prem == 1 )
    			{
    				set #BattlePoints , #BattlePoints + 1 ;
    				dispbottom "[ " + $@nB$ + " ] : Ganas 1 punto.";
    			}
    			set .@existe , query_sql("SELECT `kill_btl` FROM `battle_npc` WHERE `name_btl` = '" + strcharinfo(0) + "'" , .@a );
    			if ( .@existe )
    			{
    				set .@a , .@a + 1 ;
    				query_sql("UPDATE `battle_npc` SET `kill_btl` = " + .@a + " WHERE `name_btl` = '" + strcharinfo(0) + "';");
    			}
    			else
    				query_sql("INSERT INTO `battle_npc` (`name_btl`,`kill_btl`,`dead_btl`) VALUES ('" + strcharinfo(0) + "',1,0);");
    			end;
    		}
    	set .@size , getarraysize($@OtrMap$) ;
    	for ( set .@i , 0 ; .@i < .@size ; set .@i , .@i + 1 )
    		if ( strcharinfo(3) == $@OtrMap$[ .@i ] )
    		{
    			if ( $@Prem == 1 )
    			{
    				set #BattlePoints , #BattlePoints + 1 ;
    				dispbottom "[ " + $@nB$ + " ] : Ganas 1 punto.";
    			}
    			end;
    		}
    	end;
    	
    OnPCDieEvent:
    	set .@size , getarraysize($@MapBat$) ;
    	for ( set .@i , 0 ; .@i < .@size ; set .@i , .@i + 1 )
    		if ( strcharinfo(3) == $@MapBat$[ .@i ] )
    		{
    			set @DeadCount , 0;
    			if ( $@Prem == 1 && $@Desc == 1 )
    			{
    				set #BattlePoints , #BattlePoints - 1 ;
    				if ( #BattlePoints < 0 )	set #BattlePoints , 0 ;
    				dispbottom "[ " + $@nB$ + " ] : Pierdes 1 punto.";
    			}
    			set .@existe , query_sql("SELECT `dead_btl` FROM `battle_npc` WHERE `name_btl` = '" + strcharinfo(0) + "'" , .@a );
    			if ( .@existe )
    			{
    				set .@a , .@a + 1 ;
    				query_sql("UPDATE `battle_npc` SET `dead_btl` = " + .@a + " WHERE `name_btl` = '" + strcharinfo(0) + "';");
    			}
    			else
    				query_sql("INSERT INTO `battle_npc` (`name_btl`,`kill_btl`,`dead_btl`) VALUES ('" + strcharinfo(0) + "',0,1);");
    			end;
    		}
    	set .@size , getarraysize($@OtrMap$) ; 
    	for ( set .@i , 0 ; .@i < .@size ; set .@i , .@i + 1 )
    		if ( strcharinfo(3) == $@OtrMap$[ .@i ] )
    		{
    			if ( $@Prem == 1 && $@Desc == 1 )
    			{
    				set #BattlePoints , #BattlePoints - 1 ;
    				if ( #BattlePoints < 0 )	set #BattlePoints , 0 ;
    				dispbottom "[ " + $@nB$ + " ] : Pierdes 1 punto.";
    			}
    			end;
    		}
    	end;
    	
    }
    
    /*   [ ======================= ] Reset Rank [ ======================= ]   */
    -	script	RankRestart	-1,{
    OnWhisperGlobal:
    	if ( getgmlevel() > 80 )
    		if ( @whispervar0$ == "-reset" )
    		{
    			query_sql("TRUNCATE TABLE `battle_npc`;"); 
    			dispbottom "Ranking reiniciado.";
    		}
    		else
    			dispbottom "Ingresa '-reset' para reiniciar el ranking.";
    		
    	else
    		dispbottom "No tienes cuenta de Administrador.";
    	end;
    }
    
    /*   [ ======================= ] Cartel Ranking [ ======================= ]   */
    prontera,147,166,5	script	Ranking	837,{
    mes "[^008888 " + $@nR$ + " ^000000]";
    set .@j , 1 ;
    set .@a , query_sql("SELECT `name_btl`,`kill_btl`,`dead_btl` FROM `battle_npc` ORDER BY `kill_btl` DESC LIMIT 0," + $@Size , .@a$ , .@b , .@c ) ;
    if ( .@a < $@Size )
    	set .@size , .@a ;
    else
    	set .@size , $@Size ;
    for ( set .@i , 0 ; .@i < .@size ; set .@i , .@i + 1)
    {
    	mes ( .@i + 1 ) + ".- ^1352AF" + .@a$[ .@i ] + "^000000 con ^1352AF" + .@b[ .@i ] + "^000000 muertes.";
    	if ( .@i + 1 == 5 * .@j )
    	{
    		next;
    		mes "[^008888 " + $@nR$ + " ^000000]";
    		set .@j , .@j + 1 ;
    	}
    }
    if ( .@a < $@Size )
    	mes "^FF0000No hay mas datos^000000";
    if ( .@j == 1 || .@i % 5 != 0 )
    {
    	next;
    	mes "[^008888 " + $@nR$ + " ^000000]";
    }
    set .@existe , query_sql("SELECT `kill_btl`,`dead_btl` FROM `battle_npc` WHERE `name_btl` = '" + strcharinfo(0) + "'", .@a , .@b ) ;
    mes "Tus datos son:";
    mes "Nombre : ^000088" + strcharinfo(0) + "^000000.";
    mes "Profeción : ^000088" + jobname(Class) + "^000000.";
    if ( !.@existe )
    {
    	set .@a , 0 ;
    	set .@b , 0 ;
    }
    mes "Muertes : ^000088" + .@a + "^000000.";
    mes "Muerto : ^000088" + .@b + "^000000.";
    close;
    }
    
    /*   [ ======================= ] Warper [ ======================= ]   */
    prontera,147,172,5	script	Battle::Battle	420,{
    	function Restrict;
    	function QuitarBuff;
    mes "[^008888 " + $@nB$ + " ^000000]";
    cutin "ins_cata_pri_n",2;
    if ( BaseLevel < $@LvlMin )
    {
    	mes "No puedes entrar a " + $@nB$ + ", entrena un poco mas " + strcharinfo(0);
    	close2;
    	cutin "",255;
    	end;
    }
    mes "Bienvenido " + strcharinfo(0) + ", a " + $@nB$;
    mes "¿Estas listo para demostrar quien eres en verdad?";
    next;
    mes "[^008888 " + $@nB$ + " ^000000]";
    mes "Selecciona a que sala quieres entrar.";
    set .@menu$ , "^880000Salir^000000";
    set .@size , getarraysize($@Battle$) ;
    for ( set .@i , 1 ; .@i <= .@size ; set .@i , .@i + 1 )
    	set .@menu$ , .@menu$ + ":" + $@Battle$[ .@i ] + " ^0B2161[ " + getmapusers($@MapBat$[ .@i ]) + " / " + $@UsuPerm[ .@i ] + " ]^000000";
    set .@z , select(.@menu$) - 1 ;
    next;
    mes "[^008888 " + $@nB$ + " ^000000]";
    if ( .@z == 0 )
    {
    	mes "Sabia que no podrias, lo vi en tus ojos!";
    	close2;
    	cutin "",255;
    }
    else if ( Restrict($@Restric[ .@z ]) == -1 )
    	{
    		mes "^FF0000ERROR^000000, comuniqueselo a un administrador sobre el problema con las restricciones.";
    		close2;
    		cutin "",255;
    	}
    	else if ( Restrict($@Restric[ .@z ]) == 1 )
    		{
    			mes "Siendo ^0B2161" + jobname(Class) + "^000000, no puedes ingresar al mapa, prueba con otro.";
    			close2;
    			cutin "",255;
    		}
    		else if ( getmapusers($@MapBat$[ .@z ]) >= $@UsuPerm[ .@z ] )
    			{
    				mes "El mapa está lleno, intentalo mas tarde";
    				close2;
    				cutin "",255;
    			}
    			else
    			{
    				mes "En ^0000FF" + $@Battle$[ .@z ] + "^000000 hay ^0000FF" + getmapusers($@MapBat$[ .@z ]) + "^000000 usuario" + ((getmapusers($@MapBat$[ .@z ]) != 1)?"s":"") + " en este momento.";
    				mes "¿Seguro que quieres viajar?";
    				if ( select("Si:No") == 1 )
    				{
    					mes " ";
    					mes "Preparate, aqui vamos!";
    					close2;
    					cutin "",255;
    					sleep2 200;
    					mapannounce strcharinfo(3),"El jugador [ " + strcharinfo(0) + " ] entro a " + $@nB$ + " " + $@Battle$[ .@z ] + ".",bc_blue;
    					QuitarBuff($@QuitBuf[ .@z ]);
    					warp $@MapBat$[ .@z ],0,0;
    				}
    				else
    				{
    					close2;
    					cutin "",255;
    				}
    			}
    
    end;
    
    // Restricciones.
    // getarg(0) : Restricciones ( 0 = Todos , 1 = Baby Class , 2 = Second Class , 3 = Third Class ).
    function Restrict {
    	switch ( getarg(0) )
    	{
    		case 0:
    			set .@res , 0 ; // Si.
    			break;
    		case 1:
    			if ( Class >= 4023 && Class <=4043 || Class >= 4096 && Class <= 4108 ) // Solo Baby.
    				set .@res , 0 ; // Si.
    			else
    				set .@res , 1 ; // No.
    			break;
    		case 2:
    			if ( Class >= 4054 && Class <= 4087 || Class >= 4023 && Class <= 4043 || Class >= 4096 && Class <=4108 ) // Third y Baby.
    				set .@res , 1 ; // No.
    			else
    				set .@res , 0 ; // Si.
    			break;
    		case 3:
    			if ( Class >= 4054 && Class <= 4087 ) // Solo Third.
    				set .@res , 0 ; // Si.
    			else
    				set .@res , 1 ; // No.
    			break;
    		default:
    			set .@res , -1 ; // Error.
    	}
    	return .@res;
    }
    
    // Quitar Buffs.
    // getarg(0) : Buffs.
    function QuitarBuff {
    	if ( getarg(0) == 0 )
    		return;
    	else
    
    	{
    		set .@z , getarg(0) ;
    		while ( .@z > 0 )
    		{
    			if ( .@z <= 32 && .@z >= 16 )
    			{
    				sc_end SC_ASSUMPTIO;
    				set .@z , .@z - 16 ;
    			}
    			else if ( .@z <= 15 && .@z >= 8 )
    			{
    				sc_end SC_KYRIE;
    				set .@z , .@z - 8 ;
    			}
    			else if ( .@z <= 7 && .@z >= 4 )
    			{
    				sc_end SC_INCREASEAGI;
    				sc_end SC_BLESSING;
    				set .@z , .@z - 4 ;
    			}
    			else if ( .@z == 3 || .@z == 2 )
    			{
    				sc_end SC_CP_WEAPON;
    				sc_end SC_CP_SHIELD;
    				sc_end SC_CP_ARMOR;
    				sc_end SC_CP_HELM;
    				set .@z , .@z - 2 ;
    			}
    			else if ( .@z == 1 )
    			{
    				sc_end SC_SPIRIT;
    				set .@z , .@z - 1 ;
    			}
    		}
    	}
    	return;
    }
    
    	end;
    
    }
    
    /*   [ ======================= ] Premiador [ ======================= ]   */
    prontera,147,169,5	script	Premios	123,{
    mes "[^008888 " + $@nP$ + " ^000000]";
    mes "Vaya que te haces de reputacion en " + $@nB$ + ". Por tu gran esfuerzo puedo darte premios por algunos puntos.";
    mes "¿Que te gustaria obtener?";
    switch ( select("^000088Salir^000000:Ver Puntos:Canjear Equipo:Canjear Consumibles") )
    {
    	case 1:
    		next;
    		mes "[^008888 " + $@nB$ + " ^000000]";
    		mes "Que tengas un buen dia";
    		break;
    
    	case 2:
    		next;
    		mes "[^008888 " + $@nB$ + " ^000000]";
    		mes "Tienes [ ^0B2161" + #BattlePoints + "^000000 ] Puntos. Recuerda seguir matando para ganar más.";
    		break;
    
    	case 3:
    		next;
    		mes "[^008888 " + $@nB$ + " ^000000]";
    		mes "Por favor, selecciona el objeto que deseas.";
    		mes " ";
    		mes "Objeto ^0B2161[<Valor>]^000000";
    		set .@size , getarraysize($@BattEquip) ;
    		for ( set .@i , 0 ; .@i < .@size ; set .@i , .@i + 2 )
    			if ( .@i < 1 )
    				set .@menu$ , getitemname($@BattEquip[ .@i ]) + " ^0B2161[" + $@BattEquip[ .@i + 1 ] + "]^000000";
    			else
    				set .@menu$, .@menu$ + ":" + getitemname($@BattEquip[ .@i ]) + " ^0B2161[" + $@BattEquip[ .@i + 1 ] + "]^000000";
    		set .@a , select( .@menu$ ) - 1;
    		set .@j , .@a * 2 ;
    		next;
    		mes "[^008888 " + $@nB$ + " ^000000]";
    		mes "¿Seguro que quieres ^0B2161" + getitemname($@BattEquip[ .@j ]) + "^000000?";
    		mes "Este cuesta ^0B2161" + $@BattEquip[ .@j + 1 ] + "^000000 puntos";
    		if ( select("No:Si") == 1 )
    		{
    			mes " ";
    			mes "Vuelve cuando desees.";
    		}
    		else
    		{
    			if ( #BattlePoints < $@BattEquip[ .@j + 1 ] )
    			{
    				mes " ";
    				mes "No tienes " + $@BattEquip[ .@j + 1 ] + " puntos, vuelve cuando los tengas.";
    			}
    			else
    			{
    				next;
    				mes "[^008888 " + $@nB$ + " ^000000]";
    				mes "Aqui tienes " + strcharinfo(0) + " Vuelve pronto.";
    				set #BattlePoints , #BattlePoints - $@BattEquip[ .@j + 1 ];
    				getitem $@BattEquip[ .@j ] , 1 ;
    			}
    		}
    		break;
    
    	case 4:
    		next;
    		mes "[^008888 " + $@nB$ + " ^000000]";
    		mes "Por favor, selecciona el objeto que deseas.";
    		mes " ";
    		mes "<Cantidad> Objeto ^0B2161[<Valor>]^000000";
    		set .@size , getarraysize($@BattConsu) ;
    		for ( set .@i , 0 ; .@i < .@size ; set .@i , .@i + 3 )
    			if ( .@i < 1 )
    				set .@menu$ , $@BattConsu[ .@i + 1 ] + " " + getitemname($@BattConsu[ .@i ]) + " ^0B2161[" + $@BattConsu[ .@i + 2 ] + "]^000000";
    			else
    				set .@menu$, .@menu$ + ":" + $@BattConsu[ .@i + 1 ] + " " + getitemname($@BattConsu[ .@i ]) + " ^0B2161[" + $@BattConsu[ .@i + 2 ] + "]^000000";
    		set .@a , select( .@menu$ ) - 1;
    		set .@j , .@a * 3 ;
    		next;
    		mes "[^008888 " + $@nB$ + " ^000000]";
    		mes "Ingresa cuantas unidades de ^0B2161" + $@BattConsu[ .@j + 1 ] + " " + getitemname($@BattConsu[ .@j ]) + "^000000 te llebaras.";
    		mes "Cada unidad cuesta ^0B2161" + $@BattConsu[ .@j + 2 ] + "^000000 puntos.";
    		mes " ";
    		mes "^FF00000 para cancelar^000000";
    		input .@u;
    		if ( .@u == 0 )	close;
    		next;
    		mes "[^008888 " + $@nB$ + " ^000000]";
    		mes "¿Seguro que quieres " + .@u + " unidades de ^0B2161" + $@BattConsu[ .@j + 1 ] + " " + getitemname($@BattConsu[ .@j ]) + "^000000?" ;
    		if ( select("No:Si") == 1 )
    		{
    			mes " ";
    			mes "Vuelve cuando desees.";
    		}
    		else
    		{
    			if ( #BattlePoints < ( $@BattConsu[ .@j + 2 ] * .@u ) )
    			{
    				mes " ";
    				mes "No tienes " + ( $@BattConsu[ .@j + 2 ] * .@u ) + " puntos, vuelve cuando los tengas.";
    			}
    			else
    			{
    				if ( checkweight($@BattConsu[ .@j ],( .@u * $@BattConsu[ .@j + 1 ] ) ) == 0 )
    				{
    					mes " ";
    					mes "No tienes suficiente peso para llevar ^0B2161" + ( .@u * $@BattConsu[ .@j + 1 ] ) + " " + $@BattConsu[ .@j ] + "^000000.";
    				}
    				else
    				{
    					next;
    					mes "[^008888 " + $@nB$ + " ^000000]";
    					mes "Aqui tienes " + strcharinfo(0) + " Vuelve pronto.";
    					set #BattlePoints , #BattlePoints - ( $@BattConsu[ .@j + 2 ] * .@u ) ;
    					getitem $@BattConsu[ .@j ] , ( $@BattConsu[ .@j + 1 ] * .@u ) ;
    				}
    			}
    		}
    		break;
    }
    close;
    }
    
    /* [ ======================= ] Duplicados [ ======================= ] */
    morocc,170,102,3	duplicate(Battle)	Battle#01	412
    geffen,125,104,3	duplicate(Battle)	Battle#02	412
    payon,162,230,5	duplicate(Battle)	Battle#03	412
    alberta,53,250,3	duplicate(Battle)	Battle#04	412
    izlude,136,91,3	duplicate(Battle)	Battle#05	412
    aldebaran,147,121,3	duplicate(Battle)	Battle#06	412
    comodo,193,168,3	duplicate(Battle)	Battle#07	412
    amatsu,203,97,3	duplicate(Battle)	Battle#08	412
    ayothaya,154,120,3	duplicate(Battle)	Battle#09	412
    brasilis,199,185,3	duplicate(Battle)	Battle#10	412
    dewata,205,186,3	duplicate(Battle)	Battle#11	412
    einbech,67,96,5	duplicate(Battle)	Battle#12	412
    einbroch,67,196,3	duplicate(Battle)	Battle#13	412
    gonryun,155,122,5	duplicate(Battle)	Battle#14	412
    hugel,102,150,3	duplicate(Battle)	Battle#15	412
    jawaii,199,243,3	duplicate(Battle)	Battle#16	412
    yuno,162,90,3	duplicate(Battle)	Battle#17	412
    lighthalzen,220,206,3	duplicate(Battle)	Battle#18	412
    louyang,222,120,3	duplicate(Battle)	Battle#19	412
    xmas,153,123,3	duplicate(Battle)	Battle#20	412
    malangdo,171,141,3	duplicate(Battle)	Battle#21	412
    manuk,270,143,3	duplicate(Battle)	Battle#22	412
    mid_camp,201,283,6	duplicate(Battle)	Battle#23	412
    mora,103,66,6	duplicate(Battle)	Battle#24	412
    moscovia,230,199,3	duplicate(Battle)	Battle#25	412
    niflheim,189,179,6	duplicate(Battle)	Battle#26	412
    rachel,121,106,6	duplicate(Battle)	Battle#27	412
    splendide,181,144,6	duplicate(Battle)	Battle#28	412
    umbala,118,143,5	duplicate(Battle)	Battle#29	412
    veins,190,228,6	duplicate(Battle)	Battle#30	412
    

    thanks i hope it is enought information !

  10. You're missing a semicolon in the loop header (line 12).

     

    Change

    for(set .@i,0; .@i<getarraysize(.MVP) set .@i,.@i+1){
    

    to

    for(set .@i,0; .@i<getarraysize(.MVP); set .@i,.@i+1){
    

     

    thank you, sorry for late answer, i can not test this right now but if error occur i will edit this, thanks again i hope y will work!

  11. So the script was working for SVN 17+ but when I downgraded back to 16+, I keep getting errors such as

     

    
    [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/abc/hourpoints2.txt', line '1'. Stopping...
     * w1=- script hourlypoints -1,{
     * w2=
     * w3=
     * w4=
    
    

     

    Here's the script I'm using.

     

    - script hourlypoints -1,{
    
    //--Start of the Script
    OnPCLoginEvent:
    attachnpctimer ""+strcharinfo(0)+"";
    initnpctimer;
    end;
    
    OnTimer60000:
    set @minute, @minute + 1;
    if(@minute == 20){
    set @minute,0;
    set .@point_amt, 2; //Points to get every hour (default: 10)
    if(checkVending()== 1) {
    dispbottom "The hourly points event haulted because you were vending, chatting, or idle.";
    stopnpctimer;
    end;
    }
    else {
    set #CASHPOINTS, #CASHPOINTS + .@point_amt;
    dispbottom "You received "+.@point_amt+" cash points for staying in-game for 20 minutes.";
    dispbottom "Current Balance = "+#CASHPOINTS+" Cash Points";
    set @consecutive_hour, @consecutive_hour + 1;
    }
    }
    if(@consecutive_hour == 1) {
    set @consecutive_hour,0;
    set .@cpoint_amt, 10; //Points to get for 12 Consecutive hours (default: 50)
    set #CASHPOINTS, #CASHPOINTS + .@point_amt;
    dispbottom "You received "+.@cpoint_amt+" bonus cash points for playing for 1 hour.";
    dispbottom "Current Balance = "+.@point_var$+" Cash Points";
    }
    stopnpctimer;
    initnpctimer;
    end;
    
    }
    //--End of the Script
    

     

    Hello, i'm pretty sure that the problem is that in the line 1 you did not tabbed, just hit tab betwin the spaces on the line 1 like this and you should not have any errors

    -<tab>script<tab>hourlypoints<tab>-1,{

    So the script was working for SVN 17+ but when I downgraded back to 16+, I keep getting errors such as

     

    
    [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/abc/hourpoints2.txt', line '1'. Stopping...
     * w1=- script hourlypoints -1,{
     * w2=
     * w3=
     * w4=
    
    

     

    Here's the script I'm using.

     

    - script hourlypoints -1,{
    
    //--Start of the Script
    OnPCLoginEvent:
    attachnpctimer ""+strcharinfo(0)+"";
    initnpctimer;
    end;
    
    OnTimer60000:
    set @minute, @minute + 1;
    if(@minute == 20){
    set @minute,0;
    set .@point_amt, 2; //Points to get every hour (default: 10)
    if(checkVending()== 1) {
    dispbottom "The hourly points event haulted because you were vending, chatting, or idle.";
    stopnpctimer;
    end;
    }
    else {
    set #CASHPOINTS, #CASHPOINTS + .@point_amt;
    dispbottom "You received "+.@point_amt+" cash points for staying in-game for 20 minutes.";
    dispbottom "Current Balance = "+#CASHPOINTS+" Cash Points";
    set @consecutive_hour, @consecutive_hour + 1;
    }
    }
    if(@consecutive_hour == 1) {
    set @consecutive_hour,0;
    set .@cpoint_amt, 10; //Points to get for 12 Consecutive hours (default: 50)
    set #CASHPOINTS, #CASHPOINTS + .@point_amt;
    dispbottom "You received "+.@cpoint_amt+" bonus cash points for playing for 1 hour.";
    dispbottom "Current Balance = "+.@point_var$+" Cash Points";
    }
    stopnpctimer;
    initnpctimer;
    end;
    
    }
    //--End of the Script
    

     

    Hello, i'm pretty sure that the problem is that in the line 1 you did not tabbed, just hit tab betwin the spaces on the line 1 like this and you should not have any errors

    -<tab>script<tab>hourlypoints<tab>-1,{

  12. thanks sir, i can not test it right now but i will and if i find any error i will tell you, thanks again o:!

     

    ow sorry for answering until now

    i got error sir ):

    qcun.png

    code

    -	script	mvpinis	-1,{
    OnInit:
    setarray .Map$[0],"prontera","morocc","geffen","payon","alberta","aldebaran","xmas","comodo","yuno","amatsu","gonryun","umbala","louyang","ayothaya","eibroch","hugel","rachel","veins","moscovia";
    setarray .MVP[0],1511,1785,1630,2320,1039,1272,1719,1389,1115,1418,1252,1086,1885,1492,1734,1251,1688,2156,1373,1147,1087,1190,1038,1157,1159,1623,1583,1312,1685,1658;
    end;
    
    OnMinute00:
    .event_timer++;
    if( .event_timer % 8 == 0 ) end;
    killmonster .Map$[ .RandMap ],"All";
    set .RandMap,rand( getarraysize( .Map$ ) );
    for(set .@i,0; .@i<getarraysize(.MVP) set .@i,.@i+1){
    monster .Map$[ .RandMap ],0,0,"MVP Event",.MVP[ .@i ],1,strnpcinfo(0)+"::OnKilled"; }
    announce "Invasion MvP : "+getmonsterinfo( .MVP[ .RandMVP ],0 )+" han invadido "+.Map$[ .RandMap ]+" .",0;
    end;
    
    OnKilled:
    announce "Evento MvP : Todos los MvP han sido cazados",0;
    set mvp_point, mvp_point + 1;// +1 mvp point
    end;
    }
    

    ): thanks for reading me,i hope this will give enought information

  13. I found this mvp rank googling it but it is buggy x_x

     

    here is the script

     

    //= ---
    //= MvP Rank Improved v1.0
    //= ---
    //= This Rank will count every MvP you kill,
    //= to be more clear, will count every mob
    //= defined inside the array ".mobid[0]",
    //= so, if you add the poring ID will count in the rank
    //= you can modify and ad miniBoss because this array
    //= only have all MvPs, that's the idea, only MvPs...
    //= ---
    -	script	Rank MvP	-1,{
    OnInit: // Script Configuration
    setarray .mobid[0],1511,1647,1785,1630,1399,1039,1874,2068,1272,1719,1046,1389,1112,1115,1957,1418,1871,1252,1768,1086,1688,1646,
    				1373,1147,1059,1150,1956,2022,1087,1190,1038,1157,1159,1502,1623,1650,1583,1708,1312,1751,1685,1648,1917,1658; // MvP Ids
    set .a, 0; // Broadcast who killed the MvP and wich MvP and wick Map [0 Off - 1 On]
    set $@top, 5; // Max. Top Rank (Hihgly recommended between 5~10, more maybe bug the server (limited variables)
    end;
    
    OnNPCKillEvent: // Script execution
    for (set .@c, 0; .@c < getarraysize(.mobid); set .@c, .@c + 1)
    	if (killedrid == .mobid[.@c])
    		set .@s, 1; // If a MvP
    if (!.@s) end;
    if (.a) // If announce On
    	announce "El usuario [" +strcharinfo(0) +"] ha matado un [" +getmonsterinfo(killedrid,0) +"] en el mapa [" +strcharinfo(3) +"]",bc_blue|bc_all;
    set MvP, MvP + 1;
    callfunc ("MvPRank",MvP,strcharinfo(0));
    end;
    } // End Script
    
    izlude,89,130,5	script	MvP Rank	405,{ // NPC that will show the ranking
    mes "[^FF0000MvP ^0000FFRank ^00FF00Top ^FF0000" +$@top +"^000000]";
    for (set .@c, 0; .@c < $@top; set .@c, .@c + 1)
    	mes "Top ^FF0000" +(.@c + 1) +"^000000 ^0000FF" +getd("$topmvp" +.@c +"$") +"^000000 with ^FF0000" +getd("$topmvp" +.@c) +"^000000 MvP killed.";
    close;
    } // End if
    
    function	script	MvPRank	{
    set @mvptotal, getarg(0);
    set @nomb$, getarg(1);
    for (set .@c, 0; .@c < $@top; set .@c, .@c + 1) {
    	if (@mvptotal >= getd("$topmvp" +.@c)) {
    		if (strcharinfo(0) == getd("$topmvp" +.@c +"$")) {
    			setd "$topmvp" +.@c, @mvptotal;
    			setd "$topmvp" +.@c +"$", @nomb$;
    			return;
    		} else {
    			if (getd("$topmvp" +(.@c + 1) +"$") == "") {
    				setd "$topmvp" +.@c, @mvptotal;
    				setd "$topmvp" +.@c +"$", @nomb$;
    				return;
    			} else {
    				setd "$topmvp" +(.@c + 1), getd("$topmvp" +.@c);
    				setd "$topmvp" +(.@c + 1) +"$", getd("$topmvp$" +.@c);
    				setd "$topmvp" +.@c, @mvptotal;
    				setd "$topmvp" +.@c +"$", @nomb$;
    				return;
    			} // End if
    		} // End if
    	} // End if
    } // End loop
    return;
    } // End function
    

    i also do not know the autor

     

    the problem is, that sometimes the ranking shows a zero 0 instead of the name of the player on the ranking, here is the pick ):

    It goes like this (sorry i know it is in spanish)

    Top <position 1 to 5> <player name> with <number of mvps killed> MvP hunted

    daqi.png

    thanks in advance and sorry my english x_x

  14. with out dopel my attack is 184

     

    // Maximum atk speed. (Default 190, Highest allowed 199)
    max_aspd: 192

    that is how you have it

     

    change the doppelganger bonus script to (like sir emistry said)

    4142,Doppelganger_Card,Doppelganger Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAspdRate,100; },{},{}
    

    however, to increases the ASPD rate without doppelganger to your desired max out, you will have to increase the maxium stat bonus because with that agi and dex you won't reach the maxium aspd

     

    also there is a part that i can not remember but, it tells how the agi will influence the aspd

     

    hope it helps, take care :)

  15. it will end like this?

     

    -	script	mvpinis	-1,{
    OnInit:
    setarray .Map$[0],"prontera","morocc","geffen","payon","alberta","aldebaran","xmas","comodo","yuno","amatsu","gonryun","umbala","louyang","ayothaya","eibroch","hugel","rachel","veins","moscovia";
    setarray .MVP[0],1511,1785,1630,2320,1039,1272,1719,1389,1115,1418,1252,1086,1885,1492,1734,1251,1688,2156,1373,1147,1087,1190,1038,1157,1159,1623,1583,1312,1685,1658;
    end;
    
    OnMinute00:
    .event_timer++;
    if( .event_timer % 8 == 0 ) end;
    killmonster .Map$[ .RandMap ],"All";
    for(set .@i,0; .@i<getarraysize(.MVP) set .@i,.@i+1){
    monster .Map$[ .RandMap ],0,0,"MVP Event",.MVP[ .@i ],1,strnpcinfo(0)+"::OnKilled"; }
    announce "Invasion MvP : "+getmonsterinfo( .MVP[ .RandMVP ],0 )+" han invadido "+.Map$[ .RandMap ]+" .",0;
    end;
    
    OnKilled:
    announce "Evento MvP : Todos los MvP han sido cazados",0;
    set mvp_point, mvp_point + 1;// +1 mvp point
    end;
    }
    
×
×
  • Create New...