Jump to content


  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Vyserion's Achievements


Poring (1/15)



  1. Hello community, How can I make this poring race scripts to trigger only two times a day at random times? prontera,114,154,5 script Poring Race 568,{ if( .access_Prace == 0 ) { mes "[Event Employee: Poring Race]"; mes "Poring Race has ended."; close; } mes "[Event Employee: Poring Race]"; mes "Do you want to participate on Poring Race?"; if( select( "Yes","No" ) -1 ) { next; mes "[Event Employee: Poring Race]"; mes "See you again next time!"; close; } if( .access_Prace == 0 ) { next; mes "[Event Employee: Poring Race]"; mes "..."; mes "..."; mes "Cheater!!~~"; close; } close2; @prace_winner$ = ""; warp "p_track01",52,41; end; // OnInit: OnClock1434: if( gettime(3)%2 ) end; set .access_Prace, 1; announce "Event Employee [Poring Race]: Poring Race is about to begin. To participate kindly approach me at Event Room or use @event",0; setnpctimer 100000,"Bidder#prace0"; startnpctimer "Bidder#prace0"; end; OnPraceEnd: set .access_Prace, 0; announce "Event Employee [Poring Race]: Poring Race is over! Thank you for participating.",0; end; } p_track01,58,41,3 script Bidder#prace0 877,{ function checkevent; if( getstrlen( @prace_winner$ ) ) { mes "[Event Employee: Poring Race Bidder]"; mes "You have choose ^00bb00"+ @prace_winner$ +"^000000"; close; } else if ( checkevent() || .start ) { mes "[Event Employee: Poring Race Bidder]"; mes "There is a race in progress..."; close; } else if( !getvariableofnpc( .access_Prace,"Poring Race" ) ) { mes "[Event Employee: Poring Race Bidder]"; mes "There is no race."; close; } mes "[Event Employee: Poring Race Bidder]"; mes "Choose the poring you want to bet:"; mes "It will cost "+ .zeny_req +" Zeny."; [email protected] = select( .menu_$ ); if( [email protected] == 7 ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "Goodbye."; close; } [email protected]$ = .monst_$[ [email protected] -1 ]; if ( checkevent() ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "..."; mes "..."; mes "Cheater!!~~"; close; } else if( Zeny < .zeny_req ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "You don't have enough Zeny."; close; } Zeny -= .zeny_req; @prace_winner$ = [email protected]$; .prace_bidders[ .prace_bets ] = getcharid(3); .prace_bets++; next; mes "[Event Employee: Poring Race Bidder]"; mes "[Event Employee: Poring Race Bidder]: I have "+ .prace_bets +" bets."; initnpctimer; npctalk "[Event Employee: Poring Race Bidder]: I got "+ strcharinfo(0) +" bet!"; close; OnTimer60000: npctalk "[Event Employee: Poring Race Bidder]: I got "+ .prace_bets +" 's bets. Anyone else?"; end; OnTimer80000: npctalk "[Event Employee: Poring Race Bidder]: The race will start soon. Last chance."; end; OnTimer90000: stopnpctimer; .start = 1; mapannounce "p_track01","Porings, on your marks...",1,0xFFAB54; sleep 2500; for( [email protected] = 3; [email protected] > 0; [email protected] ) { mapannounce "p_track01","..."+ [email protected] +"...",1,0xFFAB54; sleep 1000; } donpcevent strnpcinfo(0) +"::OnStartRace"; sleep 1000; mapannounce "p_track01","Gooo!!!",1,0xFFAB54; end; OnTimer320000: mapwarp "p_track01","prontera",142,170; donpcevent "Poring Race::OnPraceEnd"; .prace_winner$ = ""; .start = .prace_bets = 0; donpcevent strnpcinfo(0) +"::OnReturnRace"; end; OnStartRace: callsub L_label, "OnRace"; OnStopRace: callsub L_label, "OnStop"; OnReturnRace: callsub L_label, "OnReturn"; L_label: donpcevent "Metaling#prace3::"+ getarg(0); donpcevent "Poring#prace1::"+ getarg(0); donpcevent "Poporing#prace6::"+ getarg(0); donpcevent "Angeling#prace2::"+ getarg(0); donpcevent "Santa Poring#prace5::"+ getarg(0); donpcevent "Deviling#prace4::"+ getarg(0); if( getarg(0) == "OnStop" && .prace_winner$ != "" ) callsub L_WinRace; end; L_WinRace: mapannounce "p_track01", "The winner is "+ .prace_winner$,1,0xFFAB54; donpcevent strnpcinfo(0) +"::OnChequeo"; sleep 3000; donpcevent strnpcinfo(0) +"::OnReturnRace"; sleep 10000; mapwarp "p_track01","prontera",142,170; donpcevent "Poring Race::OnPraceEnd"; .prace_winner$ = ""; .start = .prace_bets = 0; end; OnChequeo: for( [email protected] = 0 ; [email protected] < getarraysize( .prace_bidders ); [email protected]++ ) { if( attachrid( .prace_bidders[[email protected]] ) && getstrlen( @prace_winner$ ) ) { dispbottom "The winner is "+ .prace_winner$ +" and you have bet for "+ @prace_winner$ +"."; if( @prace_winner$ == .prace_winner$ ) { dispbottom "You have won!"; mapannounce "p_track01"," Congratulations! "+ strcharinfo(0) +" has won!",1,0xFFAB54; getitem .item_gained, .item_num_gain; emotion 21,1; } else { dispbottom "You have lost."; emotion 28,1; } @prace_winner$ = ""; } } deletearray .prace_bidders; end; OnInit: .zeny_req = 10000000; .item_gained = 36008; .item_num_gain = 5; setarray .monst_$,"Poring","Angeling","Metaling","Deviling","Santa Poring","Poporing","None"; .menu_$ = implode( .monst_$, ":" ); end; function checkevent { getmapxy [email protected]$, [email protected], [email protected], 1, "Poring#prace1"; getmapxy [email protected]$, [email protected], [email protected], 1, "Angeling#prace2"; getmapxy [email protected]$, [email protected], [email protected], 1, "Metaling#prace3"; getmapxy [email protected]$, [email protected], [email protected], 1, "Deviling#prace4"; getmapxy [email protected]$, [email protected], [email protected], 1, "Santa Poring#prace5"; getmapxy [email protected]$, [email protected], [email protected], 1, "Poporing#prace6"; [email protected] = ( [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] ) != 58 * 6; return [email protected]; } } //----------------------------------- // Racer NPC's //----------------------------------- - script pori_race -1,{ OnRace: initnpctimer; end; OnStop: stopnpctimer; end; OnReturn: sleep 1000; while( strnpcinfo(1) != .monst$[ [email protected] ] ) [email protected]++; movenpc strnpcinfo(3), 58, .walk_t[[email protected]]; end; OnTimer1100: getmapxy [email protected]$,[email protected],[email protected],1, strnpcinfo(3); if( rand(100) < .prace_random ) npcwalkto [email protected], [email protected]; [email protected] = rand( .prace_random2 ); if ( [email protected] -1 == 29 ) { while( strnpcinfo(1) != .monst$[ [email protected] ] ) [email protected]++; set getvariableofnpc( .prace_winner$, "Bidder#prace0" ), .monst$[ [email protected] ]; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; end; } stopnpctimer; setnpctimer [email protected]; startnpctimer; end; OnInit: deletearray .walk_t; deletearray .monst$; setarray .walk_t, 38, 36, 34, 32, 30, 28; setarray .monst$, "Poring", "Angeling", "Metaling", "Deviling", "Santa Poring", "Poporing"; .prace_random = 70; .prace_random2 = 600; end; } p_track01,58,38,2 duplicate(pori_race) Poring#prace1 1002 p_track01,58,36,2 duplicate(pori_race) Angeling#prace2 1096 p_track01,58,34,2 duplicate(pori_race) Metaling#prace3 1613 p_track01,58,32,2 duplicate(pori_race) Deviling#prace4 1582 p_track01,58,30,2 duplicate(pori_race) Santa Poring#prace5 1062 p_track01,58,28,2 duplicate(pori_race) Poporing#prace6 1031 p_track01,78,42,0 warp p_track002 1,3,prontera,156,191 p_track01 mapflag nobranch p_track01 mapflag noicewall p_track01 mapflag nomemo p_track01 mapflag noreturn p_track01 mapflag noteleport p_track01 mapflag nowarpto p_track01 mapflag nowarp p_track01 mapflag noskill p_track01 mapflag pvp off p_track01 mapflag nosave Thanks.
  2. Hello community, I've recently applied manually the Refine UI system (https://github.com/rathena/rathena/pull/2494/files) and I noticed something very unusual. For Gakkung - Level 3 Weapon the first upgrade attempt bonus is 10 instead of 5 (pre-re settings) and for the next attempts, the weapon is upgraded by multiplies of 5 as it should be. It happens the same with other type of weapon level where the first attempt is doubled. I'm using latest rAthena version. db/pre-re/refine.yml Does anyone knows how to fix this? Thanks.
  3. Hello, there! I have an idea of a town/dungeon warps rotation on a Warper NPC that chooses a few destinations from a random list that change everyday. I've been trying to do this will simple script but I'm not able to. Does anyone has the desire and time to do it for me? I appreciate it.
  4. Hello @sader1992! I had this applied on my server but the player is getting the rewards every level from 10 to 19. How can I make the user get the rewards when reaching level 10 and/or passing over the level? For example, if it is a mid-rates, the character could skip from level 8 to level 30 and without taking the level 10 reward. Regards!
  5. Hello guys, I'm using a rAthena version from 6 months ago, downloaded from official github (can't determine version), however, when I use a dead branch on a map with "nobranch mapflag" the monsters are actually spawned but the item is not consumed. I keep on using it but does not consume it. EDIT: I tried to duplicate the item with another Item ID and it worked, however, is not being considered for the "nobranch" mapflag, so I think something is wrong with the mapflag itself being linked to item 604. Any idea how to fix it? or where to look at? This is the item_db script: 604,Branch_Of_Dead_Tree,Dead Branch,2,50,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ monster "this",-1,-1,"--ja--",-1,1,""; },{},{} Does anyone have any clue on how to fix it?
  6. Hello! Anyone knows how to remove the error message? Without erasing it on conf/map_msg_por.conf.
  7. Hello community, How can I make the plants from Biocannibalize skill to be resummoned (kill the previous one and relocate the new one) without having to kill the plant to place another one. I think we need to change it here, but I don't know what exactly to touch. case AM_CANNIBALIZE: { int summons[5] = { MOBID_G_MANDRAGORA, MOBID_G_HYDRA, MOBID_G_FLORA, MOBID_G_PARASITE, MOBID_G_GEOGRAPHER }; int class_ = skill_id==AM_SPHEREMINE?MOBID_MARINE_SPHERE:summons[skill_lv-1]; enum mob_ai ai = (skill_id == AM_SPHEREMINE) ? AI_SPHERE : AI_FLORA; struct mob_data *md; // Correct info, don't change any of this! [celest] md = mob_once_spawn_sub(src, src->m, x, y, status_get_name(src), class_, "", SZ_SMALL, ai); if (md) { md->master_id = src->id; md->special_state.ai = ai; if( md->deletetimer != INVALID_TIMER ) delete_timer(md->deletetimer, mob_timer_delete); md->deletetimer = add_timer (gettick() + skill_get_time(skill_id,skill_lv), mob_timer_delete, md->bl.id, 0); mob_spawn (md); //Now it is ready for spawning. } } break; Anyone could help?
  8. Hello guys! How can I make an item to be protected from Steal skill? For example a special drop to avoid any exploits. Regards
  9. Hello community, I spent more than 24 hours trying to change the client icon but I couldn't. I tried in two ways: 1. Diffing the client before changing the icon with ResHacker and 2. Changing the icon with ResHacker before diffing the client and still cannot make it work. The client just gets screwed. I followed these steps with other client versions (that I don't need) just to discard options, and they work perfectly fine. Apparently, is the 2018-06-20 version which is making trouble. I also tried with 2018-06-21 and still the same. When I try to diff the exe after changing the icon, these errors appears and many many more. Anyone can help? .
  10. Olá @Gladius Você sabe como remover a mensagem de erro?
  11. Hello community! I'm looking for a script that can reset status points by 10 only. For example, to only reset 10 points from either Str, Agi, Vit, Dex, Int or Luk and return equivalent status points. Is it possible?
  12. Hello there! I applied this patch and everything seems to work perfectly fine, however, when I want to make a random group to apply different values, it would just apply the first one of each group (RDMOPT_DAMAGE_PROPERTY_GROUND_USER in this case), for example: RDMOPTG_Crimson_Weapon_3,1,RDMOPT_DAMAGE_PROPERTY_GROUND_USER,5,0,10 RDMOPTG_Crimson_Weapon_3,1,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,5,0,10 RDMOPTG_Crimson_Weapon_3,1,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,5,0,10 RDMOPTG_Crimson_Weapon_3,1,RDMOPT_DAMAGE_PROPERTY_FIRE_USER,5,0,10 For this specific group, it is intended that one of these four values would apply randomly to an specific weapon, but, after applying the patch, the first in these lines will only apply. The other three effects are not being taken into consideration when dropping the weapon. Does someone have any idea what might be causing this or any work-around?
  13. Hello guys! I've been trying to get the topic's title result but I have failed in all my attempts. I want the skill to reduce the caster's HP to half upon activation, and then I will continue adding new skill effects, but I can't get to the first result. This is how I go so far: case AC_SACRIFICEPOWER: { int hp = sstatus->max_hp; hp = hp*50/100; status_zap(src, hp, 0); } break; But, it is not working as intended. Is not halving my HP at all... Just reducing it for x rate... or even killing my character when full HP. Any ideas?
  14. Hi @Functor, I'm wondering how do you know where and what to edit exactly. I'm trying to edit the radius of the skill MG_FROSTDIVER to 5x5. For future references, what should I look for on hex to edit the radius of any skill? Regards!
  15. Hi guys! Is it possible to add a timer for a clif_speciallefect on src or client-side? I want to give a skill an effect like Berserk/Frenzy of Lord Knight and effect to be active as long as SC_STATUS is active too. When the skill effect deactivates also the visual effect. Skill Examples: Energy Coat, Frenzy, Mental Strength, etc... How can I do that?
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.