Jump to content

Skkont

Members
  • Posts

    36
  • Joined

  • Last visited

Posts posted by Skkont

  1. Hi,

     

    I have a problem with item_noequip.

     

    My server have mounts for rent. And i want disable it in BattleGround.

     

    So i made this script:

     

    - script nomountbg -1,{
    OnPCLoadMapEvent:
    OnInit:
         if ( strcharinfo(3) == "bat_b02" ) {
    if( ismounting() ) {
    setmounting;
    }
    end;
    }
    }
    

    For unmounting on enter to battleground. All OK. BUT... the item id 12622, for the mount, it delete when enter to bg.

     

    This my item_noequip.txt
     
    //----------------------------------------------------------------------------
    // Battlegrounds
    //----------------------------------------------------------------------------
    12218,8 //Assumptio_5_Scroll
    14590,8 //Pty_Assumptio_Scroll
    12622,8 // Mount
    

    Please help me :C

     

  2. Hi,

     

    I have a Flavius CTF script, it works well... but i want Block Skills and Item usage to a player...

     

     

    OnRedFlagCarrier:
    if($@RedFlagTaken == 1) {
        if($@Red_Flag_Carrier$ == strcharinfo(0)) {
            sc_end SC_CLOAKING;
            sc_end SC_CHASEWALK;
            sc_end SC_HIDING;
            sc_start 594,2000,1;
            emotion e_hlp,1;
            percentheal -7,0;
            specialeffect2 58;
            sleep2 2000;
            goto OnRedFlagCarrier;}}
    sc_end 594;    
    end;
    }
     
    I tried disable_items; but its not works... any help please?
  3. Hi,

     

    Well i make this script for valentine's day.

     

    The NPC is a basic Quest.

     

    But i have this error debug in the console:

    [Debug][0m: npc_scriptcont: Angel Love (sd->npc_id=110595426) is not 'Unknown NPC' (id=0).
    

    Also, a question.

     

    I need that this NPC summon monster in Jawaii at 12 clock, 15, 20, etc...

     

    Also need  to announce on the map how many mobs left in the map.

     

     

    This is the entire script:

    jawaii,206,293,6	script	Regalo	566,{
    
    	mes "[Regalo]";
    	mes "¡Aquí se guardan todos los chocolates!";
    	close;
    
    }
    
    jawaii,202,293,4	duplicate(Regalo)	Regalo#2	566
    
    
    jawaii,204,293,4	script	Angel Love	646,{
    
    		set .@name$, "[^FF0000Angel Love^000000]";
    		
    		if(yahablo == 1) goto L_goquest2;
    		if(yahablo == 2) goto L_goquest3;
    		mes .@name$;
    		mes "Holaa~~! <3";
    		mes "Soy el Angel que guarda y crea el amor en todos ustedes.";
    		next;
    		mes .@name$;
    		mes "He tenido que venir a tu mundo porque ha ocurrido algo terrible~~~~... :C";
    		next;
    		mes .@name$;
    		mes "Un malvado mago a encerrado los chocolates del amor dentro de unos cristales rojos con alas.";
    		next;
    		mes .@name$;
    		mes "Necesito esos chocolates...";
    		mes "Ummm tu pareces fuerte..";
    		mes "¿Podrías ayudarme?";
    		next;
    		mes .@name$;
    		mes "Di que sí por favoooorrr~~<3";
    		next;
    		mes .@name$;
    		mes "¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Síiiiiii~~<3?";
    		next;
    		menu "Yaaaaa Ok.",L_goquest,"Nope.",L_ggwp;
    		
    
    L_ggwp:
    		mes .@name$;
    		mes "¡¿No?!";
    		mes "¡¡¡¡Como quieras!!!!";
    		next;
    		emotion e_pif;
    		sc_start SC_COMA,60000,10;
    		sc_start SC_CURSE,60000,10;
    		sc_start SC_CONFUSION,60000,10;
    		sc_start SC_BLIND,60000,10;
    		sc_start SC_DECREASEAGI,60000,10;
    		sc_start SC_HALLUCINATION,60000,10;
    		close;
    
    		
    		
    L_goquest:
    
    		next;
    		emotion e_kis;
    		mes .@name$;
    		mes "¡Muchas gracias!";
    		next;
    		mes .@name$;
    		mes "Ahora te diré lo que tienes que traerme";
    		next;
    		mes .@name$;
    		mes "Necesito esos chocolates que te hablé.";
    		next;
    		mes .@name$;
    		mes "Necesito:";
    		mes "800 ^0055FFChocolate^000000.";
    		mes "800 ^0055FFWhite Chocolate^000000.";
    		next;
    		mes .@name$;
    		mes "No creas que no te daré un premio cuando me los pases...";
    		mes "Así que...";
    		next;
    		mes .@name$;
    		mes "¿Podrías traerme esos chocolates por favor?";
    		next;
    		mes .@name$;
    		mes "Di que sí por favoooorrr~~<3";
    		next;
    		mes .@name$;
    		mes "¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí? ¿Sí?";
    		next;
    		mes .@name$;
    		mes "¿Síiiiiiiiiiiiiiiiii~~~~~~<3<3<3<3?";
    		menu "¡Síiiiiiiiiiiiiiiiiiiiiiii!",-,"Mmmmmmmmmmm, NOPE.",L_ggwp;
    		next;
    		set yahablo, 1;
    		mes .@name$;
    		mes "¡Muchas gracias! <3!";
    		next;
    		mes .@name$;
    		mes "¡Ven a verme cuando tengas los chocolates!";
    		next;
    		mes .@name$;
    		mes "¡Nos vemos!";
    		mes "¡Eres una gran persona!";
    		next;
    		emotion e_kis;
    		specialeffect 509;
    		sc_start SC_BLESSING,0,10;
    		sc_start SC_INCREASEAGI,0,10;
    		sc_start SC_ASSUMPTIO,0,5;
    		close;
    		
    		
    L_goquest2:
    
    		next;
    		mes .@name$;
    		mes "Recuerda que necesito:";
    		mes "300 ^0055FFChocolate^000000.";
    		mes "300 ^0055FFWhite Chocolate^000000.";
    		next;
    		mes .@name$;
    		mes "¿Tienes los chocolates?";
    		next;
    		switch(select("Sí, los tengo todos.:No, aún no.")){
    		
    	case 1:
    	
    		next;
    		mes .@name$;
    		mes "Déjame revisar...";
    		next;
    		if ((countitem(558) < 300) || (countitem(561) < 300)) {
    		
    				next;
    				mes .@name$;
    				mes "¡Mentiroso! ¡No los tienes todos!";
    				next;
    				emotion e_pif;
    				sc_start SC_COMA,60000,10;
    				sc_start SC_CURSE,60000,10;
    				sc_start SC_CONFUSION,60000,10;
    				sc_start SC_BLIND,60000,10;
    				sc_start SC_DECREASEAGI,60000,10;
    				sc_start SC_HALLUCINATION,60000,10;
    				close;
    			}
    			
    		mes .@name$;
    		mes "¡! ¡Los tienes todos!";
    		mes "¡Excelente!";
    		next;
    		mes .@name$;
    		mes "¡Eres la mejor persona que he conocido!";
    		next;
    		mes .@name$;
    		mes "Toma, ¡Aquí está tu premio!";
    		next;
    		delitem 558,300;
    		delitem 561,300;
    		getitem 559,20;
    		getitem 560,20;
    		getitem 14546,50;
    		getitem 14548,50;
    		getitem 5393,1;
    		set yahablo, 2;
    		next;
    		mes .@name$;
    		mes "¿Te gustó el premio?";
    		mes "¡Esos pasteles los hice yo misma para ti! <3 <3 <3";
    		next;
    		mes .@name$;
    		mes "¡Feliz día de San Valentín!";
    		mes "¡Muchas gracias por ayudar!";
    		next;
    		mes .@name$;
    		mes "Un último premio de despedida.";
    		next;
    		mes .@name$;
    		mes "¡Adios!";
    		close;
    
    	case 2:
    	
    		next;
    		mes .@name$;
    		mes "Owwww....";
    		mes "Vuelve cuando los tengas";
    		next;
    		emotion e_kis;
    		close;
    
    		
    		
    	}
    	
    L_goquest3:
    
    		mes .@name$;
    		mes "¡Hola de nuevo!";
    		mes "Muchas gracias por haberme ayudado <3";
    		next;
    		emotion e_kis;
    		specialeffect 509;
    		sc_start SC_BLESSING,0,10;
    		sc_start SC_INCREASEAGI,0,10;
    		sc_start SC_ASSUMPTIO,0,5;
    		close;
    		
    }
    

    Thanks for advance.

     

     

     

    EDIT:

     

    NVM, I fixed it... I delete the first "next;" in L_goquest2.

     

     

    Other question..

     

    Why the characters "á" "¿" and "¡"

     

    Appears strange?

     

    Like:

     

    http://prntscr.com/2ski7i

     

    Ty for advance.

  4. Hi,
     
    I have a problem with this script, thi is the error:
     
       parse_line: expect command, missing function name or calling undeclared function
       750 :        areaannounce "quiz_02",20,334,43,357,"2 segundos...",8;
       751 :        sleep 1000;
       752 :        areaannounce "quiz_02",20,334,43,357,"1 segundo...",8;
       753 :        sleep 1000;
       754 :        areaannounce "quiz_02",20,334,43,357,"Adelante!! Destruye el Emperium!!",8;
    *  755 :        'm'obevent "quiz_02",32,346,"Emperium",1288,0,1,0,0,0,0,0,1,0,0,0,0,0,"MainEmpeTestA::OnEmpeBreak";
       756 :        set .Test_Init, gettimetick(0);
       757 :        set .Test_Step, 2; // Breaking!!

    I need to fix it please :c

     

    Thanks for advance.

  5. Thanks for the response.

     

    I already check the tabs and they are correct.

     

    The script send the same  error.

     

    :S

     

    I changed the name to "InformacionWoE" and still the same error.

     

     

    EDIT:

     

    I delete the entire comments of top of the script and now this error appears :S

     

    [Debug][0m: mapindex_name2id: Map "prontera" not found in index list!
    [Error][0m: npc_parsesrcfile: Unknown map 'prontera' in file 'npc/rou/woe.txt', line '1'. Skipping line...

    Please Help :c

  6. Hi, I have a problem with this Script.
     
     
    Here is the error:
     
    [Error][0m: npc_parsesrcfile: Unknown syntax in file 'npc/rou/woe.txt', line '1'. Stopping...
     * w1=//===== rAthena Script =======================================
     * w2=
     * w3=
     * w4=

    And this the complete Script:

    //===== rAthena Script =======================================
    //= Euphy's WOE Controller
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.5
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= A controller for War of Emperium designed for
    //= simplicity and ease of use.
    //= Many concepts taken from ToastOfDoom's script,
    //= and "rewards" function originally by Goddameit.
    //===== Additional Comments: =================================
    //= Be sure to disable the default agit controllers!
    //== npc\guild\agit_controller.txt
    //== npc\guild2\agit_start_se.txt
    //============================================================
    
    // Information NPC
    //============================================================
    prontera,144,170,4	script	Informacion WoE	835,{
    	doevent "WOE_CONTROL::OnMenu";
    	end;
    OnAgitStart:
    	while(agitcheck()) {
    		//specialeffect EF_BEGINSPELL6;
    		sleep 425;
    	}
    	end;
    }
    
    // Script Core
    //============================================================
    -	script	WOE_CONTROL	-1,{
    function Disp_Owner; function Add_Zero;
    
    OnInit:
    
    // -----------------------------------------------------------
    //  Configuration settings.
    // -----------------------------------------------------------
    
    	set .CastleWarp,0;		// 1: Always enable all castle warps. | 0: Warp only to active castles.
    	set .AutoKick,1;		// Automatically kick players from inactive castles during WOE? (1:yes / 0:no)
    	set .NoOwner,0; 		// Automatically kick players from unconquered castles outside of WOE? (1:yes / 0:no)
    	set .ExitWarp,0;		// Warp all players from castles when WOE ends? (1:yes / 0:no)
    	set .GMAccess,99;		// GM level required to access Session Manager.
    
    // -----------------------------------------------------------
    //  Reward options.
    // -----------------------------------------------------------
    //  [1] Enable rewards.
    //  [2] Mail all rewards.
    //      - If not set, players receive items in their inventory.
    //      - Only ONE item can be sent via mail, plus Zeny.
    //      - Note that offline players do NOT receive rewards.
    //  [4] Only reward Guild Masters.
    //      - If not set, all guild members are rewarded.
    //      - If mailing is enabled (option 2), offline Guild Masters WILL receive rewards.
    //  [8] Duplicate IP check.
    //      - Members in a guild with the same IP address are not rewarded.
    //      - If Guild Masters is enabled (option 4), this feature is not used.
    // -----------------------------------------------------------
    
    	// Combine values as needed (e.g. 1|8 = 1+8 = 9).
    	set .Options, 1|8;
    
    	// Rewards per castle.
    	// -- when given directly: <itemID>,<amount>{,<itemID>,<amount>,...}
    	// -- via mail (option 2): <itemID>,<amount>,<Zeny>
    	setarray .Reward[0],14001,1;
    
    // -----------------------------------------------------------
    //  Constants (leave this section alone).
    // -----------------------------------------------------------
    
    	setarray .Castles$[0],
    		"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",
    		"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",
    		"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",
    		"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",
    		"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05",
    		"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05";
    	setarray .EndLabel$[0],"ar01","ar02","ar03","ar04","ar05","sc01","sc02","sc03","sc04","sc05";
    	setarray .Days$[0],"Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado";
    	setarray .Regions$[0],"Prontera","Payon","Geffen","Aldebaran","Arunafeltz","Schwaltzvalt";
    	setarray .Map$[0],"prt_gld","pay_gld","gef_fild13","alde_gld","aru_gld","sch_gld";
    	setarray .MapX[0],134,240,153,111,208,121,295,317,140,204,214,308,143,193,305,48, 95,142,239,264,158,83, 68,299,292,293,288, 97,137, 71;
    	setarray .MapY[0], 65,128,137,240,240,233,116,293,160,266, 75,240,240,278, 87,83,249, 85,242, 90,272,47,155,345,107,100,252,196, 90,315;
    
    // -----------------------------------------------------------
    
    	set .Size, getarraysize($WOE_CONTROL);
    	if (.AutoKick || .NoOwner)
    		for(set .@i,0; .@i<30; set .@i,.@i+1) {
    			setmapflag .Castles$[.@i], mf_loadevent;
    			setd "."+.Castles$[.@i], .@i;
    		}
    	if (!agitcheck() && !agitcheck2()) sleep 4000;
    	set .Init,1;
    
    OnMinute00:
    	freeloop(1);
    	if (agitcheck() || agitcheck2()) {
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) == $WOE_CONTROL[.@i+2]) {
    			OnWOEEnd:
    				announce "¡La War Of Emperium ha terminado!",bc_all|bc_woe;
    				AgitEnd; AgitEnd2;
    				sleep 1000;
    				for(set .@j,0; .@j<30; set .@j,.@j+1) {
    					if (.Active[0]&(1<<.@j)) Disp_Owner(.Castles$[.@j],1);
    					if (.ExitWarp) maprespawnguildid .Castles$[.@j],0,3;
    				}
    				if (.Options&1 && .Active[0] && .ForceEnd != 2) callsub OnReward, .Active[0];
    				deletearray .Active[0],2;
    				if (.ForceEnd) { set .ForceEnd,0; end; }
    				break;
    			}
    	}
    	if ((!agitcheck() && !agitcheck2()) || .Init) {
    		if (!agitcheck() && !agitcheck2()) set .Init,0;
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) {
    				deletearray .Active[0],2;
    				set .Active[0], $WOE_CONTROL[.@i+3];
    				if (.Init) { AgitEnd; AgitEnd2; }
    				else announce "¡La War Of Emperium ha comenzado!",bc_all|bc_woe;
    				sleep 1000;
    				AgitStart; AgitStart2;
    				for(set .@j,0; .@j<30; set .@j,.@j+1) {
    					if (.Active[0]&(1<<.@j)) {
    						if (!.Init) Disp_Owner(.Castles$[.@j],0);
    						set .Active[1], .Active[1] | (1<<((.@j/5)+1));
    					} else {
    						if (.@j<20) {
    							donpcevent "Agit#"+.Castles$[.@j]+"::OnAgitEnd";
    							killmonster .Castles$[.@j], "Agit#"+.Castles$[.@j]+"::OnAgitBreak";
    						} else {
    							donpcevent "Manager#"+.Castles$[.@j]+"::OnAgitEnd2";
    							killmonster .Castles$[.@j], "Steward#"+.EndLabel$[.@j-20]+"::OnStartArena";
    						}
    					}
    				}
    				break;
    			}
    	}
    	set .Init,0;
    	end;
    
    function Disp_Owner {
    	set .@o, getcastledata(getarg(0),1);
    	if (.@o) announce "El castillo ["+getcastlename(getarg(0))+"] "+((getarg(1))?"ha sido conquistado":"le pertenece a")+" ["+getguildname(.@o)+"] guild.",bc_all|bc_woe;
    	else announce "El castillo ["+getcastlename(getarg(0))+"] esta desocupado.",bc_all|bc_woe;
    	return;
    }
    function Add_Zero {
    	return ((getarg(0)<10)?"0":"")+getarg(0)+(getarg(1,0)?".":":")+"00";
    }
    
    OnReward:
    	set .@sql$, ((.Options&4)?"position = 0":"online = 1");
    	if (.Options&2) set .@str$,gettimestr("%B %d, %Y",21);
    	freeloop(1);
    	for(set .@i,0; .@i<30; set .@i,.@i+1)
    		if (getarg(0)&(1<<.@i)) {
    			set .@gid, getcastledata(.Castles$[.@i],1);
    			if (!.@gid) continue;
    			set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid);
    			for(set .@j,0; .@j<.@size; set .@j,.@j+1) {
    				if (.Options&8 && !(.Options&4)) {
    					set .@ip$, replacestr(getcharip(.@aid[.@j]),".","a");
    					if (getd(".@ip_"+.@i+"_"+.@ip$)) continue;
    					setd ".@ip_"+.@i+"_"+.@ip$,1;
    				}
    				if (.Options&2) {
    					query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+
    					          "'no-reply',"+.@cid[.@j]+",'** Premio WoE: "+getcastlename(.Castles$[.@i])+" **',"+
    					          "'Hey,% % ¡Felicidades!% Tu Guild a conquistado un castillo en WoE% en el % "+.@str$+".% % % % % [ Tu premio está adjunto. ]',"+
    					          .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))");
    					if (!getd(".@str_"+.@cid[.@j]) && isloggedin(.@aid[.@j],.@cid[.@j])) {
    						setd ".@str_"+.@cid[.@j],1;
    						message rid2name(.@aid[.@j]),"¡Haz recibido un mail! Relogea para que se actualice tu lista de mails.";
    					}
    				} else if (isloggedin(.@aid[.@j])) {
    					for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2)
    						getitem .Reward[.@k], .Reward[.@k+1], .@aid[.@j];
    					message rid2name(.@aid[.@j]),"Haz sido premiado por conquistar el castillo "+getcastlename(.Castles$[.@i])+".";
    				}
    			}
    		}
    	if (.Options&2) query_sql("UPDATE `mail` SET message = REPLACE(message,'%',CHAR(13)) WHERE send_name = 'no-reply'");
    	return;
    
    OnPCLoadMapEvent:
    	if (!compare(strcharinfo(3),"g_cas")) end;
    	if (((.AutoKick && .Active[0]) || (.NoOwner && !getcastledata(strcharinfo(3),1))) && !(.Active[0]&(1<<getd("."+strcharinfo(3))))) {
    		if (getcharid(2) && getcastledata(strcharinfo(3),1) == getcharid(2)) end;
    		sleep2 1000;
    		message strcharinfo(0), getcastlename(strcharinfo(3))+" is currently inactive.";
    		sleep2 5000;
    		if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0;
    	}
    	end;
    
    OnMenu:
    while(1) {
    	mes "[WOE Information]";
    	if (agitcheck() || agitcheck2()) {
    		if (.Active[0]) {
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    				if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) {
    					set .@i, $WOE_CONTROL[.@i+2];
    					break;
    				}
    			mes "La War of Emperium esta ^0055FFactiva^000000 hasta ^FF0000"+Add_Zero(.@i)+"^000000 en las siguientes regiones:";
    			mes " ";
    			for(set .@i,0; .@i<6; set .@i,.@i+1)
    				if (.Active[1]&(1<<(.@i+1))) mes " > ^777777"+.Regions$[.@i]+"^000000";
    		} else
    			mes "La War of Emperium esta ^0055FFactiva^000000.";
    	} else {
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if ((gettime(4) == $WOE_CONTROL[.@i] && gettime(3) <= $WOE_CONTROL[.@i+1]) || gettime(4) < $WOE_CONTROL[.@i]) {
    				setarray .@time[0],$WOE_CONTROL[.@i],$WOE_CONTROL[.@i+1];
    				break;
    			}
    		if (!getarraysize(.@time))
    			setarray .@time[0],$WOE_CONTROL[0],$WOE_CONTROL[1];
    		mes "La War of Emperium esta ^777777inactiva^000000.";
    		if (.Size) {
    			mes " ";
    			mes "La proxima WoE sera";
    			mes "el ^0055FF"+.Days$[.@time[0]]+"^000000 a las "+Add_Zero(.@time[1])+"^000000. (@time)";
    		}
    	}
    	next;
    	switch(select(""+((.CastleWarp || .Active[1])?" ~ Warp a los castillos...":"")+": ~ Ver calendario...: ~ Ver los propietarios de castillos...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":" ~ Manejar sesiones...")+": ~ ^777777Cancelar^000000")) {
    	case 1:
    		if (.CastleWarp) set .@clr$,"^0055FF";
    		set .@menu$,"";
    		for(set .@i,0; .@i<6; set .@i,.@i+1) {
    			if (.CastleWarp || .Active[1]&(1<<(.@i+1)))
    				set .@menu$, .@menu$+" ~ "+((.Active[1]&(1<<(.@i+1)))?.@clr$:"^777777")+.Regions$[.@i]+" Castillos^000000";
    			set .@menu$, .@menu$+":";
    		}
    		set .@i, select(.@menu$)-1;
    		set .@menu$,"";
    		for(set .@j,.@i*5; .@j<(.@i*5)+5; set .@j,.@j+1) {
    			if (.CastleWarp || .Active[0]&(1<<.@j))
    				set .@menu$, .@menu$+" ~ "+((.Active[0]&(1<<.@j))?.@clr$:"^777777")+getcastlename(.Castles$[.@j])+"^000000";
    			set .@menu$, .@menu$+":";
    		}
    		set .@j, select(.@menu$)-1;
    		warp .Map$[.@i],.MapX[(.@i*5)+.@j],.MapY[(.@i*5)+.@j];
    		close;
    	case 2:
    		mes "[Calendario]";
    		if (.Size) {
    			freeloop(1);
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4) {
    				mes "> ^FF0000"+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1])+"-"+Add_Zero($WOE_CONTROL[.@i+2])+")^000000";
    				for(set .@j,0; .@j<30; set .@j,.@j+1)
    					if ($WOE_CONTROL[.@i+3]&(1<<.@j)) mes "  ~ "+getcastlename(.Castles$[.@j])+" ^777777("+.Castles$[.@j]+")^000000";
    				if (.@i+4 < .Size) mes " ";
    			}
    			freeloop(0);
    		} else
    			mes "Sin tiempos configurados.";
    		next;
    		break;
    	case 3:
    		mes "[Propietarios de Castillos]";
    		for(set .@i,0; .@i<6; set .@i,.@i+1) {
    			set .@k, .@i*5;
    			mes "> ^FF0000"+.Regions$[.@i]+"^000000";
    			for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) { 
    				set .@t, getcastledata(.Castles$[.@j],1);
    				mes "  ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777no conquistado")+"^000000";
    			}
    			if (.@i < 5) mes " ";
    		}
    		next;
    		break;
    	case 4:
    	while(1) {
    		mes "[Asistente de Sesion]";
    		mes "Existen ^0055FF"+(.Size/4)+" sesion(es)^000000 configuradas.";
    		mes "¿Qué quieres hacer?";
    		next;
    		switch(select(" ~ Agregar una sesion...: ~ Borrar una sesion...: ~ Recargar ajustes...:"+((agitcheck() || agitcheck2())?" ~ Terminar las sesiones WoE...":"")+": ~ ^777777Ir atras^000000")) {
    		case 1:
    			mes "[Asistente de Sesion]";
    			if (.Size > 127) {
    				mes "Haz alcanzado el maximo de 32 sesiones.";
    				next;
    				break;
    			}
    			mes "Selecciona un dia.";
    			next;
    			set .@Day, select(" ~ "+implode(.Days$,": ~ "))-1;
    			mes "[Nueva Sesion]";
    			mes "Seleciona la hora de comienzo para ^0055FF"+.Days$[.@Day]+"^000000.";
    			next;
    			set .@menu$,"";
    			for(set .@i,0; .@i<23; set .@i,.@i+1)
    				set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":";
    			set .@Start, select(.@menu$)-1;
    			mes "[Nueva Sesion]";
    			mes "Seleciona la hora de termino para ^0055FF"+.Days$[.@Day]+"^000000.";
    			next;
    			set .@menu$,"";
    			for(set .@i,.@Start+1; .@i<24; set.@i,.@i+1)
    				set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":";
    			set .@End, select(.@menu$)+.@Start;
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    				if (.@Day == $WOE_CONTROL[.@i] &&
    				   ((.@Start >= $WOE_CONTROL[.@i+1] && .@Start < $WOE_CONTROL[.@i+2]) ||
    				    (.@End > $WOE_CONTROL[.@i+1] && .@End <= $WOE_CONTROL[.@i+2]) ||
    				    (.@Start <= $WOE_CONTROL[.@i+1] && .@End >= $WOE_CONTROL[.@i+2]))) {
    					mes "[Nueva Sesion]";
    					mes "Los horarios escogidos topan con otros.";
    					next;
    					set .@d,1;
    					break;
    				}
    			if (.@d) { set .@d,0; break; }
    			set .@Castle,0;
    			while(1) {
    				mes "[Nueva Sesion]";
    				mes "^0055FF"+.Days$[.@Day]+" ("+Add_Zero(.@Start)+"-"+Add_Zero(.@End)+")^000000";
    				mes " > Castillos:";
    				if (!.@Castle)
    					mes "   ~ ^777777(ningundo seleccionado)^000000";
    				else for(set .@i,0; .@i<30; set .@i,.@i+1)
    					if (.@Castle&(1<<.@i)) mes "   ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")";
    				next;
    				set .@menu$,((.@Castle)?" ~ ^FF0000Finalizado...^000000":"")+":";
    				for(set .@i,0; .@i<30; set .@i,.@i+1)
    					set .@menu$, .@menu$+" ~ "+((.@Castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:";
    				set .@i, select(.@menu$)-1;
    				if (.@i)
    					set .@Castle, .@Castle^(1<<(.@i-1));
    				else {
    					mes "[Nueva Sesion]";
    					mes "¿Estas seguro?";
    					next;
    					switch(select(" ~ ^0055FFAgregar sesion...^000000: ~ Continuar seleccionando castillos...: ~ ^777777Cancel^000000")) {
    					case 1:
    						for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    							if ((.@Day == $WOE_CONTROL[.@i] && .@End <= $WOE_CONTROL[.@i+1]) || .@Day < $WOE_CONTROL[.@i]) {
    								set .@d,1;
    								break;
    							}
    						if (!.@d) { set .@d,1; set .@i,.Size; }
    						copyarray $WOE_CONTROL[.@i+4], $WOE_CONTROL[.@i], .Size-.@i;
    						setarray $WOE_CONTROL[.@i], .@Day, .@Start, .@End, .@Castle;
    						set .Size, getarraysize($WOE_CONTROL);
    					case 3:
    						mes "[Nueva Sesion]";
    						mes ((.@d)?"Sesion agregada.":"Cancelada.");
    						next;
    						set .@d,1;
    					case 2:
    						break;
    					}
    					if (.@d) { set .@d,0; break; }
    				}
    			}
    			break;
    		case 2:
    			mes "[Eliminar Sesion]";
    			if (!.Size) {
    				mes "No existen sesiones configuradas.";
    				next;
    				break;
    			}
    			mes "Selecciona una sesion para borrar.";
    			next;
    			set .@menu$,"";
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    				set .@menu$, .@menu$+" ~ "+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1],1)+"-"+Add_Zero($WOE_CONTROL[.@i+2],1)+"):";
    			set .@menu$, .@menu$+" ~ ^777777Cancelar^000000";
    			set .@i, select(.@menu$)-1;
    			if (.@i == (.Size/4)) break;
    			mes "[Eliminar Sesion]";
    			mes "Eliminar esta sesion ^0055FF"+.Days$[$WOE_CONTROL[.@i*4]]+"^000000?";
    			mes "No se podrá deshacer.";
    			next;
    			set .@j, select(" ~ ^FF0000Borrar sesion...^000000: ~ ^777777Cancelar^000000");
    			mes "[Eliminar Sesion]";
    			if (.@j == 2)
    				mes "Cancelado.";
    			else {
    				deletearray $WOE_CONTROL[.@i*4],4;
    				set .Size, getarraysize($WOE_CONTROL);
    				mes "Sesion eliminada.";
    			}
    			next;
    			break;
    		case 3:
    			mes "[Recargar Ajustes]";
    			mes "This will trigger all events related to new session configurations, if any.";
    			if (agitcheck() || agitcheck2()) {
    				mes " ";
    				mes "Be aware that this will disrupt the current WOE session.";
    			}
    			next;
    			set .@i, select(" ~ ^0055FFReload settings...^000000: ~ ^777777Cancel^000000");
    			mes "[Reload Settings]";
    			if (.@i == 2) mes "Cancelled.";
    			else {
    				set .Init,1;
    				donpcevent "WOE_CONTROL::OnMinute00";
    				mes "Variables have been re-initialized.";
    			}
    			next;
    			break;
    		case 4:
    			mes "[Force Agit End]";
    			if (!agitcheck() && !agitcheck2())  {
    				mes "WOE has already ended.";
    				next;
    				break;
    			}
    			mes "This command will safely execute all AgitEnd events.";
    			mes " ";
    			mes "Kill the current WOE session?";
    			next;
    			set .@i, select(" ~ ^FF0000End session...^000000:"+((.Options&1)?" ~ ^FF0000End session without rewards...^000000":"")+": ~ ^777777Cancel^000000");
    			mes "[Force Agit End]";
    			if (.@i == 3)
    				mes "Cancelled.";
    			else {
    				set .ForceEnd, .@i;
    				donpcevent "WOE_CONTROL::OnWOEEnd";
    				mes "WOE session terminated.";
    			}
    			next;
    			break;
    		case 5:
    			set .@d,1; break;
    		}
    		if (.@d) { set .@d,0; break; }
    		} break;
    	case 5:
    		close;
    	} }
    }
    

     

    Please Help Me, ty for advance :D

  7. Hi,

     

    I want make the Poring Coin Usable for Cash Points, so I change this in the item_db.txt

    7539,Poring_Coin,Poring Coin,2,0,,0,,,,,,,,,,,,,{ set #CASHPOINTS, #CASHPOINTS + 50; specialeffect2 590 + rand ( 3, 8 ); dispbottom "[Cash] Felicidades "+strcharinfo(0)+" ahora tienes "+#CASHPOINTS+" de Cash."; },{},{}
    

    Always is Fine, i created this item in my GM account and it works. BUT

     

    When I double clicked this item with my Normal Account, I cant double clicked it. 

     

    Is in the "I" tab the Coin, but I cant use it for the cash, Only I can use with my GM account.

     

    Also, i tried with the "callfunc"

    7539,Poring_Coin,Poring Coin,3,0,,0,,,,,,,,,,,,,{ callfunc "cash7539"; },{},{}

    And the function:

     

    function script cash7539 {
    
    
    set #CASHPOINTS, #CASHPOINTS + 50;
    specialeffect2 590 + rand ( 3, 8 );
    dispbottom "[Cash] Felicidades "+strcharinfo(0)+" ahora tienes "+#CASHPOINTS+" de Cash.";
    end;
    
    
    }
     
    But the same, only can use with GM Account.

     

    Thanks for advance.

  8. Hi eveyone,

     

    I cant make this script :C

     

    I see the new vip system of rAthena, in the login table have vip_time, this is in minutes, i think.

     

    So, on rAthena exist several VIP Script, but my script is for the new vip system, in the vip_time.

     

    Well, 

     

    The NPC give VIP Time for X Cash.

     

    For example:

     

    7 days of VIP for X Cash, 14 Days of VIP for X Cash, 30 days of VIP for X Cash.

     

    Also, a GM menu, this have the options for: Add or Remove VIP days for a player o account, Remove VIP of a account, List of VIP accounts of the server.

     

    And a player menu, this have: Add VIP Days, for example: If the Player X, have 20 days left of VIP, and he purchase 30 days more, then the Player X have 50 days left of VIP. And, a option in the menu to see how many days have left of VIP.

     

     

    Ty for advance.

     

    :D!

  9. He visto sistemas VIP por rathena que no me sirven porque sólo quiero algo bastante simple, y la verdad no sé si acá me pueden ayudar o guiar del cómo tengo que hacer el script.

     

    He visto en la DB que existe en la tabla login vip_time, y creo que es en minutos.

     

    La cosa es simple, quiero hacer un script y no sé como hacerlo.

     

    La idea es que sea un NPC que pida Cash Points por la membresia VIP.

     

    Por ejemplo cantidad de cash X por 7 días, cantidad de cash X por 14 días, cantidad de cash X por 30 días.

     

    Que también tenga un menu GM que estos pueden quitar el vip, modificar los dias de VIP y agregar una cuenta o jugador para que sea VIP. Esto no sé si se pueda hacer mediante el nick del jugador, o se tiene que tener el nombre de la cuenta en específico.

     

    Menu de jugador para que vea cuantos días le quedan de VIP y que pueda aumentarlos, es decir, Si un jugador pide los 30 días, y luego, cuando le quedan 20 días, pide otra vez 30 días, estos 30 días se le suman a los anteriores, teniendo así 50 días totales de VIP, y así sucesivamente.

     

     

    Eso sería, Saludos y muchas gracias!

     

     

    • Upvote 1
×
×
  • Create New...