Jump to content

Notorius

Members
  • Posts

    106
  • Joined

  • Last visited

Posts posted by Notorius

  1. 5 hours ago, LadyNanuia said:

    Can you elaborate what you mean? right now you use the skill and it puts you behind the target no matter where you started as far as i know, what exactly is it that you want it to do?

    I want the backstab skill to work from all directions without having to be behind its target

  2. Hello Rathena, I have a question, how do I change the direction of the skill back stab? to work in all directions

    	case RG_BACKSTAP:
    		{
    			if (!check_distance_bl(src, bl, 0)) {
    #ifdef RENEWAL
    				uint8 dir = map_calc_dir(src, bl->x, bl->y);
    				short x, y;
    
    				if (dir > 0 && dir < 4)
    					x = -1;
    				else if (dir > 4)
    					x = 1;
    				else
    					x = 0;
    
    				if (dir > 2 && dir < 6)
    					y = -1;
    				else if (dir == 7 || dir < 2)
    					y = 1;
    				else
    					y = 0;
    
    				if (battle_check_target(src, bl, BCT_ENEMY) > 0 && unit_movepos(src, bl->x + x, bl->y + y, 2, true)) { // Display movement + animation.
    #else
    				uint8 dir = map_calc_dir(src, bl->x, bl->y), t_dir = unit_getdir(bl);
    
    				if (!map_check_dir(dir, t_dir) || bl->type == BL_SKILL) {
    #endif
    					status_change_end(src, SC_HIDING, INVALID_TIMER);
    					dir = dir < 4 ? dir+4 : dir-4; // change direction [Celest]
    					unit_setdir(bl,dir);
    #ifdef RENEWAL
    					clif_blown(src);
    #endif
    					skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag);
    				}
    				else if (sd)
    					clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
    			}
    		}
    		break;

     

  3. 16 hours ago, Emistry said:

    you meant these ? conf/battle/battle.conf#L64-L78

    // Type of penalty that is applied to FLEE when more than agi_penalty_count monsters are targetting player
    // 0 = no penalty is applied
    // 1 = agi_penalty_num is reduced from FLEE as a %
    // 2 = agi_penalty_num is reduced from FLEE as an exact amount
    agi_penalty_type: 1
    
    // When agi penalty is enabled, to whom it should apply to? (Note 3)
    // By default, only players get the penalty.
    agi_penalty_target: 1
    
    // Amount of enemies required to be targetting player before FLEE begins to be penalized
    agi_penalty_count: 3
    
    // Amount of FLEE penalized per each attacking monster more than agi_penalty_count
    agi_penalty_num: 10

     

    Hi, forgive me if I'm not precise when describing what I need. I'm using a translator.:( But yes, what I want is to reduce the users' flee rate, I don't know how to do it, I don't know how to do so that the agi and luk don't increase so much the flee rate in battleconf how can i reduce the rate that increases agi and luk by 30%?

    https://prnt.sc/9irm64dgDOC_

    fleee_1.png

  4. On 6/17/2020 at 7:32 PM, iraciz said:

    Solved by my own means.

    satanbitch1.thumb.png.d8ffa6cbd9e309af3d33d0eaa7efb26e.png

    Autotrade merchants are not counting in the multi login ip filter,
    Only 3 accounts per IP and the fourth was kicked.

    Also added an exception, just in case there are confirmed brothers, couples, etcm in different pcs but using same ip:

    if (#brothers) end;

     

    -	script	Only3perIP	-1,{
    OnPCLoginEvent:
    if (getgmlevel() >= 99) end;
    if (#brothers) end;
    set .@myname$, strcharinfo(0);
    if (query_sql("SELECT `char`.`name` FROM `char` LEFT JOIN login ON `char`.account_id=login.account_id WHERE login.last_ip='"+getcharip()+"' AND `char`.online=1 AND `char`.char_id!="+getcharid(0), .@name$) >= 2) {
    	for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) {
    		if (!checkvending(.@name$[.@i]) )
    			set .@sameip, .@sameip +1;
    	}
    	if (.@sameip >= 3) {
    		announce "Lo sentimos, Solo se permite un maximo de 3 cuentas logeadas por IP.", bc_self;
    		mes "Suzaku Ro";
    		mes "Lo sentimos, solo  se permite un maximo de 3 cuentas logeadas por IP!";
    		sleep 4000;
    		atcommand "@kick " + .@myname$;
    	}
    }
    end;
    }

     

    What should I do if I only want maximum to be a logged account without counting the autotrades and let another pc with the same ip also connect an example that they are brothers as you say and that each one can be logged in to their pc

  5. 2 hours ago, Racaae said:

    Hi

    If you want to remove investment in castle:

    Find in these two files: \npc\guild\agit_main.txt (WOE 1) and/or \npc\guild2\agit_main_se.txt (WOE 2)

    set .@Treasure,getcastledata(strnpcinfo(2),CD_CURRENT_ECONOMY)/5+4;

    And add this in the next line:

    .@Treasure = 24; //always spawn 24 treasures. (máx:24)

     

    Find in \npc\re\guild3\agit_main_te.txt (WOE 3)

    .@treasure_num = ( 4 + ( .@economy /5 ) ) *3;// x3 <-> data[] size

    And add this in the next line:

    .@treasure_num = 24; //always spawn 24 treasures. (máx:24)

    -------------------------------------------------------

    Or if you want to accelerate the investment in castle:

     Find in these two files: \npc\guild\agit_main.txt (WOE 1) and/or \npc\guild2\agit_main_se.txt (WOE 2)

    set .@Economy,GetCastleData(strnpcinfo(2),CD_CURRENT_ECONOMY);

    And add this in the next line:

    .@Economy += 10; //accelerate the investment. +=(add) or *=(multiplication)

     

    Find in \npc\re\guild3\agit_main_te.txt (WOE 3)

    .@economy_today = getcastledata(.@map$,CD_INVESTED_ECONOMY);

    And add this in the next line:

    .@economy_today *= 2; //accelerate the investment. +=(add) or *=(multiplication)

    -------------------------------------------------------

    To modify treasure drops: C:\Users\Ema\Documents\Alex\rag\rAthena2021\db\(pre-)re\mob_db.yml

    Each castle has it's own treasure box with different items.
      Find the Treasure Chest you want to change the contents and replace the IDs in the Drops: section.

    Treasure IDs:

      Hide contents
    Woe
      - Id: 1324,TREASURE_BOX1
      - Id: 1325,TREASURE_BOX2
      - Id: 1326,TREASURE_BOX3
      - Id: 1327,TREASURE_BOX4
      - Id: 1328,TREASURE_BOX5
      - Id: 1329,TREASURE_BOX6
      - Id: 1330,TREASURE_BOX7
      - Id: 1331,TREASURE_BOX8
      - Id: 1332,TREASURE_BOX9
      - Id: 1333,TREASURE_BOX10
      - Id: 1334,TREASURE_BOX11
      - Id: 1335,TREASURE_BOX12
      - Id: 1336,TREASURE_BOX13
      - Id: 1337,TREASURE_BOX14
      - Id: 1338,TREASURE_BOX15
      - Id: 1339,TREASURE_BOX16
      - Id: 1340,TREASURE_BOX17
      - Id: 1341,TREASURE_BOX18
      - Id: 1342,TREASURE_BOX19
      - Id: 1343,TREASURE_BOX20
      - Id: 1344,TREASURE_BOX21
      - Id: 1345,TREASURE_BOX22
      - Id: 1346,TREASURE_BOX23
      - Id: 1347,TREASURE_BOX24
      - Id: 1348,TREASURE_BOX25
      - Id: 1349,TREASURE_BOX26
      - Id: 1350,TREASURE_BOX27
      - Id: 1351,TREASURE_BOX28
      - Id: 1352,TREASURE_BOX29
      - Id: 1353,TREASURE_BOX30
      - Id: 1354,TREASURE_BOX31
      - Id: 1355,TREASURE_BOX32
      - Id: 1356,TREASURE_BOX33
      - Id: 1357,TREASURE_BOX34
      - Id: 1358,TREASURE_BOX35
      - Id: 1359,TREASURE_BOX36
      - Id: 1360,TREASURE_BOX37
      - Id: 1361,TREASURE_BOX38
      - Id: 1362,TREASURE_BOX39
      - Id: 1363,TREASURE_BOX40
    
    Woe SE
      - Id: 1938,TREASURE_BOX41
      - Id: 1939,TREASURE_BOX42
      - Id: 1940,TREASURE_BOX43
      - Id: 1941,TREASURE_BOX44
      - Id: 1942,TREASURE_BOX45
      - Id: 1943,TREASURE_BOX46
      - Id: 1944,TREASURE_BOX47
      - Id: 1945,TREASURE_BOX48
      - Id: 1946,TREASURE_BOX49
    
    Woe TE
      - Id: 2452,TREASURE_BOX_TE
      - Id: 2453,TREASURE_BOX_TE_1
      - Id: 2454,TREASURE_BOX_TE_2
      - Id: 2455,TREASURE_BOX_TE_3
      - Id: 2456,TREASURE_BOX_TE_4
      - Id: 2457,TREASURE_BOX_TE_5
      - Id: 2458,TREASURE_BOX_TE_6
      - Id: 2459,TREASURE_BOX_TE_7
      - Id: 2460,TREASURE_BOX_TE_8
      - Id: 2461,TREASURE_BOX_TE_9
      - Id: 2462,TREASURE_BOX_TE_10

     

     

    Hi, I'm sorry, I didn't understand. Is this how the script should look like?

    	set .@Treasure,GetCastleData(strnpcinfo(2),CD_CURRENT_ECONOMY)/5+4;
            .@Treasure = 24; //always spawn 24 treasures. (máx:24)

     

    • Upvote 1
  6. On 4/8/2023 at 3:17 PM, GPreisLP said:

    I've the same problem with .thor file, I cannot get "update.thor" because IIS server return me 404. I need the MIME Type of thor file (like Text/plain)

    check if you have activated the ssl certificate on the host where you have your patch if so uninstall it if that doesn't work hire another web host for your patcher

  7. On 3/31/2023 at 9:09 AM, Racaae said:

    Share your script here please

    -    script    satan    -1,{
    OnNPCKillEvent:
    if ( getmonsterinfo( killedrid, MOB_ID) != 31001 ) end;
    if ( getcharid(1) ) {
        getpartymember getcharid(1), 1;
        getpartymember getcharid(1), 2;
        for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
            if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/
                .@partymemberaid[.@c] = $@partymemberaid[.@i];
                .@c++;
            }
        }
        getitem 45018, 1, .@partymemberaid[ rand( .@c ) ];
        announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;
    }
    else {
        getitem 45018, 1;
        announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;
    }
    end;
    }

     

    On 3/31/2023 at 9:43 AM, Racaae said:

    Hi, the script is working fine here.

    Try changing that line to:

    if ( killedrid != 31001 ) end;

     

    -	script	satan	-1,{
    OnNPCKillEvent:
    if ( killedrid != 1002 ) end;
    if ( getcharid(1) ) {
    	getpartymember getcharid(1), 1;
    	getpartymember getcharid(1), 2;
    	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/
    			.@partymemberaid[.@c] = $@partymemberaid[.@i];
    			.@c++;
    		}
    	}
    	getitem 45018, 1, .@partymemberaid[ rand( .@c ) ];
    	announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;
    }
    else {
    	getitem 45018, 1;
    	announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;
    }
    end;
    } 

     

    It is working thanks now how do I make the item give it with a rate of 10% or 15%

  8. On 3/13/2023 at 12:35 AM, 2Wire said:

    You need to modify this line:

    monster .eventmap$,0,0, "--ja--", .mvpid[.round], 1, strnpcinfo(0)+"::OnMvpDead";

    to

    monster .eventmap$,0,0, "--ja--", .mvpid[.round], <your qty>, strnpcinfo(0)+"::OnMvpDead";

    where <your qty> is the amount of MVP that you want to spawn.

     

    Also change this:

    OnMvpDead:
    	getpartymember .party_id, 1;
    	getpartymember .party_id, 2;

    to

     

    OnMvpDead:
            if (mobcount(.eventMap$,strnpcinfo(0)+"::OnMvpDead") > 0) { end; }
    	getpartymember .party_id, 1;
    	getpartymember .party_id, 2;

    so you only finish the round when all the spawned monsters are dead.

    What can I do so that in the last round I am a random mvp?

  9. 7 hours ago, Racaae said:

    Hi, You need to fix your getmonsterinfo.

    If you want this to trigger only for a specific mvp, you have two options:

    if ( getmonsterinfo( killedrid, MOB_NAME ) != "Wounded Morocc" ) end;

    or

    if ( getmonsterinfo( killedrid, MOB_ID) != 31001 ) end;

     

    If you want this to trigger for ANY mvp:

    if ( !getmonsterinfo( killedrid, MOB_MVPEXP ) ) end;

     

    https://prnt.sc/yRgj90bqgX1F

     

    now i get this error ?

     

  10. i made it almost work now the problem is that the slaves that invoke the mvp also give the reward what can i do to fix it?

     

    -	script	satan	-1,{
    OnNPCKillEvent:
    if ( !getmonsterinfo( killedgid, 31001 ) ) end;
    if ( getcharid(1) ) {
    	getpartymember getcharid(1), 1;
    	getpartymember getcharid(1), 2;
    	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/
    			.@partymemberaid[.@c] = $@partymemberaid[.@i];
    			.@c++;
    		}
    	}
    	getitem 45018, 1, .@partymemberaid[ rand( .@c ) ];
    	announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;
    }
    else {
    	getitem 45018, 1;
    	announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;
    }
    end;
    }

     

  11. how do i make this work? I want to add a drop to mvp custom that gives it a rateof 1%

     

     

    -	script	satan	-1,{
    OnNPCKillEvent:
    if ( !getmonsterinfo( killedgid, MOROCK ) ) end;
    if ( getcharid(1) ) {
    	getpartymember getcharid(1), 1;
    	getpartymember getcharid(1), 2;
    	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/
    			.@partymemberaid[.@c] = $@partymemberaid[.@i];
    			.@c++;
    		}
    	}
    	getitem 45018, 1, .@partymemberaid[ rand( .@c ) ];
    	announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedgid, MOROCK ) +" at "+ strcharinfo(3), 0;
    }
    else {
    	getitem 45018, 1;
    	announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedgid, MOROCK ) +" at "+ strcharinfo(3), 0;
    }
    end;
    }

     

  12. Hello, I am using tercer_pvp_ladder on my server and I have established a reward to earn silver coin for entering the top, but I would like to make this reward only at the end of the month, not every time someone advances to the top, I don't know if I am giving understand but I want each of the top players to receive their reward at the end of the month and so every month please help me I'm new to this and I don't know how to do it: c

    edit:

    In addition, at the end of the month the top pvp ladder restarts automatically: s

     

    //item
    set $@LadderItemGain, 1;    //Habilitar/deshabilitar la ganancia de silver coin al alcanzar una nueva posición en la escalera
    set $@LadderItem, 1;        //Establecer el valor de ganancia de silver coin 
    set $@LadderChatRoom, 1;

     

        //item gain
            if ($@LadderItemGain == 1){
            getitem 675, (($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderItem);
            dispbottom "Acabas de ser recompensado con "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderItem)+" Silver Coin";
        }

     

     

    //===== eAthena Script =======================================
    //= eAthena PVP-Ladder
    //===== By: ==================================================
    //= Terces
    //===== Current Version: =====================================
    //= 1.7.2
    //===== Compatible With: =====================================
    //= Any Athena Version that has "for" implemented
    //===== Credits: =============================================
    //= The whole eAthena Board and the eAthena Chat
    //===== Notes: ===============================================
    //= Note 1:
    //= Experience gain works like this formula:
    //= ($@LadderLength-(<new position>-1))*$@LadderExp
    //= so if someone gets the first place he'll get
    //= $@LadderLength*$@LadderExp experience points.
    //============================================================
    //= Fixxed by Dante
    //= V1.7.2
    //= Hosted by Dant3 aka Dante
    // HAFE FUN! READ THE TOPIC! IT DONT WORKS MAYBE ON OLDER REV
    //
    //
    //  LAST UPDATE: 12th,February.2008
    //
    // Main Script - Terces (Main Thanks to Terces )
    // V1.7.0 - Dant3
    // v1.7.1 - AnnieRuRu
    // v1.7.2 - Dant3
    
    // THIS SCRIPT WORKS ONLY ON THE NEW EATHENA REVISIONS! ENJOY!
    
    -	script	PVPLADDEROPTIONS	-1,{
    end;
    OnInit:
    // 0 = Disabled (NO)
    // 1 = Enable   (YES)
    set $@languageselect, 0;	//Habilitar/deshabilitar la selección de idioma [inglés/alemán] (predeterminado: 1)
    set $@LadderAnnounce, 1;	//Habilitar/deshabilitar el anuncio cuando un personaje alcanza una nueva posición en la escalera (Predeterminado: 1)
    
    set $@LadderLength, 15;		//Establezca la longitud de la escalera [! ¡No más de 128!] (Predeterminado: 30)
    set $@LadderSteps, 10;		//Establecer las vistas por página (Predeterminado: 10)
    
    set $@LadderExpGain, 100;		//Habilitar/Deshabilitar la ganancia de experiencia al alcanzar una nueva posición en la escalera (* Nota 1)
    set $@LadderExp, 150;		//Establecer valor de ganancia de experiencia (* Nota 1)
    
    // Update v1.7.0
    set $@LadderZenyGain, 1;	//Habilitar/deshabilitar la ganancia zeny al alcanzar una nueva posición en la escalera
    set $@LadderZeny, 20;		//Establecer el valor de ganancia de Zeny 
    set $@LadderChatRoom, 1;	//Habilitar/deshabilitar una sala de chat sobre el NPC con el mensaje "Escalera PvP" (los usuarios no pueden ingresar a la sala de chat)
    
    //item
    set $@LadderItemGain, 1;	//Habilitar/deshabilitar la ganancia de silver coin al alcanzar una nueva posición en la escalera
    set $@LadderItem, 1;		//Establecer el valor de ganancia de silver coin 
    set $@LadderChatRoom, 1;
    // Update v1.7.1 (Thanks to AnnieRuRu)
    // Added GM PvP Ladder Reset Function
    
    // Update v1.7.2
    // Thanks to for the Feedback
    set $@LadderAskLogin, 1;	//Habilitar/Deshabilitar que el NPC pregunte sobre la transmisión cuando un jugador inicia sesión o con el Npc Chat (0 = Preguntar inicio de sesión, 1 = Npc Chat) Relacionado: 0
    }
    
    -	script	PVPLADDERS	-1,{
    OnPCKillEvent:
    setarray .@Map$[0],"cell_game";
    if (terces_PVP_resets != $terces_PVP_resets) {
    	dispbottom "Vuelva a iniciar sesion en su personaje para obtener las muertes correctas para usted en la escala de PVP.";
    	dispbottom "Porque un GM acaba de restablecer la escalera.";
    	end;
    }
    if ( killedrid == getcharid(3) ) {
    	set PVPDeaths, PVPDeaths +1;
    	set #PVPDeathsAccount, #PVPDeathsAccount +1;
    	set @PVPDeathstoday, @PVPDeathstoday +1;
    	end;
    }
    set $@PVPcounter,$@PVPcounter+1;
    set getd("$@PVPKill"+$@PVPcounter),getcharid(3);	//getd para evitar errores cuando mas de 1 personas matan a alguien
    attachrid(killedrid);
    set PVPDeaths,PVPDeaths+1;
    set @PVPDeathstoday,@PVPDeathstoday+1;
    set #PVPDeathsAccount,#PVPDeathsAccount+1;
    set getd("$@PVPkilledplayer"+$@PVPcounter+"$"), strcharinfo(0);	//de nuevo, getd para evitar posibles fallas
    detachrid;
    
    attachrid(getd("$@PVPKill"+$@PVPcounter));
    CountKills:
    	set PVPKills,PVPKills+1;
    	set @PVPKillstoday,@PVPKillstoday+1;
    	set #PVPKillsAccount,#PVPKillsAccount+1;
    	setarray @playerstats[0],@PVPKillstoday,@PVPDeathstoday,PVPKills,PVPDeaths,#PVPKillsAccount,#PVPDeathsAccount;
    
    l_ladder:
    	set @considerdeath,0;
    	for (set @PosinLadder, 0; @PosinLadder < $@LadderLength; set @PosinLadder, @PosinLadder + 1){
    		if (PVPKills >= $terces_PVP_kills[@PosinLadder]){	//El jugador merece estar en la escalera
    			//Compruebe si la muerte juega un papel en la posición
    			if ((PVPKills == $terces_PVP_kills[@PosinLadder]) && (PVPDeaths > $terces_PVP_deaths[@PosinLadder])) set @considerdeath,1; //Considere las muertes
    			//Comprobar si el jugador solo superó sus propios puntajes
    			if ($terces_PVP_names$[@PosinLadder] == strcharinfo(0)){
    				set $terces_PVP_kills[@PosinLadder],PVPKills;
    				set $terces_PVP_deaths[@PosinLadder],PVPDeaths;
    				end;
    			}
    			//Mueve todos los personajes en la escalera.
    			for (set @beginmoving, $@LadderLength; @beginmoving >= (@PosinLadder+@considerdeath); set @beginmoving, @beginmoving - 1){
    				if ($terces_PVP_names$[@beginmoving] == strcharinfo(0)){
    					//Si el jugador ya está en la escalera, solo tiene que mover a los jugadores entre la nueva posición de los personajes y la posición anterior de los personajes.
    					callsub L_LadderMove,0;
    					end;
    				}
    				else if (@beginmoving == (@PosinLadder+@considerdeath)){
    					//El jugador no está en la escalera y, por lo tanto, tiene que mover a todos los jugadores desde la nueva posición del personaje hacia abajo.
    					callsub L_LadderMove,1;
    					end;
    				}
    			}
    			end;
    		}
    	}
    
    
    L_LadderMove:
    	if (getarg(0) == 0) set @length,@beginmoving;
    	if (getarg(0) == 1) set @length,$@LadderLength;
    	for (set @movecycle, @length; @movecycle > (@PosinLadder+@considerdeath);
    	 set @movecycle, @movecycle - 1){
    
    		set $terces_PVP_names$[@movecycle],$terces_PVP_names$[(@movecycle-1)];
    		set $terces_PVP_kills[@movecycle],$terces_PVP_kills[(@movecycle-1)];
    		set $terces_PVP_deaths[@movecycle],$terces_PVP_deaths[(@movecycle-1)];
    		set $terces_PVP_times[@movecycle],$terces_PVP_times[(@movecycle-1)];
    	}
    	//establece las estadísticas del personaje en la nueva posición
    	set $terces_PVP_names$[(@PosinLadder+@considerdeath)],strcharinfo(0);
    	set $terces_PVP_kills[(@PosinLadder+@considerdeath)],PVPKills;
    	set $terces_PVP_deaths[(@PosinLadder+@considerdeath)],PVPDeaths;
    	set $terces_PVP_times[(@PosinLadder+@considerdeath)],gettimetick(2);
    	//Experience Gain
    	if ($@LadderExpGain == 1){
    		set BaseExp,BaseExp+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp);
    		dispbottom "Acabas de ser recompensado con "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp)+" base experience points";
    	}
    	//Zeny Gain
    	if ($@LadderZenyGain == 1){
    		set Zeny,Zeny+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny);
    		dispbottom "Acabas de ser recompensado con "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny)+" Zeny";
    	}
    	//item gain
    		if ($@LadderItemGain == 1){
    		getitem 675, (($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderItem);
    		dispbottom "Acabas de ser recompensado con "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderItem)+" Silver Coin";
    	}
    	//Announcement (Setting for Char)
    	if (pvpbroadcast == 2){
    	announce strcharinfo(0)+" acaba de reclamar el "+((@PosinLadder+@considerdeath)+1)+". Posicion en el TOP "+$@LadderLength+" despues de matar a "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;
    	}
    	//Announcement (Setting for Account)
    	if (#pvpbroadcast == 2){
    	announce strcharinfo(0)+" acaba de reclamar el "+((@PosinLadder+@considerdeath)+1)+". Posicion en el TOP "+$@LadderLength+" despues de matar a "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;
    	}
    	end;
    
    OnPCLoginEvent:
    if (terces_PVP_resets != $terces_PVP_resets){
    		set PVPDeaths,0;
    		set @PVPDeathstoday,0;
    		set #PVPDeathsAccount,0;
    		set PVPKills,0;
    		set @PVPKillstoday,0;
    		set #PVPKillsAccount,0;
    		set terces_PVP_resets,$terces_PVP_resets;
    	}
    if ($@LadderAskLogin == 0){
    	if (#pvpbroadcast == 2) goto L_ignore;
    	if (pvpbroadcast == 2) goto L_ignore;
    	if (#pvpbroadcast == 1) goto L_ignore;
    	if (pvpbroadcast == 1) goto L_ignore;
    
    	if (pvpbroadcast == 0)
    	mes "Hey, "+strcharinfo(0)+"";
    	mes "Yo soy la alta gerencia de PvP!";
    	mes "Dejame hacerte una pregunta y te dejare jugar.!";
    	menu "Mas tarde por favor",L_close,"Okay, bien",L_fine;
    
    	L_fine:
    	next;
    	mes "Bueno, ¿quieres leer Mensajes de difusion cuando un jugador alcanza una nueva posicion en la lista de PvP Ranglist?";
    	menu "Si, Por que no",L_accept,"No, gracias",L_accept_2,"Wtf es transmitido?",L_broadcast;
    
    	L_accept:
    	next;
    	mes "gracias! ^_^";
    	mes "Funcionara esta configuracion en todos sus personaje en esta cuenta o solo en este personaje?";
    	menu "Cuenta",L_account,"Solo este personaje",L_char;
    
    	L_account:
    	set #pvpbroadcast,2;
    	next;
    	mes "Bueno, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	close;
    
    	L_char:
    	set pvpbroadcast,2;
    	next;
    	mes "Bueno, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	goto access_eng;
    	close;
    	
    	L_accept_2:
    	next;
    	mes "gracias! ^_^";
    	mes "Funcionara esta configuracion en todos sus personaje en esta cuenta o solo en este personaje?";
    	menu "Cuenta",L_account_2,"Solo este personaje",L_char_2;
    
    	L_close:
    	close;
    
    	L_account_2:
    	set #pvpbroadcast,1;
    	next;
    	mes "Bueno, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	close;
    
    	L_char_2:
    	set pvpbroadcast,1;
    	next;
    	mes "Bueno, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	goto access_eng;
    	close;
    
    
    	L_broadcast:
    	mes "Los Broadcasts son estos mensajes amarillos de los GM";
    	goto L_fine;
    	}
    }
    
    prontera,164,172,1	script	PvP Ladder	57,{
    if ($@LadderChatRoom == 1) {
    		waitingroom "PvP Top "+$@LadderLength+"",0;   // Look on the configuration!
    }
    	set @name$,"[PvP-Ladder]";
    	//Colour of:			Position	Name		Kills		Deaths		Time
    	setarray @colour$[0],	"^996600",	"^006699",	"^00AA00",	"^FF0000",	"^EE8800";
    if ($@LadderAskLogin == 1){
    	if (#pvpbroadcast == 2) goto 	access_eng;
    	if (pvpbroadcast == 2) goto 	access_eng;
    	if (#pvpbroadcast == 1) goto 	access_eng;
    	if (pvpbroadcast == 1) goto 	access_eng;
    	if (pvpbroadcast == 0)
    	mes "Hi, "+strcharinfo(0)+"";
    	mes "Yo soy la alta gerencia de PvP!";
    	mes "Dejame hacerte una pregunta y te dejare jugar.!";
    	menu "Despues",L_close,"Okay, fine",L_fine;
    
    	L_fine:
    	next;
    	mes "Bueno, ¿quieres leer Mensajes de Broadcast cuando un jugador alcanza una nueva posicion en la lista de PvP Ranglist?";
    	menu "Si, Por que no",L_accept,"No, Gracias",L_accept_2,"Que es Broadcast?",L_broadcast;
    
    	L_accept:
    	next;
    	mes "gracias! ^_^";
    	mes "Funcionara esta configuracion en todos sus personajes en esta cuenta o solo en este personaje?";
    	menu "Account",L_account,"Solo este personaje",L_char;
    
    	L_account:
    	set #pvpbroadcast,2;
    	next;
    	mes "Okay, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	close;
    
    	L_char:
    	set pvpbroadcast,2;
    	next;
    	mes "Okay, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	goto access_eng;
    	close;
    	
    	L_accept_2:
    	next;
    	mes "Yay, thank you! ^_^";
    	mes "Funcionara esta configuracion en todos sus personajes en esta cuenta o solo en este personaje?";
    	menu "Account",L_account_2,"solo este personaje",L_char_2;
    
    	L_close:
    	close;
    
    	L_account_2:
    	set #pvpbroadcast,1;
    	next;
    	mes "Okay, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	close;
    
    	L_char_2:
    	set pvpbroadcast,1;
    	next;
    	mes "Okay, "+strcharinfo(0)+"";
    	mes "Gracias por tu tiempo y diviertete!";
    	goto access_eng;
    	close;
    
    
    	L_broadcast:
    	mes "Los Broadcast son estos mensajes amarillos de los GM";
    	goto L_fine;
    }
    	access_eng:
    	mes @name$;
    	mes "Hello "+strcharinfo(0)+"...";
    	mes "Si quieres, puedo mostrarte tus estadisticas de PvP.";
    	next;
    	M_selection_eng:
    	if ( getgmlevel () < 99 )
    		menu "Muestrame el PVP Ladder",M_Ladder_eng,"Estadisticas PvP desde mi inicio de sesion",M_seitLogin_eng,"Estadisticas PvP de este Char",M_dieserChar_eng,"Estadisticas de toda la cuenta",M_vomAccount_eng,"Cancel",M_abbrechen_eng;
    	else
    		menu "Muestrame el PVP Ladder",M_Ladder_eng,"Estadisticas PvP desde mi inicio de sesion",M_seitLogin_eng,"Estadisticas PvP de este Char",M_dieserChar_eng,"Estadisticas de toda la cuenta",M_vomAccount_eng,"Reset Ladder",L_reset,"Cancel",M_abbrechen_eng;
    
    	M_Ladder_eng:
    	mes "Muy bien... te mostrare el To "+ $@LadderLength +" with "+$@LadderSteps+" entradas por pagina.";
    	mes "Se vera asi:";
    	mes @colour$[0]+"Place^000000: "+@colour$[1]+"<name>^000000 :"+@colour$[2]+"<kills>^000000:"+@colour$[3]+"<deaths>^000000 "+@colour$[4]+"<time>";
    	next;
    	callsub L_Ladder;
    	goto M_selection_eng;
    
    	M_seitLogin_eng:
    	mes @name$;
    	mes "Tus estadisticas desde que iniciaste sesion:";
    	mes @PVPKillstoday+"/"+@PVPDeathstoday+"(Kills/Deaths)";
    	next;
    	goto M_selection_eng;
    
    	M_dieserChar_eng:
    	mes @name$;
    	mes "Tus estadisticas de este Char:";
    	mes PVPKills+"/"+PVPDeaths+"(Kills/Deaths)";
    	next;
    	goto M_selection_eng;
    
    	M_vomAccount_eng:
    	mes @name$;
    	mes "Tus estadisticas de toda la cuenta:";
    	mes #PVPKillsAccount+"/"+#PVPDeathsAccount+"(Kills/Deaths)";
    	next;
    	goto M_selection_eng;
    
    	M_abbrechen_eng:
    	mes @name$;
    	mes "DE ACUERDO. Puedes volver a mi y ver tus estadisticas cuando quieras.";
    	close;
    
    L_reset:
    	if (getgmlevel() < 99) end;
    	mes "Quieres restablecer la escalera?";
    	if (select ("Yes","No") == 2) goto L_end;
    	mes "Estas realmente seguro de que quieres restablecerlo?";
    	menu "Yes, ffs!!",-,"No",L_end;
    	deletearray $terces_PVP_kills,128;
    	deletearray $terces_PVP_deaths,128;
    	deletearray $terces_PVP_names$,128;
    	deletearray $terces_PVP_times,128;
    	set $terces_PVP_resets,$terces_PVP_resets +1;
    
    	L_end:
    	mes "Okay...cya";
    	close;
    	
    	L_Ladder:
    	for (set @y,0; @y < $@LadderLength; set @y,@y+$@LadderSteps){
    		for (set @x,@y; (@x < (@y+$@LadderSteps)) && (@x < ($@LadderLength)); set @x,@x+1){
    			if ($terces_PVP_names$[@x] != ""){
    				mes @colour$[0]+(@x+1)+"^000000: "+@colour$[1]+$terces_PVP_names$[@x]+"^000000 "+@colour$[2]+$terces_PVP_kills[@x]+"^000000:"+@colour$[3]+$terces_PVP_deaths[@x]+"^000000 ~ "+@colour$[4]+callfunc ("Gettime",$terces_PVP_times[@x])+"^000000";
    			} else {
    				mes "^DD0000"+(@x+1)+": ^006699None^000000 ";
    			}
    		}
    		next;
    	}
    	return;
    }
    
    function	script	Gettime	{
    if (getarg(0)==0) return;
    
    set @difftimedays,(gettimetick(2) - getarg(0));
    set @difftimehours,@difftimedays%86400;
    set @difftimeminutes,@difftimehours%3600;
    set @difftimeseconds,@difftimeminutes%60;
    
    set @days,@difftimedays/86400;
    set @hours,@difftimehours/3600;
    set @minutes,@difftimeminutes/60;
    set @seconds,@difftimeseconds;
    set @result$,"";
    if(@days != 0) set @result$,@result$+@days+"d ";
    if(@hours != 0) set @result$,@result$+@hours+"h ";
    if(@minutes != 0) set @result$,@result$+@minutes+"m ";
    if(@seconds != 0) set @result$,@result$+@seconds+"s";
    
    return (@result$);
    }

     

  13. On 3/2/2023 at 1:03 AM, khyle650 said:

    This bonus is for increase damage in skill. 2% by refine level.

    bonus2 bSkillAtk,"SKILL NAME",2+getrefine();

    For increase elemental damage try:

    bonus2 bMagicAtkEle,Ele_Holy,2+getrefine();

     

    How should the script be if I want it to go up .5% and not 1%?

    edit

    solution

    bonus2 bSkillAtk,"SKILL NAME",getrefine()/2;
  14. On 3/13/2023 at 12:50 AM, 2Wire said:

    After:

    getitem 675, 3, .@partymemberaid[ rand( .@c ) ];

    add:

    if (rand(1,10) == 5) { getitem item_id, item_qty, .@partymemberaid[ rand( .@c ) ]; }

     

    After:

    getitem 675, 3;

    add:

    if (rand(1,10) == 5) { getitem item_id, item_qty; }

     

    So you'll have 1/10 (10%) chance to get that item.

    How do I increase the probability to 15 or 20 etc?

  15. 7 hours ago, 2Wire said:

    After:

    getitem 675, 3, .@partymemberaid[ rand( .@c ) ];

    add:

    if (rand(1,10) == 5) { getitem item_id, item_qty, .@partymemberaid[ rand( .@c ) ]; }

     

    After:

    getitem 675, 3;

    add:

    if (rand(1,10) == 5) { getitem item_id, item_qty; }

     

    So you'll have 1/10 (10%) chance to get that item.

    It is working very well for me but what if I want to add 8 items and only give you 1 at random from item id 7290 to 7297

  16. Hello I am using this script but I want to add another item with a rate of 10% in addition to the one it already has

     

    -	script	MvpDrop	-1,{
    OnNPCKillEvent:
    if ( !getmonsterinfo( killedrid, MOB_MVPEXP ) ) end;
    if ( getcharid(1) ) {
    	getpartymember getcharid(1), 1;
    	getpartymember getcharid(1), 2;
    	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/
    			.@partymemberaid[.@c] = $@partymemberaid[.@i];
    			.@c++;
    		}
    	}
    	getitem 675, 3, .@partymemberaid[ rand( .@c ) ];
    }
    else {
    	getitem 675, 3;
    }
    end;
    }

     

  17. how to increase the amount of mvp per round?

    //===== rAthena Script =======================================
    //= MVP Ladder Game
    //===== By: ==================================================
    //= aftermath, AnnieRuru (rewrite)
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= Gather a party and kill every MVP in ascending order.
    //===== Additional Comments: =================================
    //= 1.0 First version, edited. [Euphy]
    //============================================================
    
    prontera,164,170,3	script	MvP Ladder Warper	56,{
    	mes "[MvP Ladder Warper]";
    	mes "Say... do you want to play the MvP Ladder game?";
    	next;
    	switch(select("Yes, let's get it on!:Information.:Show me the best record.:No.")) {
    	case 1:
    		break;
    	case 2:
    		mes "[MvP Ladder Warper]";
    		mes "In this game, your party has to kill every single MvP monster in ascending order, from the weakest to strongest.";
    		if ( .finish_item_amount )
    			mes "If your party can finish the MVP ladder game, each member will earn "+ callfunc("F_InsertPlural", .finish_item_amount, getitemname( .finish_item_id )) +".";
    		if ( .register_cost )
    			mes "But the entrance fee is "+ callfunc( "F_InsertComma", .register_cost ) +" zeny.";
    		next;
    		mes "[MvP Ladder Warper]";
    		mes "You lose the game if you can't finish in "+ .timeout +" minutes, or if your entire party is killed.";
    		mes "Good luck!";
    		close;
    	case 3:
    		mes "[MvP Ladder Warper]";
    		if ( !$mvpladdderparty_time ) {
    			mes "Nobody has finished this game yet.";
    			close;
    		}
    		mes "The best record is";
    		mes "[ "+( $mvpladdderparty_time / 60 )+" min "+( $mvpladdderparty_time % 60 )+" sec ]";
    		mes "By the party ^FF0000"+ $mvpladdderparty_name$ +"^000000.";
    		.@size = getarraysize( $mvpladderparty_member$ );
    		for ( .@i = 0; .@i < .@size; .@i++ )
    			mes "^000000"+ ( .@i +1 ) +". ^0000FF"+ $mvpladderparty_member$[.@i];
    		if ( getgmlevel() < .gmlvlreset ) close;
    		next;
    		if ( select( "Close.", "Reset the record." ) == 1 ) close;
    		if ( select( "Never mind.", "I really want to reset it." ) == 1 ) close;
    		$mvpladdderparty_time = 0;
    		$mvpladdderparty_name$ = "";
    		deletearray $mvpladderparty_member$[.@i];
    		mes "[MvP Ladder Warper]";
    		mes "Record reset successfully.";
    		close;
    	case 4:
    		mes "[MvP Ladder Warper]";
    		mes "When you are strong enough to complete the game, please come back.";
    		close;
    	}
    	if ( !getcharid(1) ) {
    		mes "[MvP Ladder Warper]";
    		mes "You have to form a party to play.";
    		close;
    	}
    	if ( is_party_leader() == false ) {
    		mes "[MvP Ladder Warper]";
    		mes "Only the party leader can register.";
    		close;
    	}
    	.@origin = getcharid(3);
    	getpartymember getcharid(1), 1;
    	getpartymember getcharid(1), 2;
    	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
    			attachrid $@partymemberaid[.@i];
    			if ( strcharinfo(3) == strnpcinfo(4) )
    				.@online++;
    		}
    	}
    	attachrid .@origin;
    	if ( $@partymembercount != .register_min ) {
    		mes "[MvP Ladder Warper]";
    		mes "You have to form a party with exactly "+ .register_min +" members to play.";
    		close;
    	}
    	else if ( .@online != .register_min )  {
    		mes "[MvP Ladder Warper]";
    		mes "Your party must have "+ .register_min +" members online on map '"+ strnpcinfo(4) +"'.";
    		close;
    	}
    	else if ( .register_cost && Zeny < .register_cost ) {
    		mes "[MvP Ladder Warper]";
    		mes "You don't have enough zeny. Please come back when you do.";
    		close;
    	}
    	else if ( .party_id ) {
    		mes "[MvP Ladder Warper]";
    		mes "I'm sorry, but a party is currently playing the game. Please standby until the party is finished.";
    		mes "Thank you.";
    		close;
    	}
    	Zeny -= .register_cost;
    	announce "The party ["+ strcharinfo(1) +"] has started the MvP ladder game.", bc_all;
    	set .party_id, getcharid(1);
    	set .@time_enter, gettimetick(2);
    	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
    			attachrid $@partymemberaid[.@i];
    			if ( strcharinfo(3) == strnpcinfo(4) ) {
    				announce "You have "+ .timeout +" minutes to complete "+ .totalround +" rounds.", bc_self;
    				.@name$[.@c] = strcharinfo(0);
    				.@c++;
    			}
    		}
    	}
    	cleanmap .eventmap$;
    	warpparty .eventmap$, 0,0, .party_id, strnpcinfo(4);
    	donpcevent strnpcinfo(0)+"::OnMvpDead";
    	sleep .timeout * 60000;
    	if ( .round == .totalround +1 ) {
    		getpartymember .party_id, 1;
    		getpartymember .party_id, 2;
    		mapannounce .eventmap$, "Congratulations... You were able to defeat all the MVPs!", bc_map;
    		for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    			if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
    				attachrid $@partymemberaid[.@i];
    				if ( strcharinfo(3) == .eventmap$ )
    					getitem .finish_item_id, .finish_item_amount;
    			}
    		}
    		set .@timeused, gettimetick(2) - .@time_enter;
    		if ( .bonus_item_amount && .@timeused < .bonus_time * 60 ) {
    			mapannounce .eventmap$, "You are rewarded a bonus item for completing the ladder within "+ .bonus_time +" minutes.", bc_map;
    			for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    				if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
    					attachrid $@partymemberaid[.@i];
    					if ( strcharinfo(3) == .eventmap$ )
    						getitem .bonus_item_id, .bonus_item_amount;
    				}
    			}
    		}
    
    		if ( !$mvpladdderparty_time || .@timeused < $mvpladdderparty_time ) {
    			mapannounce .eventmap$, "And you broke the record! [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map;
    			set $mvpladdderparty_time, .@timeused;
    			set $mvpladdderparty_name$, getpartyname( .party_id );
    			copyarray $mvpladderparty_member$, .@name$, .register_min;
    		}
    		else
    			mapannounce .eventmap$, "Time used [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map;
    		sleep 10000;
    		announce "The party ["+ getpartyname( .party_id ) +"] has finished the MvP ladder game!", bc_all;
    	}
    	else
    		announce "The party ["+ getpartyname( .party_id ) +"] has failed to finish the MvP ladder game.", bc_all;
    	mapwarp .eventmap$, .map$, .x, .y;
    	killmonsterall .eventmap$;
    	.party_id = .round = 0;
    	end;
    
    OnMvpDead:
    	getpartymember .party_id, 1;
    	getpartymember .party_id, 2;
    	.round++;
    	if ( .round >= 2 && .round != .totalround +1 && .round_item_amount ) {
    		for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    			if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
    				attachrid $@partymemberaid[.@i];
    				if ( strcharinfo(3) == .eventmap$ )
    					getitem .round_item_id, .round_item_amount;
    			}
    		}
    	}
    	if ( .round == .totalround +1 ) {
    		awake strnpcinfo(0);
    		end;
    	}
    	else if ( .round == .totalround )
    		mapannounce .eventmap$, "The final Round will begin in "+ .delay +" seconds...", bc_map;
    	else
    		mapannounce .eventmap$, "Starting round "+ .round +" in "+ .delay +" seconds...", bc_map;
    	sleep .delay * 1000;
    	if ( .mvpid[.round] == 1646 )  // pick random Bio3 MVP
    		.mvpid[.round] = rand(1646,1651);
    	monster .eventmap$,0,0, "--ja--", .mvpid[.round], 1, strnpcinfo(0)+"::OnMvpDead";
    	mapannounce .eventmap$, getmonsterinfo( .mvpid[.round], MOB_NAME ) +" has spawned!", bc_map|bc_blue;
    	end;
    
    OnPCLogoutEvent:
    	if ( hp > 0 )
    		.@less_one = 1;
    	else
    		end;
    OnPCDieEvent:
    	if ( strcharinfo(3) != .eventmap$ || !getcharid(1) ) end;
    	if ( getcharid(1) != .party_id ) end;
    	getpartymember .party_id, 1;
    	getpartymember .party_id, 2;
    	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
    			attachrid $@partymemberaid[.@i];
    			if ( strcharinfo(3) == .eventmap$ && hp > 0 )
    				.@alive++;
    		}
    	}
    	if ( .@less_one )
    		.@alive--;
    	if ( !.@alive ) {
    		mapannounce .eventmap$, "Party wiped!", bc_map;
    		sleep 10000;
    		awake strnpcinfo(0);
    	}
    	end;
    
    OnInit:
    //	Configurations -----------------------------------------------------
    
    	// Time limit (in minutes)
    	// When time runs out, all players inside the room will be kicked out.
    	// Do NOT set this to zero!
    	set .timeout, 60;
    
    	// entrance fee (in Zeny)
    	set .register_cost, 100000;
    
    	// exact amount of party members needed to start the game
    	set .register_min, 2;
    
    	// id of each mvp. you can add more
    	setarray .mvpid[1],
    		1086,//	Golden Thief Bug	64
    		1115,//	Eddga				65
    		1150,//	Moonlight Flower	67
    		1159,//	Phreeoni			69
    		1112,//	Drake				70
    		1583,//	Tao Gunka			70
    		1492,//	Incantation Samurai	71
    		1046,//	Doppelgangger		72
    		1252,//	Garm				73
    		1418,//	Evil Snake Lord		73
    		1059,//	Mistress			74
    		1190,//	Orc Lord			74
    		1087,//	Orc Hero			77
    		1251,//	Knight of Windstorm	77
    		1038,//	Osiris				78
    		1658,//	Ygnizem				79
    		1272,//	Dark Lord			80
    		1871,//	Fallen Bishop		80
    		1039,//	Baphomet			81
    		1147,//	Maya				81
    		1785,//	Atroce				82
    		1389,//	Dracula				85
    		1630,//	Bacsojin			85
    		1885,//	Gorynych			85
    		1623,//	RSX 0806			86
    		1511,//	Amon Ra				88
    		1688,//	Lady Tanee			89
    		1768,//	Gloom Under Night	89
    		1719,//	Datale				90
    		1734,//	Kiel D-01			90
    		1157,//	Pharaoh				93
    		1373,//	Lord of Death		94
    		1312,//	Turtle General		97
    		1779,//	Ktullanux			98
    		1874,//	Beelzebub			98
    		1646,// Bio3 placeholder    99
    		1708,//	Thanatos			99
    		1751,//	Valkyrie Randgris	99
    		1832;//	Ifrit				99
    
    	// number of rounds (default: 39)
    	set .totalround, getarraysize(.mvpid) -1;
    
    	// item reward for completing each round
    	set .round_item_id, 675;
    	set .round_item_amount, 5;
    
    	// item reward for completing the entire ladder
    	set .finish_item_id, 675;
    	set .finish_item_amount, 10;
    
    	// bonus reward if ladder completed within a certain time (in minutes)
    	set .bonus_time, 45; // if completed within 45 minutes, this reward is given
    	set .bonus_item_id, 675;
    	set .bonus_item_amount, 10;
    
    	// time delay between rounds, in seconds (default: 3)
    	set .delay, 5;
    
    	// minimum GM level to reset the best record
    	set .gmlvlreset, 99;
    
    	// event map
    	set .eventmap$, "guild_vs2-2";
    
    	// mapflag configuration
    	setarray .@mapflag,
    		mf_nowarp,
    		mf_nowarpto,
    		mf_nosave,
    		mf_nomemo,
    		mf_noteleport,
    //		mf_nopenalty, // disable exp loss
    		mf_noreturn,
    //		mf_nobranch,
    //		mf_nomobloot, // disable monster drop loots,
    //		mf_nomvploot, // 2 of these
    		mf_partylock;
    
    //	Config Ends --------------------------------------------------------------
    
    	mapannounce .eventmap$, "An administrator has refreshed the server. Please re-register. We apologize for the inconvenience.", bc_map;
    	getmapxy .map$, .x, .y, BL_NPC;
    	mapwarp .eventmap$, .map$, .x, .y;
    	killmonsterall .eventmap$;
    	.@size = getarraysize( .@mapflag );
    	for ( .@i = 0; .@i < .@size; .@i++ )
    		setmapflag .eventmap$, .@mapflag[.@i];
    	end;
    }

     

  18. 42 minutes ago, Notorius said:

    buenas quiero un npc que intercambie gold coin por cash hasta ahora e buscado en el furo y el que mas me a funcionado es este lo que quiero pedirles es su ayuda para poder editar la cantidad de monedas por la cantidad de cash es decir quiero que el itercambio se de 10 gold coin por 1 cash estoy usando este guion

    // Scripted by : Royr
    // Description : Simple Cash Converter
    // Topic: https://rathena.org/board/topic/127558-facing-problem-with-the-coin-to-cash-exchanger-npc/
    prontera.gat, 154, 180, 4	script	Cash Converter	4_M_01,{
    
    	mes .@name$ = "[ ^FF0000Cash Point Converter^000000 ]";
    	mes "Greetings! Player "+strcharinfo(0)+".";
    	mes " ";
    	mes "Total Balance: ^FF0000"+F_InsertComma(#CASHPOINTS)+"^000000 Cash Points";
    	dispbottom "You have Total Balance of: ^FF0000"+F_InsertComma(#CASHPOINTS)+"^000000 Cash Points";
    	next;
    	switch( select( implode(.menu_options$, ":") ) ) {
    	case 1:
    		mes .@name$;
    		mes "^0000FF"+.ItemName$+"^000000 will ^ff0000NOT TO BE REFUND^000000 after converted to ^FF0000Cash Points^000000.";
    		mes "How many Gold Coin do you want to exchange?";
    		mes " ";
    		mes "^ff0000Note^000000: "+.qty+" x ^0000FF"+.ItemName$+"^000000 equivalent to 200 ^FF0000Cash Points^000000.";
    		next;
    		input .@amount;
    		if( .@amount < .qty || .@amount > countitem(.itemID) ) {
    			mes .@name$;
    			mes "That's an Invalid amount.";
    			mes "Please try again.";
    			close;
    		}
    		mes .@name$;
    		mes "Are you sure you want to exchange "+.@amount+" x ^0000FF"+.ItemName$+"^000000 to "+ .@amount * 5 +" ^FF0000Cash Points^000000?";
    		next;
    		if( select(" - Yes: - No") == 2 ) close;
    			#CASHPOINTS = #CASHPOINTS + .@amount * 5 );
    			mes .@name$;
    			mes "You have successfully exchanged "+ .ItemName$ +" to Cash Points.";
    			mes " ";
    			mes "You have added your new balance "+ F_InsertComma(#CASHPOINTS) +" ^FF0000Cash Points^000000.";
    			delitem .itemID, .@amount;
    			dispbottom "Your new balance is now : "+ F_InsertComma(#CASHPOINTS) +" Cash Points";
    			close;
     	case 2:
    		mes .@name$;
    		mes "Alrighth then! You can come back anytime.";
    		close;
    	}
    
    OnInit:
    	.itemID = 7517;
    	.qty = 40;
    	.ItemName$ = getitemname(.itemID) +"";
    
    	setarray .menu_options$[0],
    	"- Exchange ^0000FF"+.ItemName$+"^000000 to ^FF0000Cash Points^000000",
    	"- Cancel";
    	end;
    }

     

    		mes .@name$;
    		mes "Are you sure you want to exchange "+.@amount+" x ^0000FF"+.ItemName$+"^000000 to "+ .@amount /10 +" ^FF0000Cash Points^000000?";
    		next;
    		if( select(" - Yes: - No") == 2 ) close;
    			#CASHPOINTS = #CASHPOINTS + .@amount /10 );
    			mes .@name$;
    			mes "You have successfully exchanged "+ .ItemName$ +" to Cash Points.";
    			mes " ";
    			mes "You have added your new balance "+ F_InsertComma(#CASHPOINTS) +" ^FF0000Cash Points^000000.";
    			delitem .itemID, .@amount;
    			dispbottom "Your new balance is now : "+ F_InsertComma(#CASHPOINTS) +" Cash Points";
    			close;

    solucionado 

  19. buenas quiero un npc que intercambie gold coin por cash hasta ahora e buscado en el furo y el que mas me a funcionado es este lo que quiero pedirles es su ayuda para poder editar la cantidad de monedas por la cantidad de cash es decir quiero que el itercambio se de 10 gold coin por 1 cash estoy usando este guion

    // Scripted by : Royr
    // Description : Simple Cash Converter
    // Topic: https://rathena.org/board/topic/127558-facing-problem-with-the-coin-to-cash-exchanger-npc/
    prontera.gat, 154, 180, 4	script	Cash Converter	4_M_01,{
    
    	mes .@name$ = "[ ^FF0000Cash Point Converter^000000 ]";
    	mes "Greetings! Player "+strcharinfo(0)+".";
    	mes " ";
    	mes "Total Balance: ^FF0000"+F_InsertComma(#CASHPOINTS)+"^000000 Cash Points";
    	dispbottom "You have Total Balance of: ^FF0000"+F_InsertComma(#CASHPOINTS)+"^000000 Cash Points";
    	next;
    	switch( select( implode(.menu_options$, ":") ) ) {
    	case 1:
    		mes .@name$;
    		mes "^0000FF"+.ItemName$+"^000000 will ^ff0000NOT TO BE REFUND^000000 after converted to ^FF0000Cash Points^000000.";
    		mes "How many Gold Coin do you want to exchange?";
    		mes " ";
    		mes "^ff0000Note^000000: "+.qty+" x ^0000FF"+.ItemName$+"^000000 equivalent to 200 ^FF0000Cash Points^000000.";
    		next;
    		input .@amount;
    		if( .@amount < .qty || .@amount > countitem(.itemID) ) {
    			mes .@name$;
    			mes "That's an Invalid amount.";
    			mes "Please try again.";
    			close;
    		}
    		mes .@name$;
    		mes "Are you sure you want to exchange "+.@amount+" x ^0000FF"+.ItemName$+"^000000 to "+ .@amount * 5 +" ^FF0000Cash Points^000000?";
    		next;
    		if( select(" - Yes: - No") == 2 ) close;
    			#CASHPOINTS = #CASHPOINTS + .@amount * 5 );
    			mes .@name$;
    			mes "You have successfully exchanged "+ .ItemName$ +" to Cash Points.";
    			mes " ";
    			mes "You have added your new balance "+ F_InsertComma(#CASHPOINTS) +" ^FF0000Cash Points^000000.";
    			delitem .itemID, .@amount;
    			dispbottom "Your new balance is now : "+ F_InsertComma(#CASHPOINTS) +" Cash Points";
    			close;
     	case 2:
    		mes .@name$;
    		mes "Alrighth then! You can come back anytime.";
    		close;
    	}
    
    OnInit:
    	.itemID = 7517;
    	.qty = 40;
    	.ItemName$ = getitemname(.itemID) +"";
    
    	setarray .menu_options$[0],
    	"- Exchange ^0000FF"+.ItemName$+"^000000 to ^FF0000Cash Points^000000",
    	"- Cancel";
    	end;
    }

     

  20. hola tengo una duda que debo de corregir para hacer que se pueden equipar 2 espadas? quiero que los páladin y los lord knight puedan equiparse dos de estas espadas de una mano que dobo de corregir ara que funcionen?

     

      - Id: 47012
        AegisName: Sword
        Name: Sword
        Type: Weapon
        SubType: 1hSword
        Buy: 20
        Weight: 900
        Attack: 150
        Range: 1
        Slots: 4
        Jobs:
          Crusader: true
          Knight: true
          Swordman: true
        Ubicaciones:
          Right_Hand: true
        WeaponLevel: 4
        EquipLevelMin: 1
        Refinable: verdadero

     

    actualizo la verdadera pregunta es como hago para que el lord knight pueda equiparce 2 espadas de una mano? ya que si la habilito para el uso del sinx  el si puede

     

×
×
  • Create New...