Jump to content

IndieRO

Members
  • Content Count

    287
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by IndieRO

  1. in that version script have bug day 1 skip just use last script here the last version //===== EinherjarRO Scripts ================================== //= Daily Prize, OnPCLoginEvent //===== By: ================================================== //= Stolao //===== Current Version: ===================================== //= 1.63 //===== 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 Old Versions //= 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 //= 1.5A Fixed a logic bug, day 1 skipped //= 1.5B Fixed a [-1] bug //= 1.5C Actualy Fixed a logic bug, day 1 skipped //= 1.5D Added A .Rest Notification //= 1.5E Moved Sleep2 after the day check //= 1.5F Added additive logging so a dc wont reset the .Rest Delay //= 1.60 Added timer break into @at and @afk //= 1.61 Added '[Daily Rewards]:' to all messages //= 1.62 Fixed missing " //= 1.63 Fixed missing ) //===== Contact Info: ======================================== //= [Stolao] //= Email: [email protected] //============================================================ - script LOGIN -1,{ OnWhisperGlobal: OnLoginCmnd: OnPCLoginEvent: if(.Rest){ set @login, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2); if(@login > #LastDailyReward + .MaxWait ){ set #logintimer, 0; set @login, 0; } set .@rest, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + .Rest; message strcharinfo(0),"[Daily Rewards]: to collec reward you must remain logged in for "+ ( @login - .@rest ) +" Minuets"; } set .@i, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2); if(.@i - .Rest >= (#LastDailyReward + .MinWait)){ sleep2 100 + ( .Rest * 60000 ) - ( .@i - #logintimer ); if(.@i < #LastDailyReward + .MaxWait){ set #DRewardCon, #DRewardCon + 1; } else { set #DRewardCon, 0; } 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),"[Daily Rewards]: Recived "+ .@TT[.@x+1] +" "+ getitemname(.@TT[.@x]); } } if(.Mode & 2){ if(.@TT[0]){ set zeny,zeny + .@TT[0]; message strcharinfo(0),"[Daily Rewards]: Recived "+ .@TT[0] +"z"; } if(.@TT[1]){ setd getd(.Points$[0]),getd(.Points$[0]) + .@TT[1]; message strcharinfo(0),"[Daily Rewards]: 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),"[Daily Rewards]: You have collected your daily reward, for "+#DRewardCon+" day"+((#DRewardCon > 1)?"s":"")+" in a row."; cutin .Pic$[.@g],4; set #LastDailyReward, .@i; set #logintimer, 0; set @login, 0; } else { set .@days,(#LastDailyReward + .MinWait - .@i)/60/24; set .@hours,((#LastDailyReward + .MinWait - .@i)/60)%24; set .@mins,(#LastDailyReward + .MinWait - .@i)%60; message strcharinfo(0),"[Daily Rewards]: You have "+ ((.@days) ? .@days +":Days " : "") +""+ ((.@hours) ? .@hours +":Hours " : "") +""+ ((.@mins) ? .@mins +":Minutes " : "") +"till your next reward"; } end; OnPCLogoutEvent: if(@login){ set .@i, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2); set #logintimer, .@i - @login + #logintimer; set @login, 0; } return; 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 + 2 + 4 + 8; //To Enable @ Command '@loginreward' unslash next lines // * Needs extra commands for typos bindatcmd("daily" ,"LOGIN::OnLoginCmnd",0,99); //Enable Delay if @afk or @autotrade are available to players // remove // to enable certain command checks //bindatcmd("at" ,"LOGIN::OnPCLogoutEvent",0,99); //bindatcmd("autotrade" ,"LOGIN::OnPCLogoutEvent",0,99); //bindatcmd("AT" ,"LOGIN::OnPCLogoutEvent",0,99); //bindatcmd("Autotrade" ,"LOGIN::OnPCLogoutEvent",0,99); //bindatcmd("afk" ,"LOGIN::OnPCLogoutEvent",0,99); //bindatcmd("AFK" ,"LOGIN::OnPCLogoutEvent",0,99); //Minimum Minuets Between Collecting Daily Reward // Day: 22*60 - 24*60 // Week: 10080 set .MinWait,24*60; //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$, "0|0|0|0|12103|1", "0|0|0|0|12103|1", // Day 1: 100 Zeny "0|0|0|0|607|10", // Day 2: 5 Red Potion "0|0|0|0|7620|5", // Day 3: enrich ori "0|0|0|0|7619|5", // Day 4: enrich elu "0|0|0|0|12221|5", // Day 5: megaphone "0|0|0|0|12214|1", // Day 6: convex "0|0|0|0|7776|1", // Day 7: gym pas "0|0|0|0|12029|5", // Day 8: "0|0|0|0|12030|5", // Day 9: "0|0|0|0|12033|5", // Day 10: "0|0|0|0|12031|5", // Day 11: "0|0|0|0|12103|2", // Day 12: "0|0|0|0|12214|2", // Day 13: "0|0|0|0|7776|1", // Day 14: "0|0|0|0|7619|10", // Day 15: "0|0|0|0|7620|10", // Day 16: "0|0|0|0|12203|10", // Day 17: "0|0|0|0|12210|1", // Day 18: "0|0|0|0|12204|10", // Day 19: "0|0|0|0|12103|3", // Day 20: "0|0|0|0|7776|1", // Day 21: "0|0|0|0|12214|3", // Day 22: cpnvex "0|0|0|0|20765|1", // Day 23: Costume Archengling "0|0|0|0|12207|10", // Day 24: "0|0|0|0|12205|10", // Day 25: "0|0|0|0|12202|10", // Day 26: "0|0|0|0|12210|2", // Day 27: bubble "0|0|0|0|7776|1", // Day 28: "0|0|0|0|12206|10", // Day 29: "0|0|0|0|12103|3"; // Day 30: BB setarray .Pic$, "day1", //pic with day1 highlighted "day1", //pic with day2 highlighted "day2", //pic with day3 highlighted "day3", "day4", "day5", "day6", "day7", "day8", "day9", "day10", "day11", "day12", "day13", "day14", "day15", "day16", "day17", "day18", "day19", "day20", "day21", "day22", "day23", "day24", "day25", "day26", "day27", "day28", "day29", "day30"; end; }
  2. i hope this system implement on hercules asap
  3. use nemo patcher http://herc.ws/board/topic/2905-nemo-client-patcher/page-1
  4. @@Legend can you give me some example to configuration coordinat x and y without array? and still connected with npc vending helper thxx
  5. I know this script is already good but does not match with map I use btw i use this map to vending area https://rathena.org/board/topic/67742-custom-vending-map/
  6. @@raPalooza~ finally you share it thx a lot
  7. i try use script vending control by emistry //===== eAthena Script ===================================== //= Vendor Control //===== By: ================================================ //= Original by Emistry //= Rewrite by AnnieRuru //===== Current Version: =================================== //= 1.0 //===== Compatible With: =================================== //= Hercules 2014-02-18 //===== Description: ======================================= //= Vendors only vend on certain coordinate, looks tidy //===== Topic ============================================== //= http://hercules.ws/board/topic/4509- //===== Additional Comments: =============================== //= Emistry would love his script rewritten by his master ? //========================================================== vend_zone,100,103,4 script Vending Helper 4_GEFFEN_13,{ mes "["+ strnpcinfo(1) +"]"; if ( !getskilllv( "MC_VENDING" ) ) { mes "You dont have ^0055FFVending Skill^000000."; close; } mes "Select a slot and start vending."; while ( true ) { .@menu$ = .@currentpage ? "Previous Page:" : ":"; .@pageindex = .@currentpage * .slotperpage; for ( .@i = 0; .@i < .slotperpage && .@pageindex + .@i < .count; .@i++ ) { if ( !getmapxy( .@map$, .@x, .@y, 1, "#vend_slot"+( .@pageindex + .@i ) ) && getareausers( .map$, .@x, .@y, .@x, .@y ) ) .@menu$ = .@menu$ +"Slot No."+( .@pageindex + .@i +1 )+" - ^FF0000[UnAvailable]^000000:"; else { .@menu$ = .@menu$ +"Slot No."+( .@pageindex + .@i +1 )+" - ^00CC00[Available]^000000:"; .@available++; } } if ( .@currentpage != .maxpage ) .@menu$ = .@menu$ + "Next Page"; .@pick = select( .@menu$ ) -1; if ( !.@pick ) .@currentpage--; else if ( .@pick == .slotperpage +1 ) .@currentpage++; else break; } .@s = .@currentpage * .slotperpage + .@pick -1 ; if ( !getmapxy( .@map$, .@x, .@y, 1, "#vend_slot"+ .@s ) && getareausers( .map$, .@x, .@y, .@x, .@y ) ) { mes " "; mes "This slot is ^FF0000[UnAvailable]^000000."; close; } warp .@map$, .@x, .@y; hideonnpc "#vend_slot"+ .@s; donpcevent "#vend_slot"+ .@s +"::OnCheckAvailable"; end; OnInit: // ======================= Configuration HERE ============================= .map$ = "vend_zone"; // map setarray .@x, 56,59,62,65,68,71,74,77,80,83,86,89,92,95,104,107,110,113,116,119,122,125,128,131,134,137,140,143; // x coordinates setarray .@y, 140,145,113,0; // y coordinates .slotperpage = 20; // display how many slots per page (prevent making the menu too long) // too many people said this script causes vendor cannot vend at all on the map, ( coordinates has set too near ) // because there is a setting in 'conf\battle\player.conf' to disallow player to vend too near other npcs setbattleflag "min_npc_vendchat_distance", 0; // comment this line to make the default value back to 3 freeloop 1; setcell .map$, 0,0, 500,500, cell_novending, 1; .@x_size = getarraysize( .@x ); .@y_size = getarraysize( .@y ); .@i = 0; while ( .@i < .@y_size ) { .@j = 0; while ( .@j < .@x_size ) { if ( checkcell( .map$, .@x[.@j], .@y[.@i], cell_chkpass ) ) { movenpc "#vend_slot"+ .count, .@x[.@j], .@y[.@i]; setcell .map$, .@x[.@j], .@y[.@i], .@x[.@j], .@y[.@i], cell_novending, 0; if ( getareausers( .map$, .@x[.@j], .@y[.@i], .@x[.@j], .@y[.@i] ) ) { hideonnpc "#vend_slot"+ .count; donpcevent "#vend_slot"+ .count +"::OnCheckAvailable"; } .count++; } .@j++; } .@i++; } .maxpage = .count / .slotperpage + ( .count % .slotperpage > 0 ) -1; end; } - script vend_slot -1,{ mes "[Vending Slot]"; getmapxy .@map$, .@x, .@y, 1; if ( !getskilllv( "MC_VENDING" ) ) { mes "You dont have ^0055FFVending Skill^000000."; close; } else if ( getareausers( .@map$, .@x, .@y, .@x, .@y ) ) { mes "Someone already using this slot"; close; } mes "Spot : ^777777Available^000000"; mes "^0055FF[ Vending Area Rules ]^000000"; mes "^FF0000 ~ Use proper Shop Name.^000000"; mes "^777777Player who failed to follow these rules will be punished.^000000"; unitwalk getcharid(3), .@x, .@y; hideonnpc strnpcinfo(0); donpcevent strnpcinfo(0)+"::OnCheckAvailable"; close; OnCheckAvailable: sleep 10000; getmapxy .@map$, .@x, .@y, 1; while ( getareausers( .@map$, .@x, .@y, .@x, .@y ) ) sleep 10000; hideoffnpc strnpcinfo(0); end; } // Add more if needed. vend_zone,0,0,4 duplicate(vend_slot) #vend_slot0 4_BULLETIN_BOARD2 it's possible to setting locate without using array just use spesific X and Y?
  8. @@True Zeal thx a lot it's fully working fine
  9. IndieRO

    Rebellion Skills

    hercules didn't support rebellion job until now
  10. is it possible the player get the item when change job if yes, can someone help me make this script how to produce : when player change job ex swordman player will get item spear (1404).. when player change job ex thief player will get item maingauche (1207)..
  11. @@raPalooza~ thanks a lot this is so awasome
  12. Hello friend, was seeing something in the function 'bindatcmd' and I made a change that I think you will like it, you will only need apply this change and all script commands will be read and show together in '@commands'. atcommand.c_v2.patch @@Cretino thx a loot bro
  13. what a client do you use? i can't produce that bug like what u say i use 20150513 everthing fine @@raPalooza~ btw can u share your costume cursor??
  14. It was already fixed a week or two ago, I just didn't leave any note here What's that item Id? Happens with all items? yes with all item id
  15. @@Mumbles hello, can u add menu request song for player?? like player can request new song for radio
  16. You must make 30 different cutin to make like that This is an example that I have created by myself https://dl.dropboxusercontent.com/content_link/ikSFpkBiQrEMHKmw4ELyKmGM2Plx8DngjRP8sa5KXCQeS2zqIj4BPTnY41Y9MJDm/file
  17. @@Dastgir i get error on report message seller https://www.dropbox.com/s/lvvyxwo9he0lvtx/screenHercules002.jpg?dl=0 how to fix unknown item?
  18. @@Quazi can u share again ur script? your link already dead please reupload thx
  19. i try to use instance pvp but i got error when implement this script this is problem on map server please somebody help me
  20. ohh i see thx yeah when player on affect decrease agility he got over speed
  21. how to produce : players get the effect dreacase agi then use the speed potions and then get over speed is it true speed potion is not affected on a skill dreacase agi?
×
×
  • Create New...

Important Information

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