mrlongshen
-
Content Count
1126 -
Joined
-
Last visited
-
Days Won
3
Reputation Activity
-
mrlongshen reacted to Aeromesi in Multiple reward
The edit you'll want is a simple function Global_Functions.txt contains inside the Hercules folder npc folder.
.RandomItemAmount = 10;.RandomItemList = callfunc("F_Rand",1129,1222,1163,1357,1360,1522,1811,1410);getitem .RandomItemList, .RandomItemAmount;
Would give you the items of ID's listed after "F_Rand"
PS: You can always message me on Skype instead of making new topic for simple request. I'm more than glad to help with easy solutions like this personally with you.
-
mrlongshen reacted to quesoph in how can i add soul link buffs on this script?
- script Healer -1,{ set .@Price,0; // Zeny required for heal set .@Buffs,1; // Also buff players? (1: yes / 0: no) set .@Delay,0; // Heal delay, in seconds callfunc "F_ClearGarbage",0; switch ( BaseJob ) { case 18: .@spirit = 445; break; case 20: case 15: .@spirit = 447; break; case 19: .@spirit = 455; break; case 4047: .@spirit = 448; break; case 17: .@spirit = 456; break; case 16: .@spirit = 449; break; case 12: .@spirit = 457; break; case 14: .@spirit = 450; break; case 10: .@spirit = 458; break; case 23: .@spirit = 451; break; case 11: .@spirit = 460; break; case 7: .@spirit = 452; break; case 4049: .@spirit = 461; break; case 8: .@spirit = 454; break; case 9: .@spirit = 453; break; } if (@HD > gettimetick(2)) end; if (.@Price) { message strcharinfo(0),"Healing costs "+.@Price+" Zeny."; if (Zeny < .@Price) end; if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close; set Zeny, Zeny-.@Price; } specialeffect2 EF_HEAL2; percentheal 100,100; if (.@Buffs) { for( .@i = 0; .@i < getarraysize( .Buffs$ ); .@i++ ) { .@sum = atoi(.@b$[.@i]) + .min_Levels[.@i]; .@j = .Buffs$[.@i]; stand (strcharinfo(0)); // <- Added this so characters dont get stuck when soul link is casting. if( .@sum ) sc_start4 .@j, 240000, 5, .@spirit,0,0; if ( .min_Levels[3] ) skilleffect .@spirit, 5; // Start Soul Link Effect. } } if (.@Delay) set @HD, gettimetick(2)+.@Delay; close;OnInit: setarray .Buffs$, SC_INC_AGI, SC_BLESSING, SC_KYRIE, SC_SOULLINK; setarray .min_Levels, 5, 5, 1, 5; end; }prontera,163,185,6 duplicate(Healer) Healer1#alb 909 -
mrlongshen reacted to Aeromesi in Lucky Poring
I turned your script-request into quite a lively thing. I sent you a message @@mrlongshen, and you can view it here:
http://herc.ws/board/topic/9149-aeromesis-fast-as-the-wind-ragnarok-services/?p=66356
Hop on Skype!
-
mrlongshen reacted to Samuel in Increase max hp for all job
@@mrlongshen
in conf/battle/player.conf
// Maximum HP. (Default is 1000000)
max_hp: 1000000
-
mrlongshen reacted to AnnieRuru in Cashmount
- script asdaskdha FAKE_NPC,{OnInit: setitemscript 12111 , "{ if ( !hascashmount() ) setcashmount; }", 1; setitemscript 12111 , "{ if ( hascashmount() ) setcashmount; }", 2; end;} -
mrlongshen got a reaction from Easycore in PvP Ladder - Discount point at die
@@Easycore Hello bro. I'm using annie script.
//===== eAthena Script ======================================================= //= PVP ladder script with dota announcement ( SQL only ) //===== By: ================================================================== //= ~AnnieRuru~ //===== Current Version: ===================================================== //= 2.9 //===== Compatible With: ===================================================== //= eAthena SQL 14279, with MySQL 5.1 //===== Description: ========================================================= //= PVP ladder store in SQL table //= plus anti-sit-killer feature //===== Topic ================================================================ //= http://www.eathena.ws/board/index.php?showtopic=177918 //===== Additional Comments: ================================================= //= still don't have modify value option, will be done ... in next year ... //============================================================================ -
mrlongshen reacted to Dastgir in New 2015 alt+v
https://github.com/ROClientSide/Translation/tree/master/data/texture/%C3%80%C2%AF%C3%80%C3%BA%C3%80%C3%8E%C3%85%C3%8D%C3%86%C3%A4%C3%80%C3%8C%C2%BD%C2%BA/ro_menu_icon -
mrlongshen reacted to ossi0110 in FluxCP for new SQL Table
Ok
Open the modulesrankingdeath.php
and change
$sql .= "LEFT JOIN {$server->charMapDatabase}.`global_reg_value` AS reg ON reg.char_id = ch.char_id AND reg.str = 'PC_DIE_COUNTER' "; into
$sql .= "LEFT JOIN {$server->charMapDatabase}.`char_reg_num_db` AS reg ON reg.char_id = ch.char_id AND reg.key = 'PC_DIE_COUNTER' ";
now Open modulescharacterview.php
and change
$sql .= "LEFT OUTER JOIN {$server->charMapDatabase}.`global_reg_value` AS reg ON reg.char_id = ch.char_id AND reg.str = 'PC_DIE_COUNTER' "; into
$sql .= "LEFT OUTER JOIN {$server->charMapDatabase}.`char_reg_num_db` AS reg ON reg.char_id = ch.char_id AND reg.key = 'PC_DIE_COUNTER' ";
and errors are solved
-
mrlongshen reacted to AnnieRuru in Find the MVP
https://eathena.ws/board/index.php?showtopic=243753
it just exactly like find the mushroom event
http://upaste.me/4b1521981271160f0
-
mrlongshen reacted to eaea in 3rd Job Suit Problem
Hi,
I made a 3rd job suit using this code:
OnEquipScript: <" { changebase roclass(eaclass()|EAJL_THIRD); } "> OnUnequipScript: <" {changebase Class;} ">
Everything works fine except for the Rune Knight with mount.
I tried to equip it to a Crusader with Peco and when I equip the suit, it changes into a Royal Guard with Gryphon, when I try to do it with a Knight mounted on Peco, it displays the mounted status but the Dragon Mount is not showing.
I also tried to change my job into an actual Rune Knight and tried to mount and the sprites works just fine.
I also tried to use the class_suits v1.2 script using an NPC. Same result.
Any one have ideas how to fix this? Thank you!
-
mrlongshen reacted to AnnieRuru in 3rd Job Suit Problem
sry, I gave wrong answer
I noticed we already have script commands to setoption, so there is no need to patch
- script kfsdkfhsf FAKE_NPC,{OnInit: setitemscript 1201, "{ if ( Class == Job_Knight && checkmount() ) { setoption Option_Dragon1; } changebase roclass(eaclass()|EAJL_THIRD); }", 1; setitemscript 1201, "{ changebase Class; } ", 2; end;} -
mrlongshen reacted to Dastgir in Sending own point by command in script or item based
@set #EVENTPOINTS 1
^ Will change points to 1
-
mrlongshen reacted to ossi0110 in Sending own point by command in script or item based
use @set #EVENTPOINTS +1
-
mrlongshen reacted to AnnieRuru in Poring Summoner problem.
you are right, newer scripting engine now strict with end; or close; command
this one should be bug free, I think ?
http://upaste.me/1f8221954a6d19088
-
mrlongshen reacted to Winterfox in PVP rest time
@@mrlongshen
prontera,165,177,3 script PVP Warper 1_M_MOC_LORD,{ if ( !agitcheck() || !agitcheck2() ) { if( gettimetick( 2 ) < PVPCD ) { dispbottom "You need to rest for 5 minutes."; end; } if ( select( "Yes!", "No thanks.") == 2 ) close; warp "guild_vs5",0,0; announce strcharinfo(0) + " has entered the PVP Room.",0; announce "There are ["+getmapusers("guild_vs5")+"/30] players inside.",0; } end; OnPCKillEvent: if ( strcharinfo( PC_MAP ) != "guild_vs5" ) end; if( PVPKilltarget == killedrid ) { PVPTargetKillCount++; } else { PVPKilltarget = killedrid; PVPTargetKillCount = 1; } if( PVPTargetKillCount == 5 ) { PVPCD = gettimetick( 2 ) + 300; PVPKilltarget = 0; PVPTargetKillCount = 0; warp "prontera",0,0; }} -
mrlongshen reacted to AnnieRuru in PVP rest time
hehehe ... 1 of my super old script
https://www.eathena.ws/board/index.php?showtopic=155874
I mean I used in my dota announcement script -> https://www.eathena.ws/board/index.php?showtopic=237765
prontera,155,187,3 script PVP Warper 1_F_MARIA,{ if ( !agitcheck() && !agitcheck2() ) { if ( pvproom_cooldown + 5*60 > gettimetick(2) ) { dispbottom "You need to rest for 5 minutes."; end; } if ( select("Yes!","No thanks.") == 2 ) close; announce strcharinfo(0) + " has entered the PVP Room.", bc_all; announce "There are ["+getmapusers("guild_vs5")+"/30] players inside.", bc_all; warp "guild_vs5",0,0; deletearray @sitkillid; deletearray @sitkillidtimes; @sitkillsize = 0; end; } end;OnPCKillEvent: if ( strcharinfo(PC_MAP) != "guild_vs5" ) end; while ( killedrid != @sitkillid[.@i] && .@i < @sitkillsize ) .@i++; if ( .@i == @sitkillsize ) // only add new entry if kill new players @sitkillid[.@i] = killedrid; @sitkillidtimes[.@i]++; @sitkillsize++;// dispbottom "You just killed "+ rid2name( killedrid ) +" for "+ @sitkillidtimes[.@i] +" times."; if ( @sitkillidtimes[.@i] == 5 ) { // when kill same player 5 times pvproom_cooldown = gettimetick(2); warp "Save", 0,0; } end;}guild_vs5 mapflag pvp.btw it should be && condition
either if ( !agitcheck() && !agitcheck2() ) {
or if ( agitcheck() || agitcheck2() ) end;
-
-
mrlongshen reacted to Winterfox in How to delete all cashpoints?
You could make that a bit better like that:
- script CashReset -1,{ OnPCLoginEvent: if( #CashReset ) end; #CASHPOINTS = 0; #CashReset = 1;} The table you are searching for is acc_reg_num_db where account_id is the account of the user of course, key is #CASHPOINTS and value is the current amount of cashpoints the user has. If there is no entry for a specific user that means he has 0.
The same applies to kafra points you just have to switch the key to #KAFRAPOINTS.
Instead of a script you also could use this sql query to delete all cashpoints:
DELETE FROM acc_reg_num_db WHERE key = "#CASHPOINTS" -
-
mrlongshen reacted to Aeromesi in How to delete all cashpoints?
Here's a script @@mrlongshen.
- script CashReset -1,{OnPCLoginEvent: if( !#CashReset ) { #CASHPOINTS = 0;#CashReset++;} elseend;}
That way when they login the next time Cash Points will be 0'd out.
I'm curious what happened? Some abuse of Cash Point script?
-
mrlongshen reacted to AnnieRuru in All monster drops specific item with blacklist mobs
simple script
- script kdjsfhksdjfh FAKE_NPC,{OnInit: setarray .itemid, Poring_Coin, TCG_Card; setarray .rate, 10000, 10000; .blacklist$ = "1062,1088,1183,1186,1200,1212,1220,1221,1234,1235," + "1244,1245,1250,1268,1290,1293,1294,1296,1298,1299," + "1300,1301,1303,1304,1305,1306,1308,1309,1311,1313," + "1515,1588,1618,1676,1677,1678,1679,1796,1797,1974," + "1975,1976,1977,1978,1979"; .size = getarraysize(.itemid); freeloop true; for ( .@id = 1001; .@id <= 5000; .@id++ ) // 5000 is MAX_MOB_DB from srcmapmob.h if ( strmobinfo( 3, .@id ) && !compare( ","+ .blacklist$ +",", ","+ .@id +"," ) ) for ( .@i = 0; .@i < .size; .@i++ ) addmonsterdrop( .@id, .itemid[.@i], .rate[.@i] ); end;}..
.
@@Winterfox
there is no need to use query_sql for this operation
just a *compare command will do
EDITING for dynamic item ID and random rate
done
-
-
mrlongshen reacted to jezznarRox in Farm zone no mob ?
Please try this. Not Tested.
adjust syntax if erroneous.
this will:
1. Wait for a person to go in before spawning monsters
2. attaches a player timer to the first person who goes in marking the start of the existence of the event FarmZone
3. When timer expires, deletest player timer, warps players out, cleans the map, announces to the whole server that it is already usable by other players
4. Still warp out players when they reach Item hunting limit
prontera,164,172,5 script Farm Zone 4_F_JPN2,{function RandomizeItem;while( 1 ){mes "How can i help you ?";switch( select( "Information:Farm Items" )){case 1: mes "This is a Farm Zone."; mes "You are able to Hunt Monster inside this Room."; mes "Every Monster will award you random items."; next; mes "But there is some Condition.."; mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000"; mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000"; mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000"; next; mes "There will be a ^FF0000Room Cleaning^000000 from time to time..."; mes "All players will be kicked out, it is your bad luck if you meet this."; mes "Delay will still apply even though you just go in for 1 Seconds.."; next; break;case 2: if( #HuntRoomDelay > gettimetick(2) ){ set .last,#HuntRoomDelay - gettimetick(2); set .@min, .last % ( 24 * 3600 ) % 3600 / (60); mes "Wait for ^FF0000"+.@min+" Minutes^000000."; close; }else if( getarraysize( .Hunter ) >= .MaxPlayers ){ mes "Currently the Room is Full. Please try again later."; close; }else{ if(!getmapusers(.Map$)) {//mrlongshen: Populate the map only when someone goes in and noone is in the map. monster .Map$,0,0,"[ Farm Zone ] Resident",-1,80,strnpcinfo(0)+"::OnNormalKill"; monster .Map$,0,0,"[ Farm Zone ] Guardian",-3,5,strnpcinfo(0)+"::OnBossKill"; addtimer .RoomCleanMin*60*1000, strnpcinfo(0)+"::OnFarmCleanUp"; //add player timer to when he clean up is done }//mrlongshen warp .Map$,0,0; set .Hunter[getarraysize( .Hunter )],strcharinfo(0); set #HuntRoomDelay,gettimetick(2) + ( .DelayMin * 60 ); set #FarmHunt,0; end; } }}end; //mrlongshenOnFarmCleanUp: //mrlongshen clean up algorithm deltimer strnpcinfo(0)+"::OnFarmCleanUp"; killmonster .Map$,"All"; if(getarraysize( .Hunter )) mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0; sleep2 3000; mapwarp .Map$,"prontera",155,181; deletearray .Hunter,getarraysize( .Hunter ); announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another "+.MaxPlayers+" Players may go in now.",bc_blue; //tell people that the farm zone can now be used againend; //mrlongshenOnInit:// Maximum Player can join per X Minutes.set .MaxPlayers,2;// Adding X Minutes of Delay before can go in again.set .DelayMin,1;// Maximum Hunt Limit per round inside the Zone.set .MaxItemLimit,10;// Map that will be used in thos Zone.set .Map$,"guild_vs5";// Clear Map Every X Minutes.set .RoomCleanMin,15;// Mapflag Initializationsetmapflag .Map$,mf_nomobloot;setmapflag .Map$,mf_nomvploot;setmapflag .Map$,mf_nowarpto;setmapflag .Map$,mf_nochat;setmapflag .Map$,mf_novending;setmapflag .Map$,mf_nocommand,60;setmapflag .Map$,mf_nojobexp;setmapflag .Map$,mf_nobaseexp;end;OnNormalKill:RandomizeItem( 0,rand(1,5) );monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";end;OnBossKill:RandomizeItem( 1,rand(1,3) );monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";end;// Function that used to Generate Random Itemsfunction RandomizeItem {set #FarmHunt,#FarmHunt + getarg(1);// Normal Monster in Zone Drops Listsif( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12033,12016,14534;// Normal Boss in Zone Drops Listsif( getarg(0) == 1 ) setarray .ItemList[0],14536,12912,12267,12266,14601,13830,13831,13832,13833;for( set .@i,1; .@i <= getarg(1); set .@i,.@i + 1 ){ getitem .ItemList[ rand( getarraysize( .ItemList ) ) ],1; }deletearray .ItemList,getarraysize( .ItemList );dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";if( #FarmHunt >= .MaxItemLimit ){ message strcharinfo(0),"Limit Reached , you may join again later."; sleep2 2000; warp "prontera",155,181; }return;} } -
mrlongshen reacted to Litro in Farm zone no mob ?
can't see where is error that cause no mobs spawning except for mapflag nogo (not sure that will stop the script to run again or stop entirely at that point), there is 2 nogo in the first post in code box except that i think the script will run as supposed to be... if you want you can try this one
prontera,164,172,5 script Farm Zone 4_F_JPN2,{ while(1) { mes "How can i help you ?"; switch( select( "Information:Farm Items" )) { case 1: mes "This is a Farm Zone."; mes "You are able to Hunt Monster inside this Room."; mes "Every Monster will award you random items."; next; mes "But there is some Condition.."; mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000"; mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000"; mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000"; next; mes "There will be a ^FF0000Room Cleaning^000000 from time to time..."; mes "All players will be kicked out, it is your bad luck if you meet this."; mes "Delay will still apply even though you just go in for 1 Seconds.."; next; break; case 2: if (#HuntRoomDelay > gettimetick(2)) { .@last = #HuntRoomDelay - gettimetick(2); .@min = .@last % ( 24 * 3600 ) % 3600 / (60); mes "Wait for ^FF0000"+.@min+" Minutes^000000."; close; } else if (getarraysize(.Hunter) >= .MaxPlayers ) { mes "Currently the Room is Full. Please try again later."; close; } else { warp .Map$,0,0; .Hunter[getarraysize( .Hunter )] = strcharinfo(0); #HuntRoomDelay = gettimetick(2) + ( .DelayMin * 60 ); #FarmHunt = 0; end; } } }OnInit: function RandomizeItem; .MaxPlayers = 2; // Maximum Player can join per X Minutes. .DelayMin = 1; // Adding X Minutes of Delay before can go in again. .MaxItemLimit = 10; // Maximum Hunt Limit per round inside the Zone. .Map$ = "guild_vs5"; // Map that will be used in thos Zone. .RoomCleanMin = 15; // Clear Map Every X Minutes. // Mapflag Initialization setarray .@mapflag, mf_nomobloot, mf_nomvploot, mf_nowarp, mf_nowarpto, mf_nochat, mf_novending, mf_nojobexp, mf_nobaseexp; for (.@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag .Map$, .@mapflag[.@i]; setmapflag .Map$, mf_nocommand, 60; while(1) { killmonster .Map$,"All"; mapwarp .Map$,"prontera",155,181; monster .Map$, 0, 0,"[ Farm Zone ] Resident", -1, 80, strnpcinfo(0)+"::OnNormalKill"; monster .Map$, 0, 0,"[ Farm Zone ] Guardian", -3, 5, strnpcinfo(0)+"::OnBossKill"; deletearray .Hunter,getarraysize( .Hunter ); announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue; sleep ( .RoomCleanMin * 60000 ); mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0; killmonster .Map$,"All"; sleep 3000; } end;OnNormalKill: RandomizeItem( 0,rand(1,5) ); monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill"; end;OnBossKill: RandomizeItem( 1,rand(1,3) ); monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill"; end;// Function that used to Generate Random Itemsfunction RandomizeItem { #FarmHunt += getarg(1); // Normal Monster in Zone Drops Lists if( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12033,12016,14534; // Normal Boss in Zone Drops Lists if( getarg(0) == 1 ) setarray .ItemList[0],14536,12912,12267,12266,14601,13830,13831,13832,13833; for(.@i = 1; .@i <= getarg(1); .@i++) getitem .ItemList[rand(getarraysize(.ItemList))], 1; deletearray .ItemList, getarraysize(.ItemList); dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items"; if (#FarmHunt >= .MaxItemLimit) { message strcharinfo(0),"Limit Reach , you may join again later."; sleep2 2000; warp "prontera",155,181; } return;}} -
mrlongshen reacted to Litro in One click mining constant
now mining will only stop when the miner exhausted his mining tools supply, when the miner get nothing the mining process will not be stopped any more and you can set success rate again
i have integrate the progress bar reduce time in the script below, look at the comment and make sure you put it right
/*=========================================================Variant Miningby Glitch [Via]===========================================================Request: http://herc.ws/board/topic/1886-simple-mining/===========================================================Description:A simple mining system; allows for interacting players toexcavate minerals by "mining" them with special equipmentand tools.Configuration is done in arrays so that settings may bechanged with no modifications to the script. Keep in mindthat each array value is respective to their commented set.Duplicate in additional locations as needed.=========================================================*/pay_dun00,54,147,0 script Variant Mineral#1::mining 1907,{ disable_items; .@progress = .progress; // Check equipment for (.@i = 0; .@i < getarraysize(.equip); .@i++) { if (!isequipped(.equip[.@i])) { message strcharinfo(0), "You need to have '"+ getitemname(.equip[.@i]) +"' equipped to mine!"; .@unequipped++; } else .@progress -= .e_cast[.@i]; } // Show count of equipment not worn if (.@unequipped) { message strcharinfo(0), .@unequipped +" of "+ getarraysize(.equip) +" equipment has not been worn."; end; } while(1) { // Check tools for (.@i = 0; .@i < getarraysize(.tool); .@i++) { if (countitem(.tool[.@i]) < .inventory[.@i]) { message strcharinfo(0), "You need to bring "+ .inventory[.@i] +" "+ getitemname(.tool[.@i]) +" to mine!"; .@gearless++; } } // Show count of tools not in inventory if (.@gearless) { .@grammar$ = ((getarraysize(.tool) > 1) ? "tools were" : "tool was"); message strcharinfo(0), .@gearless +" of "+ getarraysize(.tool) +" "+ .@grammar$ +" not brought."; end; } // Progress message strcharinfo(0), "Mining in progress..."; progressbar "green", .@progress; // Delete tools for (.@i = 0; .@i < getarraysize(.tool); .@i++) delitem .tool[.@i], .inventory[.@i]; // Audio/visual effects soundeffect .sound$, 0; specialeffect .effect; // Drop random debris getmapxy(.@m$, .@x, .@y, 0); makeitem .debris, .scatter, .@m$, .@x + rand(2), .@y + rand(1,2); // Randomize target mineral to mine .@target = rand(getarraysize(.mineral)); // Max range of success .@range = .success[.@target * 2 + 1]; // Check if failed if(rand(1, .@range) != .success[.@target * 2]) { message strcharinfo(0), "Nothing valuable was excavated..."; // Get mineral(s) } else { getitem .mineral[.@target], .amount[.@target]; message strcharinfo(0), "You have successfully mined "+ .amount[.@target] +" "+ getitemname(.mineral[.@target]) +"!"; } } end; OnWhisperGlobal: // Whisper anything to initialize settings message strcharinfo(0), strnpcinfo(1) +" : 'OnInit' label has been intialized."; OnInit: // Minerals setarray .mineral[0], 985, 984, 6224, 6223; // Jejelopy, Elunium, Oridecon, Bradium, Cranium setarray .amount[0], 1, 1, 1, 1; // Amount to mine // Success rate: (x / y)% chance setarray .success[0], 1, 2, // 50% for Elunium 1, 2, // 50% for Oridecon 1, 4, // 25% Bradium 1, 4; // 25% Cranium //Example of calculation //1, 5, // 1/5 (20%) //1, 2, // 1/2 (50%) //4, 5, // 4/5 (80%) //1, 50; // 1/50 (2%) // Mining time (in seconds) - .progress need to be greater than from total .e_cast!! .progress = 3; // Equipment setarray .equip[0], 5009, 2218; // Safety Helmet, Flu Mask setarray .e_cast[0], 1, 1; // Progress bar reduce time. - .e_cast need to be smaller from total .progress!! // Tools setarray .tool[0], 7318, 7327; // Old Pick, Flashlight setarray .inventory[0], 1, 1; // Amount per tool // Audio/visual effects .sound$ = "chepet_attack.wav"; .effect = 4; // Debris .debris = 7049; // Stone .scatter = 5; // Debris amount end; }// Duplicatespay_dun00,55,147,0 duplicate(mining) Variant Mineral#2 1907pay_dun00,53,146,0 duplicate(mining) Variant Mineral#3 1907pay_dun00,53,145,0 duplicate(mining) Variant Mineral#4 1907pay_dun00,69,148,0 duplicate(mining) Variant Mineral#5 1907pay_dun00,70,147,0 duplicate(mining) Variant Mineral#6 1907pay_dun00,70,146,0 duplicate(mining) Variant Mineral#7 1907