Jump to content

eloscar23

Members
  • Posts

    49
  • Joined

  • Last visited

Posts posted by eloscar23

  1. 10 hours ago, Rynbef said:

    It's could be a part of the aura (aura circle). U can change the max level or disable it on your conf/battle/client.conf

    But first try /aura maybe it will removed and then u know it's from the aura.

    Maybe u need a diff to disable it. Or src mod. Or change to a level player unable to get.

     

    Rynbef~

    What should I remove on the diff or how to disable it on battleconf  I DID THIS 


    // Maximum allowed 'level' value that can be sent in unit packets.
    // Use together with the aura_lv setting to tell when exactly to show the aura.
    // NOTE: You also need to adjust the client if you want this to work.
    // NOTE: Default is 99. Values above 127 will probably behave incorrectly.
    // NOTE: If you don't know what this does, don't change it!!!
    max_lv: 350

    // Level required to display an aura.
    // NOTE: This assumes that sending max_lv to the client will display the aura.
    // NOTE: aura_lv must not be less than max_lv.
    // Example: If max_lv is 99 and aura_lv is 150, characters with level 99~149
    //          will be sent as being all level 98, and only characters with level
    //          150 or more will be reported as having level 99 and show an aura.
    aura_lv: 350
     

  2. On 11/27/2023 at 12:41 AM, Emistry said:
    *gettimetick(<tick type>)
    
    This function will return a tick depending on <tick type>:
     0: The server's tick, a measurement in milliseconds used by the server's timer
        system. This tick is an unsigned int which loops every ~50 days.
     1: The time, in seconds, since the start of the current day.
     2: The system time in UNIX epoch time, or the number of seconds elapsed since
        January 1st, 1970. Useful for reliably measuring time intervals.

    it return your server time tick, not your npc time

    I do not understand? it takes the exact time since I interact to npc or whatever holding the variable?

  3. On 4/16/2020 at 9:56 AM, Patskie said:

    You can try 

    prontera,150,150,6	script	Timer	876,{
    	function Time_Left;
    	
    	mes "Hi Pogi";
    	switch(select((a?"":"Initialization")+":"+(!a||b?"":"Stop")+":"+(!a||!b?"":"Start")+":Settings")) {
    		case 1:
    			a = gettimetick(2); // start time
    			addtimer (Time_Left() * 1000), strnpcinfo(0) + "::OnTimeUp";
    			c = Time_Left();
    			break;
    		case 2:
    			b = gettimetick(2); // stop time
    			deltimer strnpcinfo(0) + "::OnTimeUp";
    			break;
    		case 3:
    			c -= b - a;
    			addtimer Time_Left((gettimetick(2) - (b - a)), gettimetick(2), c) * 1000, strnpcinfo(0) + "::OnTimeUp";
    			a = gettimetick(2);
    			b = 0;
    			break;
    		case 4:
    		default: break;
    	}
    	close;
    		
    	OnTimeUp:
    		dispbottom "Done!";
    		a = 0;
    		b = 0;
    		c = 0;
    		end;
    		
    	OnPCLogoutEvent:
    		if (!a || b) end;
    		b = gettimetick(2);
    		end;
    		
    	OnPCLoginEvent:
    		if (!a || !b) end;
    		c -= b - a;
    		addtimer Time_Left((gettimetick(2) - (b - a)), gettimetick(2), c) * 1000, strnpcinfo(0) + "::OnTimeUp";
    		a = gettimetick(2);
    		b = 0;
    		end;
    		
    	OnCmd:
    		if (!a)
    			dispbottom "No timer set";
    		else 
    			dispbottom "Timer Left : " + Time_Left(a, (!b?gettimetick(2):b), (!c?.time_in_seconds:c));
    		end;
    		
    		
    	// start = start time 
    	// end = end time
    	// time limit = remaining time
    	function Time_Left {
    		.@start = getarg(0, 0);
    		.@end = getarg(1, gettimetick(2));
    		.@time_limit = getarg(2, .time_in_seconds);
    		return !.@start ? .time_in_seconds : (.@time_limit - (.@end - .@start));
    	}
    	
    	OnInit:
    		.time_limit = 1; // 3 minutes
    		.time_in_seconds = .time_limit * 60;
    		bindatcmd "timer", strnpcinfo(0) + "::OnCmd";
    		//uncomment below if you want timers to reset upon server restart / npc reload
    		/*addrid(0);
    		a = 0;
    		b = 0;
    		c = 0;
    		deltimer strnpcinfo(0) + "::OnTimeUp";*/
    		end;
    }

    Tho i haven't tested them fully 

    Hello, could I sent you a request on discord Santana#5322 I have a few questions about this script please.

     

  4. 17 minutes ago, Winterfox said:

    I didn't test it, but I would do write the kind of script you want to do like this:
     

    prontera,146,161,5    script    CheckRank    118,{
            mes .npc_name;        
            mes "Hello, this is a MvP Ranker";
            mes "Would you like to know the MvP Ranking?";
            next;
            if(select("Top 20:Leave") == 2) {
                mes.npcranker;
                mes "Bye";
                close;
            }
    
            mes.npc_name;
            for(.@i = 0; .@i < 20; .@i++)
                mes "The Top " + (.@i + 1) + " MVP: " + $top_mvp_names$[.@i] + " Killed: " + $top_mvp_kills$[.@i] + ".";
            close;
    
        OnInit:
            .npc_name = "[MvP Ranker]";
    }
    
    
    -    script    MVP_RANKER    FAKE_NPC,{
        OnNPCKillEvent:
            if(killedrid != 1002) end;
    
            mvp_rank_points++;
            dispbottom("You have obtained 1 Rank Point. You now have " + mvp_rank_points + ".");
            callfunc("updateMVPRank", strcharinfo(0), mvp_rank_points);
    }
    
    function    script    updateMVPRank    {
        .@curr_name$ = getarg(0);
        .@curr_kills = getarg(1);
    
        for(.@i = 0; .@i < 20; .@i++) {
            if($top_mvp_kills$[.@i] < .@curr_kills && $top_mvp_names$[.@i] != .@curr_name$) {
                .@new_name = .@curr_name;
                .@new_kills = .@curr_kills;
    
                .@curr_name = $top_mvp_names$[.@i];
                .@curr_kills = $top_mvp_kills$[.@i];
    
                $top_mvp_names$[.@i] = .@new_name;
                $top_mvp_kills$[.@i] = .@new_kills;
    
                continue;
            }
    
            if($top_mvp_kills$[.@i] < .@curr_kills) {
                $top_mvp_kills$[.@i] = .@curr_kills;
                break;
            }
        }
    }

     

    can you explain it for me in text the Npc? I would like to understand the function part.

  5. 9 minutes ago, Winterfox said:

    I didn't test it, but I would do write the kind of script you want to do like this:
     

    prontera,146,161,5    script    CheckRank    118,{
            mes .npc_name;        
            mes "Hello, this is a MvP Ranker";
            mes "Would you like to know the MvP Ranking?";
            next;
            if(select("Top 20:Leave") == 2) {
                mes.npcranker;
                mes "Bye";
                close;
            }
    
            mes.npc_name;
            for(.@i = 0; .@i < 20; .@i++)
                mes "The Top " + (.@i + 1) + " MVP: " + $top_mvp_names$[.@i] + " Killed: " + $top_mvp_kills$[.@i] + ".";
            close;
    
        OnInit:
            .npc_name = "[MvP Ranker]";
    }
    
    
    -    script    MVP_RANKER    FAKE_NPC,{
        OnNPCKillEvent:
            if(killedrid != 1002) end;
    
            mvp_rank_points++;
            dispbottom("You have obtained 1 Rank Point. You now have " + mvp_rank_points + ".");
            callfunc("updateMVPRank", strcharinfo(0), mvp_rank_points);
    }
    
    function    script    updateMVPRank    {
        .@curr_name$ = getarg(0);
        .@curr_kills = getarg(1);
    
        for(.@i = 0; .@i < 20; .@i++) {
            if($top_mvp_kills$[.@i] < .@curr_kills && $top_mvp_names$[.@i] != .@curr_name$) {
                .@new_name = .@curr_name;
                .@new_kills = .@curr_kills;
    
                .@curr_name = $top_mvp_names$[.@i];
                .@curr_kills = $top_mvp_kills$[.@i];
    
                $top_mvp_names$[.@i] = .@new_name;
                $top_mvp_kills$[.@i] = .@new_kills;
    
                continue;
            }
    
            if($top_mvp_kills$[.@i] < .@curr_kills) {
                $top_mvp_kills$[.@i] = .@curr_kills;
                break;
            }
        }
    }

     

    I fixed now this is the problem. image.png.683ae2101e5992797cd9da77adfa2147.png it overwritte the previous one. here is the new script 

     

    prontera,146,161,5    script    CheckRank    118,{
            

                    
            mes "Hello, this is an Npc Ranker";
            mes "Would you like to know the MvP Ranking?";
            next;
            switch(select("Top 20:Leave")){

            case 1:
            mes "Top 1 is : [" +$n1$ +"], Kills : [" +$k1 +"] MVPS";
            mes "Top 2 is : [" +$n2$ +"], Kills : [" +$k2 +"] MVPS";
            mes "Top 3 is : [" +$n3$ +"], Kills : [" +$k3 +"] MVPS";
            mes "Top 4 is : [" +$n4$ +"], Kills : [" +$k4 +"] MVPS";
            mes "Top 5 is : [" +$n5$ +"], Kills : [" +$k5 +"] MVPS";
            mes "Top 6 is : [" +$n6$ +"], Kills : [" +$k6 +"] MVPS";
            mes "Top 7 is : [" +$n7$ +"], Kills : [" +$k7 +"] MVPS";
            mes "Top 8 is : [" +$n8$ +"], Kills : [" +$k8 +"] MVPS";
            mes "Top 9 is : [" +$n9$ +"], Kills : [" +$k9 +"] MVPS";
            mes "Top 10 is : [" +$n10$ +"], Kills : [" +$k10 +"] MVPS";
            close;
            break;

            case 2:
            mes "Have a nice day";
            mes "bye";
            close;
            end;

            }// end switch

    }// end npc

    -    script    count    -1,{
        OnNPCKillEvent:
        if(killedrid == 1002){
            set @rankp, @rankp + 1;
            dispbottom "You have obtained 1 Rank Point, now you have "+@rankp+" .";
            callfunc ("mvpladder",@rankp,strcharinfo(0));
        }


    }


    function    script    mvpladder    {
        set @puntos, getarg(0);
        set @nombres$, getarg(1);

        if (@puntos > $k1) {
            // Si el nombre se repite, eso se verifica con strcharinfo
            if (@nombres$ == strcharinfo(0)) {
                set $k1, @puntos;
                set $n1$, @nombres$;
            } else {
                // Guardo el top1 anterior
                set @oldn1$, $n1$;
                set @oldk1, $k1;

                // Ahora el top 2 se vuelve top1
                set $k1, $k2;
                set $n1$, $n2$;

                // Ahora el top1 que teníamos guardado se vuelve top2
                set $k2, @oldk1;
                set $n2$, @oldn1$;
            }
        } else if (@puntos > $k2) {
            if (@nombres$ == strcharinfo(0)) {
                set $k2, @puntos;
                set $n2$, @nombres$;
            } else {
                // Guardo el top2 anterior
                set @oldn2$, $n2$;
                set @oldk2, $k2;

                // El nuevo top2 toma el lugar del antiguo top2
                set $k2, $k3;
                set $n2$, $n3$;

                // El antiguo top2 se convierte en el nuevo top3
                set $k3, @oldk2;
                set $n3$, @oldn2$;
            }
        }


     

  6. Hello, here is the issues.

    When example top 2 reaches top 1 his name still stays on top 2 when he goes and is added on top 1.image.png.bad054e6e59917a5318c1706b0721ad8.png

    here the script:

    prontera,146,161,5    script    CheckRank    118,{
            

                    
            mes "Hello, this is an Npc Ranker";
            mes "Would you like to know the MvP Ranking?";
            next;
            switch(select("Top 20:Leave")){

            case 1:
            mes "Top 1 is : [" +$n1$ +"], Kills : [" +$k1 +"] MVPS";
            mes "Top 2 is : [" +$n2$ +"], Kills : [" +$k2 +"] MVPS";
            mes "Top 3 is : [" +$n3$ +"], Kills : [" +$k3 +"] MVPS";
            mes "Top 4 is : [" +$n4$ +"], Kills : [" +$k4 +"] MVPS";
            mes "Top 5 is : [" +$n5$ +"], Kills : [" +$k5 +"] MVPS";
            mes "Top 6 is : [" +$n6$ +"], Kills : [" +$k6 +"] MVPS";
            mes "Top 7 is : [" +$n7$ +"], Kills : [" +$k7 +"] MVPS";
            mes "Top 8 is : [" +$n8$ +"], Kills : [" +$k8 +"] MVPS";
            mes "Top 9 is : [" +$n9$ +"], Kills : [" +$k9 +"] MVPS";
            mes "Top 10 is : [" +$n10$ +"], Kills : [" +$k10 +"] MVPS";
            close;
            break;

            case 2:
            mes "Have a nice day";
            mes "bye";
            close;
            end;

            }// end switch

    }// end npc

    -    script    count    -1,{
        OnNPCKillEvent:
        if(killedrid == 1002){
            set @rankp, @rankp + 1;
            dispbottom "You have obtained 1 Rank Point, now you have "+@rankp+" .";
            callfunc ("mvpladder",@rankp,strcharinfo(0));
        }


    }


    function    script    mvpladder    {
        set @puntos, getarg(0);
        set @nombres$, getarg(1);

        if (@puntos > $k1) {
            // Si el nombre se repite, eso se verifica con strcharinfo
            if (@nombres$ == strcharinfo(0)) {
                set $k1, @puntos;
                set $n1$, @nombres$;
            } else {
                // Guardo el top1 anterior
                set @oldn1$, $n1$;
                set @oldk1, $k1;

                // Ahora el top 2 se vuelve top1
                set $k1, $k2;
                set $n1$, $n2$;

                // Ahora el top1 que teníamos guardado se vuelve top2
                set $k2, @oldk1;
                set $n2$, @oldn1$;
            }
        } else if (@puntos > $k2) {
            if (@nombres$ == strcharinfo(0)) {
                set $k2, @puntos;
                set $n2$, @nombres$;
            } else {
                // Guardo el top2 anterior
                set @oldn2$, $n2$;
                set @oldk2, $k2;

                // El nuevo top2 toma el lugar del antiguo top2
                set $k2, $k3;
                set $n2$, $n3$;

                // El antiguo top2 se convierte en el nuevo top3
                set $k3, @oldk2;
                set $n3$, @oldn2$;
            }
        }


     

  7. 3 hours ago, Winterfox said:
    .@nombre == strcharinfo(0)

    You compare a numeric variable with a string.

    what about now? still same issue 

    prontera,146,161,5    script    CheckRank    118,{
            
            set.npcranker,"[MvP Ranker]";

            mes.npcranker;        
            mes "Hello, this is an Npc Ranker";
            mes "Would you like to know the MvP Ranking?";
            next;
            switch(select("Top 20:Leave")){

            case 1:
                mes.npcranker;
                mes "The Top 1: " +$top1mvp$ +" Killed: " +$top1mvp +".";
                mes "The Top 2: " +$top2mvp$ +" Killed: " +$top2mvp +".";
                mes "The Top 3: " +$top3mvp$ +" Killed: " +$top3mvp +".";
                mes "The Top 4: " +$top4mvp$ +" Killed: " +$top4mvp +".";    
                mes "The Top 5: " +$top5mvp$ +" Killed: " +$top5mvp +".";
                mes "The Top 6: " +$top6mvp$ +" Killed: " +$top6mvp +".";
                mes "The Top 7: " +$top7mvp$ +" Killed: " +$top7mvp +".";
                mes "The Top 8: " +$top8mvp$ +" Killed: " +$top8mvp +".";
                mes "The Top 9: " +$top9mvp$ +" Killed: " +$top9mvp +".";
                mes "The Top 10: " +$top10mvp$ +" Killed: " +$top10mvp +" .";
                close;
                break;

                case 2:

                mes.npcranker;
                mes "bye";
                close;
            }


    }


    -    script    npcmvpranker    -1,{
        OnNPCKillEvent:
        if(killedrid == 1002){
        set muertos, muertos + 1;
        dispbottom "You have obtained 1 Rank Point Now you have " +muertos +".";
        callfunc ("mvpranker",muertos,strcharinfo(0));
        }
    }

    function    script    mvpranker    {
    set $allkill, getarg(0);
    set $nomb$, getarg(1);

        if($allkill > $top1mvp){
            if($top1mvp$ == strcharinfo(0)){
                set $top1mvp, $allkill;
                set $top1mvp$, $nomb$;
            } else {
                set $aux$, $top1mvp$;
                set $aux, $top1mvp;

                set $top1mvp$, $nomb$;
                set $top1mvp, $allkill;

                set $top2mvp$, $aux$;
                set $top2mvp, $aux;

            }
            


        } else if($allkill > $top2mvp){
            if($top2mvp$ == strcharinfo(0)){
                set $top2mvp, $allkill;
                set $top2mvp$, $nomb$;
            } else {
                set $aux$, $top2mvp$;
                set $aux, $top2mvp;

                set $top2mvp$, $nomb$;
                set $top2mvp, $allkill;

                set $top3mvp$, $aux$;
                set $top3mvp, $aux;

            }
            
            } else if($allkill$ > $top3mvp){
                    if($top3mvp$ == strcharinfo(0)){
                    set $top3mvp, $allkill;
                    set $top3mvp$, $nomb$;
                    } else {
                    set $aux$, $top3mvp$;
                    set $aux, $top3mvp;

                    set $top3mvp$, $nomb$;
                    set $top3mvp, $allkill;

                    set $top4mvp$, $aux$;
                    set $top4mvp, $aux;

            }


    }
     

     

  8. Hello, I need help with this script, I can not figure it out

    [Error]: script:op_2: invalid data for operator C_EQ
    [Debug]: Data: number value=0
    [Debug]: Data: string value="qwqwqwq"
    [Debug]: Source (NPC): muertesmvp (invisible/not on a map)
    [Debug]: Source (NPC): muertesmvp is located in: npc/custom/ranking.txt

    prontera,155,155,6    script    Ranking    119,{
        set .@rango1, "";
        set .@muertes1, "0";
        set .@rango2, "";
        set .@muertes2, "0";

        mes "Que te gustaria hacer?";
        switch(select("CheckTop:Leave")){
        case 1:
        mes "El rango 1 es "+$rango1$+" con "+$muertes1+" realizadas.";
        mes "El rango 2 es "+$rango2$+" con "+$muertes2+" realizadas.";
        close;
        break;

        case 2:
        mes "pasa buen dia";
        close;

        } //end if
        end;
    }


        -    script    muertesmvp    -1,{
        OnNPCKillEvent:
        if(killedrid == 1002){
            set matado, matado + 1;
            dispbottom "Recordatorio "+strcharinfo(0)+" obtenido MvP.";
            callfunc ("rangos",matado,strcharinfo(0));
        }
    end;
    }

    function    script    rangos    {
    set @muertes, getarg(0);
    set @nombre$, getarg(1);

        if(@muertes > .@muertes1 ){
            if(.@nombre == strcharinfo(0)){
            //si soy el numero 1, solo cuento
                set .@rango1, @nombre$;
                set .@muertes1, @muertes;    

            } else {
            //guardo el anterior 1
                set .@auxn1, .@rango1;
                set .@auxm1, .@muertes1;

            // me vuelvo el 1
                set .@rango1, @nombre$;
                set .@muertes1, @muertes;

            //volvemos el 1 el 2
                set .@auxn1, .@rango2;
                set .@auxm2, .@muertes2;


            } //end iff de rango 1


        } else if(.@muertes > .@muertes2){
            if(.@nombre == strcharinfo(0)){
            set .@rango2, @nombre$;
            set .@muertes2, @muertes;
            } else {
                set .@muertes2, @muertes;
                set .@rango2, @nombre$;
            } // termina el de adentro end 2

        } // end if del if else

    }

  9. Where here? 

     1832,IFRIT,Ifrit,Ifrit,99,7700000,0,3154321,3114520,3,13530,17000,40,50,120,180,25,190,199,50,10,12,2,0,83,0x37B5,130,212,384,360,1577160,10000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1

×
×
  • Create New...