Jump to content

Notorius

Members
  • Posts

    106
  • Joined

  • Last visited

Everything posted by Notorius

  1. 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. 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_
  4. 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. My intention is to lower the flee rate by 50%
  6. how to reduce flee rate in pre renewal based on AGI
  7. 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)
  8. 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
  9. Hello, I am adding some bio 4 mobs to a pre-renovation server. My question is, can I change the maximum defense of the monsters? I want them to have the same renewal statistics but only the bio 4 mobs I leave an image so you can understand what I'm saying https://prnt.sc/xL9-J5NP4hN1
  10. What should I do so that the item leaves it on the ground and does not fall into the inventory?
  11. - 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; } It is working thanks now how do I make the item give it with a rate of 10% or 15%
  12. What can I do so that in the last round I am a random mvp?
  13. https://prnt.sc/yRgj90bqgX1F now i get this error ?
  14. 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; }
  15. 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; }
  16. 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$); }
  17. How should the script be if I want it to go up .5% and not 1%? edit solution bonus2 bSkillAtk,"SKILL NAME",getrefine()/2;
  18. How do I increase the probability to 15 or 20 etc?
  19. 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
  20. 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; }
  21. 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; }
  22. 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
  23. 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; }
  24. 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
  25. resuelto se tienen que modificar las tablas en la seccion trunk/db/(version de mi servidor)pre-re/job_basepoints.yml
×
×
  • Create New...