Jump to content

maczekiel

Members
  • Content Count

    30
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    maczekiel got a reaction from Pravatek in Andro: Ragnarok client emulator for Android - Some help   
    its ok , some people just login to check their characters or chat with friends ^^
  2. Upvote
    maczekiel reacted to Aeromesi in Deckster the Deck Guy NPC   
    File Name: Deckster the Deck Guy NPC
    File Submitter: Aeromesi
    File Submitted: 28 Jul 2016
    File Category: Events & Games
     
    So who exactly is Deckster the Deck Guy NPC?
     
     
    Well he's a simple guy with a simple love for what you say?
    Guessing what number he's thinking in his head.
     
    Simply setup the rewards, the minimum as well as the maximum input for the total amount of numbers you can guess.
    Configure whether or not the player must pay a fee in order to use the NPC, as well as the fee Item ID/Amount in order to use the NPC.
     
    Located in the OnInit:
    $DeckMin = 1; // Minium number to input at the guessing game. $DeckMax = 25; // Maximum number to input at the guessing game. .DeckRewardID = 501; // Reward Item ID .DeckRewardAM = 50; // Reward Item Amount // Default: On setarray $DeckRewardList[0],501,502,503,504,505,506,507,508,509,510; $DeckMaxItems = 10; // IMPORTANT: Edit this value in accordance to how many items you have in the array "$DeckRewardList". $EnableFee = 1; // 0 = Off || 1 = On ( This allows a fee everytime you want to take a shot at Deckster! ) $FeeID = 502; // ID for Item Fee $FeeAM = 5; // Amount of the Item used for the fee $EnableLuckyDay = 1; // 0 = Off || 1 = On ( This allows the user to have a second chance, kind of like your lucky day ! ) $LuckyDayRate = 10; // 10% Chance to trigger a Lucky day to you by Deckster $DeckSetup = 1; // WARNING: IGNORE THIS DO NOT EDIT
     
    Now the cool thing, when a GM accesses the NPC, or types the command `@deckedit` they will literally be able to control every aspect that is in the first time setup configuration in the OnInit.
     
    The new features:
    GM Menu (Through contact with NPC or command <script data-cfhash='f9e31' type="text/javascript">/* */</script>`! Able to control the Minium and Maximum numbers a player can bet on. Want it 50-100, or 1-100, 1-1000? it's your choice.

     
    Control The Item Fee ID/Amount as well as enabling/disabling the fee for the NPC
    Control the Random Item Reward ID's ( IMPORTANT! PLEASE NOTE: if you want to edit the list of items, edit the array $DeckRewardItems and then count all the items you made and set $DeckMaxItems to the max amount of items the array of your rewards hold.
    Control the % rate as well as enabling or disabling the Lucky Day ( Second Chance option) in-case you want the players to have another crack at guessing!

     
    Click here to download this file
  3. Upvote
    maczekiel reacted to thor1009 in Semi-Official Instances Package v0.3   
    Hi Hercules,
     
    I decided to share all my instance scripts with the community to thank back.
     
    I have spent mass of time to TRY TO write the official instance scripts.
    However, they are "semi-official" because:
    1. I only get information from youtube, so I cannot make sure everything is correct.
    2. some of them are from jRO, which has its own custom things.
     
     
    **WHAT YOU NEED TO KNOW**
     
    0. These scripts are NOT ready to use, you may need a lot of time to merge them into your servers. 
     
    1. All the NPC talks are written in Chinese because I am opening a server for Chinese players. My plan is to slowly translate it back to English, but I might not have enough time to do this, so it is very welcome if you can help to translate it.
     
    2. I have made some custom script commands for the scripts, I will provide a patch for these commands in this weekend.
     
    3. Some mobs and skills are not implemented in the Hercules yet
     
    4. You will find some of the scripts are really messy, I am sorry for that. I will slowly clean them up and update the package.
     
    5. I will slowly update this package, but you can use it if you want, and any help to merge it into Hercules will be greatly appreciated.
     
     
    **WHAT I CAN DO FURTHER WITH YOUR HELP**
     
    1. If you can provide some replay or video or some detailed information for official instances, I can correct the non-official part in these scripts
     
    2. If you can record npc talks in iRO, I can quickly replace the texts with the English ones.
     
    3. If you can record npc talks in kRO, I can slowly translate them into English, as well as Chinese.
     
     
     
    -------------------------------------------Update: 01/06/2016------------------------------------------------------------------
    Old Glast Heim, hard mode
     
    Comments:
    Texts in Old Glast Heim hard mode is replaced with Euphy's texts.
    Copied Euphy's entrance part for entering the Old Glast Heim (Hard mode), here if some one could provide information about the official entrance part, I can re-write this part.
    Skill Venom Fog is not implemented in Hercules yet, the patch is for this skill, but the behavior is not 100% official, more information is needed.
    Special skills for the MVPs are also not 100% official, the detailed information about this part is difficult to get.
    There should be an skill unit in this instance according to aegis, but I cannot find the proper one, so I assigned 2960 here, which is the same skill unit used in Devil tower (I named it Morroc Tower here).
     
    To have it run, there are still some work to do:
     
    1. The mob ids in OGH-HM are 3139 to 3152 and a skill unit (I used 2960), since my mobs are highly custom due to lack of info, I am not sharing these.
    You can simply copy the OGH monsters to these id and make them stronger.
     
    2. The map 1@gl_kh and 2@gl_kh is not in Hercules yet, you need add it to your maplist and run the map_cache for it.
     
    I am going to translate Faceworm script in this weekend, since it is easy to find iRO video for that.
    instances package v0.2 (Chinese).rar
    OldGlastHeim_HM_Eng.txt
    OGH-HM.patch
  4. Upvote
    maczekiel reacted to Kubix in Hugin's Craftsman NPC Help   
    Try this.
    glast_01,210,270,0 script Hugin's Craftsman 726,{ disable_items; if (MaxWeight - Weight < 1000) { mes "Your bag is too heavy. Reduce some weight and come back."; close; } mes "[Hugin's Craftsman]"; mes "That Magic Master always says that enchanting Temporal Boots is the best. But, I think quite different."; next; mes "[Hugin's Craftsman]"; mes "I think putting a slot into the item would be the best. Even with some risk of failing."; next; mes "[Hugin's Craftsman]"; mes "Bring me ^0000FF5 Temporal Crystals^000000, and I will try to put a slot into your advanced Temporal Boots. But, it's possible to ^FF0000fail and break the item^000000. Is that ok?"; next; if (select("Cancel","Take the risk and try to add a slot") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } set .@part,EQI_SHOES; if (!getequipisequiped(.@part)) { mes "[Hugin's Craftsman]"; mes "Are you sure you are wearing the item?"; close; } set .@equip_id,getequipid(.@part); switch (.@equip_id) { case 22000: //Temporal_Str_Boots .@get_id = 22006,1; //Temporal_Str_Boots_ break; case 22001: //Temporal_Int_Boots .@get_id = 22009; //Temporal_Int_Boots_ break; case 22002: //Temporal_Agi_Boots .@get_id = 22010; //Temporal_Agi_Boots_ break; case 22003: //Temporal_Vit_Boots .@get_id = 22007; //Temporal_Vit_Boots_ break; case 22004: //Temporal_Dex_Boots .@get_id = 22008; //Temporal_Dex_Boots_ break; case 22005: //Temporal_Luk_Boots .@get_id = 22011; //Temporal_Luk_Boots_ break; default: mes "[Hugin's Craftsman]"; mes "This is not it! We need ^0000FFAdvanced Temporal Boots^000000 items! The item ^0000FFwith a stat effect and without a slot^000000!"; close; } for( .@i = 0; .@i < 4; .@i ++ ) setd "Craft_Card" + .@i, getequipcardid( .@equip_id, .@i ); mes "[Hugin's Craftsman]"; mes "And ^FF0000all enchant or refine rates will be lost if you fail this.^000000"; mes "Still want to risk it?"; next; if (select("Cancel","I am ok with it!") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } mes "[Hugin's Craftsman]"; mes "Once again, ^FF0000That Magic Master won't enchant any item with a slot.^000000"; mes "Still want to proceed?"; next; if (select("Cancel","I understand. Try to slot it.") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } if (countitem(6607) < 5) { mes "[Hugin's Craftsman]"; mes "You must bring ^0000FF5 Temporal Crystal items^000000. Nothing is free you know..."; close; } if (rand(1,100) <= 80) { //Custom rates mes "[Hugin's Craftsman]"; mes "Arrggg, we failed. Better luck next time."; specialeffect2 EF_PHARMACY_FAIL; delitem 6607,5; //Temporal_Crystal delequip .@part; close; } mes "[Hugin's Craftsman]"; //Custom text mes "Yuhuu~ we succeed. Here you are..."; mes "A slot has been added to your advanced Temporal Boots."; mes "Thank you for believing in me."; specialeffect2 EF_PHARMACY_OK; delitem 6607,5; //Temporal_Crystal delequip .@part; getitem2 .@get_id, 1, 1, 0, 0, getd( "Craft_Card0" ), getd( "Craft_Card1" ), getd( "Craft_Card2" ), getd( "Craft_Card3" ); close; }
  5. Upvote
    maczekiel reacted to Lamex in DailyRewards like this one so cool!   
    data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\illust
  6. Upvote
    maczekiel reacted to Aeromesi in Monster Marching for Herc   
    prontera,155,176,5    script    Monster Marching    757,{ if( getgmlevel() < 90 ) end;   .@flower_count = mobcount( .npc_map$,$@npc_name$+"::OnFlowerDied" ); switch( select( ( $@marching_status )?"":"Set Mob Sprite",( $@marching_status )?"Stop:":( ( !$@sprite_size )?"":"Start" ),( .@flower_count )?"Hide Flower Wall":"Display Flower Wall" ) ){     case 1:         mes "Sprite List :";         do{             if( @menu == 3 ){                 do{                     $@sprite[.@size] = rand( 1001,2300 );                 }while( getmonsterinfo( $@sprite[.@size],MOB_NAME ) == "null" );             }else{                 input $@sprite[.@size],0,2300;                 if( !$@sprite[.@size] ) close;             }             .@name$ = getmonsterinfo( $@sprite[.@size],MOB_NAME );             if( .@name$ != "null" ){                 mes " ^777777> "+.@name$+"^000000";                 .@size++;             }         }while( select( "Add Another Sprite","Continue","Random Mob" ) != 2 );         $@sprite_size = .@size;         mes "Speed : ";         input $@speed,100,500;       case 2:         if( $@marching_status ){             mes "Marching Cancelled.";             $@marching_status  = 0;             close2;             donpcevent "::OnEnd";         }else{             mes "Marching Started.";             close2;             if( callsub( OnSetupNPC ) ){                 if( !.@flower_count ) donpcevent "::OnFlowerWall";                 donpcevent "::OnWalk";             }else{                 npctalk "Marching Failed to start.";                 donpcevent "::OnEnd";             }         }         break;     case 3:         mes "Flower Wall "+( ( !.@flower_count )?"Summoned":"Removed" );         close2;         if( !.@flower_count )             donpcevent "::OnFlowerWall";         else              killmonster .npc_map$,$@npc_name$+"::OnFlowerDied";     default: break; } end;   OnSetupNPC:     $@marching_status = 0;     for( .@y = 0; .@y < .y_align_size; .@y++ )         for( .@x = 0; .@x < .x_align_size; .@x++ ){             if( checkcell( .npc_map$,( .x_align[.@x] + .x_align_offset ),( .y_align[.@y] + .y_align_offset ),cell_chkpass ) ){                 hideoffnpc "mob#"+$@marching_status;                 movenpc "mob#"+$@marching_status,( .x_align[.@x] + .x_align_offset ),( .y_align[.@y] + .y_align_offset );                 specialeffect 344,AREA,"mob#"+$@marching_status;                 $@marching_status++;             }         }     return $@marching_status;   OnEnd:     announce "Marching End.",0;     sleep 1000;     donpcevent "::OnHide";     killmonster .npc_map$,$@npc_name$+"::OnFlowerDied";     end;      // auto start marching if admin configured the npc. OnMinute00: OnMinute30:     if( $@sprite_size ){         announce "Marching Started at "+.npc_map$,0;         sleep 5000;         if( callsub( OnSetupNPC ) ){             if( !mobcount( .npc_map$,$@npc_name$+"::OnFlowerDied" ) ) donpcevent "::OnFlowerWall";             donpcevent "::OnWalk";         }     }     end;   OnInit: // how many step they walk everytime $@walk_step = 2; // hide npc when reach this y-coordinate $@end_y_coordinate = 158;   // offset align for coordinate x and y .x_align_offset = 0; .y_align_offset = 0;   // npc alignment coordinate ( prefer write in ascending order ) setarray .x_align,151,153,155,157,159,161; setarray .y_align,165,167,169,171,173;   .x_align_size = getarraysize( .x_align ); .y_align_size = getarraysize( .y_align );   $@y_restart = .y_align[ .y_align_size-1 ] + .y_align_offset; $@npc_name$ = strnpcinfo(0); .npc_map$ = strnpcinfo(4);   OnWalk: OnFlowerDied: end; OnFlowerWall: killmonster .npc_map$,$@npc_name$+"::OnFlowerDied"; for( .@i = 175; .@i > 157; .@i-- ){     monster .npc_map$,147,.@i,"WALL",rand( 1934,1936 ),1,$@npc_name$+"::OnFlowerDied";     monster .npc_map$,164,.@i,"WALL",rand( 1934,1936 ),1,$@npc_name$+"::OnFlowerDied"; } end; }       prontera,1,1,4    script    mob    111,{     end; OnHide:     .@npc_name$ = strnpcinfo(0);     setnpcdisplay( .@npc_name$,.@npc_name$,111 );     movenpc .@npc_name$,1,1;     hideonnpc .@npc_name$;     end;      OnWalk:     .@npc_name$ = strnpcinfo(0);     npcspeed $@speed;     while( .@sprite < $@sprite_size && $@sprite[.@sprite] && $@marching_status ){         if( !setnpcdisplay( .@npc_name$,getmonsterinfo( $@sprite[.@sprite],MOB_NAME ),$@sprite[.@sprite] ) ){             hideoffnpc .@npc_name$;             while( $@marching_status ){                 getmapxy( .@map$,.@x,.@y,1 );                   if( .@y > $@end_y_coordinate ){                     npcwalkto .@x,( .@y - $@walk_step );                 }else if( .@y <= $@end_y_coordinate ){                     npcstop;                     break;                 }                 sleep 1750;             }             specialeffect 344;         }           .@sprite++;         if( .@sprite < $@sprite_size && $@marching_status ){             movenpc .@npc_name$,.@x,$@y_restart;             specialeffect 344,AREA,.@npc_name$;         }     }     movenpc .@npc_name$,1,1;     hideonnpc .@npc_name$;     setnpcdisplay( .@npc_name$,.@npc_name$,111 );     if( $@marching_status > 0 ){         $@marching_status--;         if( $@marching_status == 0 )             donpcevent $@npc_name$+"::OnEnd";     }     end;   }   // duplicate more if you need .. prontera,1,1,4    duplicate(mob)    mob#0    111 prontera,1,1,4    duplicate(mob)    mob#1    111 prontera,1,1,4    duplicate(mob)    mob#2    111 prontera,1,1,4    duplicate(mob)    mob#3    111 prontera,1,1,4    duplicate(mob)    mob#4    111 prontera,1,1,4    duplicate(mob)    mob#5    111 prontera,1,1,4    duplicate(mob)    mob#6    111 prontera,1,1,4    duplicate(mob)    mob#7    111 prontera,1,1,4    duplicate(mob)    mob#8    111 prontera,1,1,4    duplicate(mob)    mob#9    111 prontera,1,1,4    duplicate(mob)    mob#10    111 prontera,1,1,4    duplicate(mob)    mob#11    111 prontera,1,1,4    duplicate(mob)    mob#12    111 prontera,1,1,4    duplicate(mob)    mob#13    111 prontera,1,1,4    duplicate(mob)    mob#14    111 prontera,1,1,4    duplicate(mob)    mob#15    111 prontera,1,1,4    duplicate(mob)    mob#16    111 prontera,1,1,4    duplicate(mob)    mob#17    111 prontera,1,1,4    duplicate(mob)    mob#18    111 prontera,1,1,4    duplicate(mob)    mob#19    111 prontera,1,1,4    duplicate(mob)    mob#20    111 prontera,1,1,4    duplicate(mob)    mob#21    111 prontera,1,1,4    duplicate(mob)    mob#22    111 prontera,1,1,4    duplicate(mob)    mob#23    111 prontera,1,1,4    duplicate(mob)    mob#24    111 prontera,1,1,4    duplicate(mob)    mob#25    111 prontera,1,1,4    duplicate(mob)    mob#26    111 prontera,1,1,4    duplicate(mob)    mob#27    111 prontera,1,1,4    duplicate(mob)    mob#28    111 prontera,1,1,4    duplicate(mob)    mob#29    111 prontera,1,1,4    duplicate(mob)    mob#30    111
  7. Upvote
    maczekiel reacted to Mystery in Monster Marching for Herc   
    Please make sure to use a codebox for long pastes like that or a alternate paste site (i.e. upaste) @@maczekiel. If you continue to do so, you will be receiving a warning for breaking our rule. 
  8. Upvote
    maczekiel reacted to Lamex in DailyRewards like this one so cool!   
    I got a code from Stolao's "Daily login reward 1.59" for this sample.
     
    //===== EinherjarRO Scripts ================================== //= Daily Prize, OnPCLoginEvent //===== By: ================================================== //= Stolao //===== Current Version: ===================================== //= 1.59 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= A reward system for players who play more frequently //===== Comments: ============================================ //= Maybe Make .MinWait an array mins,days,weeks,months,years; //===== Additional Comments: ================================= //= For Older See Forums //= 1.51 Changed set .@g formula and move lower into script //= 1.52 Replace all disbottom -> message //= 1.53 Changed Format to Include minuets instead of just hours //= 1.54 Made Time till next rewards display dynamic //= 1.55 Changed a forgotten .PointType$ -> getd(.@TT[1]) //= 1.56 changed .@XT -> .@XT$ //= 1.57 Added Atoi where nessisary //= 1.58 Fixed a swapped .@x and .@x+1 //= 1.59 Serveral Edit Undocumented to fix //===== Contact Info: ======================================== //= [Stolao] //= Email: [email protected] //============================================================ - script LOGIN -1,{ OnWhisperGlobal: OnLoginCmnd: OnPCLoginEvent: sleep2 1000 + .Rest * 60000; set .@i, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) +gettime(2); if(.@i >= (#LastDailyReward + .MinWait)){ if(.@i < #LastDailyReward + .MaxWait){ set #DRewardCon, #DRewardCon + 1; } else { set #DRewardCon, 1; } set .@g, (#DRewardCon > getarraysize(.Rewards$)) ? (getarraysize(.Rewards$)-1) : #DRewardCon; explode(.@XT$,.Rewards$[.@g],"|"); for(set .@x,0; .@x < getarraysize(.@XT$); set .@x,.@x + 1){ set .@TT[.@x], atoi(.@XT$[.@x]); } if(.Mode & 1 && .@TT[4]){ //[Note]: I need to figure out a checkweight for all items tired atm lol, for now ill leave it missing for(set .@x,4; .@x < getarraysize(.@TT); set .@x,.@x + 2){ getitem .@TT[.@x], .@TT[.@x+1]; message strcharinfo(0),"Recived "+ .@TT[.@x+1] +" "+ getitemname(.@TT[.@x]); } } if(.Mode & 2){ if(.@TT[0]){ set zeny,zeny + .@TT[0]; message strcharinfo(0),"Recived "+ .@TT[0] +"z"; } if(.@TT[1]){ setd getd(.Points$[0]),getd(.Points$[0]) + .@TT[1]; message strcharinfo(0),"Recived "+ .@TT[1] +" "+.Points$[1]; } } if(.Mode & 4 && (.@TT[3] || .@TT[4])) getexp .@TT[3], .@TT[4]; if(.Mode & 8){ for(set .@x,0; .@x < getarraysize(.BuffInfo); set .@x,.@x + 4){ if(#DRewardCon % .BuffInfo[.@x + 1] == 0) sc_start .BuffInfo[.@x], .BuffInfo[.@x + 2] * 60000, .BuffInfo[.@x + 3]; } } message strcharinfo(0),"You have collected your daily reward, for "+#DRewardCon+" day"+((#DRewardCon > 1)?"s":"")+" in a row."; //===============Display of pic's with day highlighted.======================= cutin .Pic$[.@g],4; //============================================================================ set #LastDailyReward, .@i; } else { set .@days,(#LastDailyReward + .MinWait - .@i)/60/24; set .@hours,((#LastDailyReward + .MinWait - .@i)/60)%24; set .@mins,(#LastDailyReward + .MinWait - .@i)%60; message strcharinfo(0),"You have "+ ((.@days) ? .@days +":Days " : "") +""+ ((.@hours) ? .@hours +":Hours " : "") +""+ ((.@mins) ? .@mins +":Minutes " : "") +"till your next reward"; } end; OnInit: //Basic Settings // 1: Item | 2: Points | 4: Exp // 8: Gain Buffs Every X Consecutive Days logged in // (a bit value, e.g. 3 = Items & Points from Multi) set .Mode,1; //To Enable @ Command '@loginreward' unslash next lines // * Needs extra commands for typos bindatcmd("relog" ,"LOGIN::OnLoginCmnd",0,99); //Minimum Minuets Between Collecting Daily Reward // Day: 22*60 - 24*60 // Week: 10080 set .MinWait,1; //Minuets Before Lose Consecutive Daily Reward // Day: 48*60 - 50*60 // Week: 20160 set .MaxWait,3000; //Number of mins after logging before collecting prize set .Rest,0; //Point Type // [0] Points earned // [1] Point name in mes setarray .Points$,"#KAFRAPOINTS","K-Points"; // Consecutive Days Buff // Each buff contains 4 variables (32 Total Max) // <Type>,<Days>,<Duration>,<Rate>, // Buff 1 // <Type>,<Days>,<Duration>,<Rate>, // Buff 2 // ...; // // Example: 188,7,45,3 // -Every 7th consecutive day logged in Player gains +3 Str for 45 mins // // Type is 188, which references which SC_ to use, SC_INCSTR in this example // -For a full list of SC_ visit the db/const.txt // Days is days buff is applied, in this example 7, so every 7th day, 14,21,28.... // Duration is buff duration is Minuits, in this example 45 mins // Rate is buff strength, in this example player gains 3 Str setarray .BuffInfo ,260,2,360,1 // Life Insurance for 360 Mins Every 2nd Day ,198,3,120,10 // +10% Hp for 120 Mins Every 3th Day ,196,5,120,25 // +25 Flee for 120 Mins Every 5th Day ,257,7,240,50; // +50% Exp for 240 Mins Every 7th Day // Daily Prize items (max 128 days): // "<Zeny>|<Points>|<BaseExp>|<JobExp>|<itemID-1>|<amount-1>|<itemID-2>|<amount-2>...etc", // Day 1 // "<Zeny>|<Points>|<BaseExp>|<JobExp>|<itemID-1>|<amount-1>|<itemID-2>|<amount-2>...etc" // Day 2 // ...; // Total length of any days string must be 255 or shorter // * If players login longer than the last set // day, they will keep getting the last prize. setarray .Rewards$, "100", // Day 1: 100 Zeny "0|0|0|0|501|5", // Day 2: 5 Red Potion "0|0|0|0|503|5|506|5"; // Day 3: 5 White Potion + 5 Green Potion setarray .Pic$, "tutorial01", //pic with day1 highlighted "tutorial02", //pic with day2 highlighted "tutorial03"; //pic with day3 highlighted end; }  
    So that's what i added:
     
    1) Way to setup pictures.
    setarray .Pic$, "tutorial01", //pic with day1 highlighted "tutorial02", //pic with day2 highlighted "tutorial03"; //pic with day3 highlighted 2) Way to show em up.
    //===============Display of pic's with day highlighted.======================= cutin .Pic$[.@g],4; //============================================================================  
    Like i said its kinda easy. 
     
    P.S. Script skips one day due 1.59 version bug. So you might want to get a 1.5D and change it if you want to use it at ur server and I set 1min timer to get a reward for testing purposes.
×
×
  • Create New...

Important Information

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