Jump to content

Begin

Members
  • Content Count

    85
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    Begin got a reaction from ThyroDree in @pk command by Dastgir   
    Hello Ms. Annie,
    I am using @pk commands for years since rAthena. It is being used in a High Rate server which is a PK Enabled on all maps because players want a different view of PK Place other than PvP Room. Sometimes, @pk is being used when a player wants to only farm and doesn't want to be killed. Sometimes, being used by newbies or if you have a Gold Room, they're also using it to avoid being killed.
  2. Upvote
    Begin got a reaction from ThyroDree in Recommend a Hosting   
    I recommend PonyVPS Hosting as they are currently handling my 2 servers.
  3. Upvote
    Begin got a reaction from AnnieRuru in @pk command by Dastgir   
    Hello Ms. Annie,
    I am using @pk commands for years since rAthena. It is being used in a High Rate server which is a PK Enabled on all maps because players want a different view of PK Place other than PvP Room. Sometimes, @pk is being used when a player wants to only farm and doesn't want to be killed. Sometimes, being used by newbies or if you have a Gold Room, they're also using it to avoid being killed.
  4. Upvote
    Begin reacted to luizragna in Custom Unit HP Bar System   
    Hello guys, i'm making a custom hp bar system for mob units.
    The command show the HP of the mob for all players in the map.
     
    I am using the cutin command, the problem is that I do not think so many files are necessary. In the case 1 image for each percentage of hp I would like your opnion and help to improve this system and make it lighter.
    Test yourselves :).
     
    HP Bar System:
    payon,147,229,4 script Test#HPbar 1_F_MARIA,{ if (.HP_Bar == 0) { .HP_Bar = 1; .mobGID = monster ("payon",148,226,"[T] HP Test",POPORING,1,strnpcinfo(0)+"::OnDie"); setunitdata .mobGID,UDT_MAXHP,4000; setunitdata .mobGID,UDT_HP,4000; .@count = getunits(BL_PC, .@units, false, "payon"); for (.@i = 0; .@i < .@count; .@i++) addtimer(0,strnpcinfo(0)+"::OnHPBar", .@units[.@i]); } end; OnDie: .HP_Bar = 0; end; OnHPBar: .U_MAXHP = getunitdata (.mobGID,UDT_MAXHP); while (.HP_Bar != 0) { .U_HP = getunitdata (.mobGID,UDT_HP); .P_HP = (.U_HP*100)/.U_MAXHP; cutin(""+.P_HP+"", 1); sleep2 100; } cutin("0", 1); sleep2 5000; //Delay to hide HP Bar cutin("", 255); end; }  







     
    Donwload of the data folder files: HP Bar System (2018-06-26).rar
  5. Upvote
    Begin reacted to Habilis in [AutoEvent] Trivia   
    Hello, as promised here is a Trivia auto event.
    This script is originally way back from eA, it was adjusted on rA. (All credits in the header)
    And now, I decided to Enhance it.

    - An enhanced version of facts auto event. The Event is announced. The NPC asks 10 random 
    - questions from a question bank. Players have to write the answer to the main chat.
    - Players don't need to worry about CAPITAL letters.
    - 1) Question is asked by the NPC.

    - 2) If there is no answer after 15 seconds NPC will give a hint.

    - 3) IF there is still no answer after a hint, the question is skipped.

    - 4) If the right answer is given, the player is announced and the reward is given

     
    Side notes:
    1) Control
    If you have some kind of AutoEbent Controller, I've included the event control methods
    OnEventStart:
    OnStop:
    OnEventTimeOut:
     
    If you don't have a controller and just want to test this event, just setup the timers, when this event will run ex:
    OnMinute33:
     
    2) Rewards
    I have special Event points, that I'm giving to the winners.
    If you like to give Items or Zeny, I Included the examples in the code
    // Winner gets reward in Zeny //Zeny += 1000000; // Alotta bax ;)  
    3) Questions definition
    To define more questions you need to follow this pattern
    DefineQuestion("<question>", "<answer>", "<hint>");  
    4) Cheating
    I'm aware that this event can be cheated/Automated by players.
    Therefore only a modest reward is given 
     


  6. Upvote
    Begin reacted to AnnieRuru in A battleground idea :D   
    https://rathena.org/board/topic/115744-a-battleground-idea-d/
    since you mark it as solve, then I assume you don't want to make any changes anymore
    http://upaste.me/60d349911d51d3996
    and move on to other project
  7. Upvote
    Begin reacted to Habilis in [Event] Wheel of fortune   
    I've recently got a brilliant idea.
    Why not make my own version of a paid script, sold on rAthena
    and release it to Hercules for free!?

    (Not because I'm banned on rAthena )
     
    I need a peer review before releasing the whole package.
     
    @Myriad Did a nice Peer review of my terribel kode...
    If anyone else would like to contribute, feel free.
    Otherwise, it is soon to be released
     
     
    UPD : I reDrew the cutins, they don't look like stolen from rAthena

     

     
     
     
    1) configuration
    there are 2 arrays
        setarray .prize_id[1],-1,31024,31026,31008,31020,31017,31010,31016,0,31009;
        setarray .prize_qty[1],2,1,1,1,3,3,1,3,0,3;
     
    in prize_id
    if id is > 0, the prize is an item
    if id = 0 , the prize is NOTHING!
    if id = -1, the prizer is free spin (number of free spins set in qty array)
    in array  .prize_qty you setup the quantity won
     
     
    //===== Hercules Script ====================================== //= Wheel of Fortune //===== By =================================================== //= Habilis //= Edited by Myriad //===== Description ========================================== //= Wheel of fortune something. //============================================================ - script Wheel_of_Fortune FAKE_NPC ,{ OnInit: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); .EventName$ = "[Wheel Of Fortune]"; end; OnMinute39: OnStart: query_sql("DELETE FROM `acc_reg_num_db` WHERE `key`='#freewheelfortunespin';"); announce(sprintf("%s : The event will begin in 1 minute, near the center of Prontera.", .EventName$), bc_blue | bc_all); initnpctimer(); end; OnTimer60000: // 1 min enablenpc("Wheel of Fortune#Main"); enablenpc("Hussein#WOF"); announce(sprintf("%s : Come to Prontera and test your luck, everyone got some free spins!", .EventName$), bc_blue | bc_all); end; OnTimer1800000: // 30 mins announce(sprintf("%s : One more minute, do your last spin!", .EventName$), bc_blue | bc_all); end; OnTimer1860000: // 31 mins OnStop: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); end; } prontera,159,178,3 script Hussein#WOF 1_M_MERCHANT,{ doevent("Wheel of Fortune#Main::OnTalk"); end; } prontera,155,176,3 script Wheel of Fortune#Main 2_SLOT_MACHINE,{ OnTalk: if (#freewheelfortunespin == 0) #freewheelfortunespin = .Free_Spins; if (getd(.Event_Points_Variable$) < .Points_Cost && #freewheelfortunespin < 0) { mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("You are out of points"); mes("and have no more free"); mes("spins! Come back next"); mes("time for more."); close(); } .@mes$ = (#freewheelfortunespin > 0) ? sprintf(", but you, my friend, have %d free spin%s!", #freewheelfortunespin, (#freewheelfortunespin == 1) ? "" : "s") : "."; cutin("aca_salim02", 2); addtimer(1, sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Do you want to spin the wheel?"); mesf("It costs ^FF0000%d Event points^000000 to play%s", .Points_Cost, .@mes$); next(); callsub(S_Loop); S_Loop: .@val = getd(.Event_Points_Variable$); if (.@val < .Points_Cost && #freewheelfortunespin < 0) callsub(S_End); switch (select( (#freewheelfortunespin > 0) ? sprintf("Yes! Use free spin! (%d left)", #freewheelfortunespin) : "", (.@val > 0) ? sprintf("Yes! Use Event Points. (%d remaining)", .@val) : "", "No (Leave)" )) { case 1: callsub(S_Pay, 0); case 2: callsub(S_Pay, 1); default: callsub(S_End); } S_Pay: switch (getarg(0)) { // pay with free spin case 0: if (#freewheelfortunespin > 0) { if ((#freewheelfortunespin -= 1) < 1) #freewheelfortunespin = -1; callsub(S_Gamble); } else callsub(S_End); // Pay with points case 1: default: if ((.@val = getd(.Event_Points_Variable$)) >= .Points_Cost) { setd(.Event_Points_Variable$, (.@val -= .Points_Cost)); dispbottom(sprintf("%s : You now have %d event points.", .ServerName$, .@val)); callsub(S_Gamble); } else { cutin("aca_salim02", 2); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Awww, you don't have enough to gamble..."); mes(" "); mes("Have you ever heard?"); mes("'Money isn't all that matters' Got it?"); mes("Byeeeeeeeeeeeeee ;)"); callsub(S_End); } } S_Gamble: // Actual Gambling .@sector = rand(.Sector[0], .Sector[1]); .@displayCutin = (.@sector * 2) - 1; .@Speed = .Spin_Speed; for (.@i = 0; .@i < .nbTurns; .@i++) { .@b = .Cutin[0]; while (.@b <= .Cutin[1]) { cutin(sprintf("%s%d", .cutin$, .@b), 4); sleep2(.@Speed); .@b++; .@Speed++; } } .@b = .Cutin[0]; while (.@b < .@displayCutin) { cutin(sprintf("%s%d", .cutin$, .@b), 4); sleep2(.@Speed); .@b++; } cutin(sprintf("%s%d", .cutin$, .@b), 4); if (.prize_id[.@sector] == -1) { // Free spin if (.Sound_Effects) soundeffect("wheel_jackpot.wav", 0); announce(sprintf("[%s] : Wow, %d more Free spins!!!", .EventName$, .prize_qty[.@sector]), bc_blue | bc_self); #freewheelfortunespin = #freewheelfortunespin == -1 ? .prize_qty[.@sector] : #freewheelfortunespin + .prize_qty[.@sector]; } else if (.prize_id[.@sector] == 0) { // nothing if (.Sound_Effects) soundeffect("wheel_lost.wav", 0); announce(sprintf("[%s] : Awwww, No luck in gamble, more luck in love...", .EventName$), bc_blue | bc_self); } else { // item if (.Sound_Effects) soundeffect("wheel_won.wav", 0); announce(sprintf("[%s] : Enjoy your prize!!!", .EventName$), bc_blue | bc_self); getitem(.prize_id[.@sector], .prize_qty[.@sector]); } sleep2(1000); callsub(S_Loop); end; S_End: close2(); OnEnd: cutin("", 255); end; OnInit: .ServerName$ = "[Your boring server]"; .EventName$ = "Wheel Of Fortune"; .cutin$ = "WheelOfFortune_"; .Event_Points_Variable$ = "#LROEVENTPOINTS"; // The name of your event points variable setarray(.Sector, 1, 10); // Sector range setarray(.Cutin, 0, 19); // Cutin range .Spin_Speed = 50; // What is the base spin speed? (ms) .nbTurns = 2; .Points_Cost = 100; // How many 'points' does it cost for a spin? .Free_Spins = 1; // How many free spins does a player get? .Sound_Effects = true; // Enable sound effects? (true/false) setarray(.prize_id[1], -1, 31024, 31026, 31008, 31020, 31017, 31010, 31016, 0, 31009); setarray(.prize_qty[1], 2, 1, 1, 1, 3, 3, 1, 3, 0, 3); end; }  
  8. Upvote
    Begin reacted to AnnieRuru in Euphy's Quest Shop Bug   
    2 ways to fix this
    1. simple, just add *disable_items script command at the beginning of the script
    2.  or you can also do like this, up to you
    OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; change into
    OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, getlook(LOOK_HEAD_BOTTOM); changelook LOOK_HEAD_TOP, getlook(LOOK_HEAD_TOP); changelook LOOK_HEAD_MID, getlook(LOOK_HEAD_MID); changelook LOOK_ROBE, getlook(LOOK_ROBE); } deletearray @qe[0],8; end;  
  9. Upvote
    Begin reacted to AnnieRuru in King of Emperium Hill   
    got a PM from rAthena member ask me to fix this
    yeah both rathena patch and hercules plugin ... all broken
    so ....
    update to 1.2
    Script
    Plugin for Hercules
    Patch for rAthena
  10. Upvote
    Begin reacted to AnnieRuru in Vendor Control (rewrite)   
    up script to 2.1a
    - add a debugging line to tell how many NPC you need
    remain commented, however, should only run once to know how many NPC you need
    thanks to @Begin for showing me his edited script
  11. Upvote
    Begin reacted to vBrenth in Auto-Falcon Assault when linked   
    if( pc_isfalcon(sd) && sd->weapontype == W_BOW && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HUNTER && pc->checkskill(sd,SN_FALCONASSAULT) > 0 && rand()%100 <= 15 ) skill->castend_damage_id(src,bl,SN_FALCONASSAULT,1,tick,SD_LEVEL); This will give you 15% chance.
    Edit the <= 15 ) to chance you want.
  12. Upvote
    Begin reacted to bWolfie in Exclude from dispell   
    i thought stalker is already immune to dispell skill when linked?
  13. Upvote
    Begin reacted to AnnieRuru in NPC with a Promo Code   
    hmm .. then how do the official server actually preventing players from using the SAME promotion code for multiple accounts ?
    because when I was fixing the script on rathena forum... I already noticed this
    1. each account can only clam once
    2. each IP can only claim once <-- not safe
    3. use *getitembound ... ok I have no objection
    so I can abuse the system with,
    1. after I got a promotion code, that can claim 10 times,
    2. login an account, claim once ....
    3. logout the game, restart the modem, shuffle your IP address
    4. login another account, claim again
    repeat 10 times
    ok, let's say generate 100 different codes for 100 different donors... so they can use each code only once (limit 100 times)
    means generating 100 different codes for each player ... this only makes the GMs confused which code has been used b4 ...
    instead give out some gibberish word that you have sure which code is available, why not just give the item to them by let the player click on the npc ?
    unless I can clear out these doubts, I'm not going to make this scripts ... seems exploitable ...
    or maybe someone who actually has used this system b4, know how this system works, release a script for it so I can take a peek ...
    because all the promotion npc on the forum(hercules/rathena) can be exploit in some way
    prontera,155,185,5 script Reward/Compensation 1_F_MARIA,{ if ( #Compensation_June2018 ) { mes "you have claimed compensation"; close; } mes "We apologize for blah blah blah"; mes "so I give you a candy"; if ( !checkweight(Candy,1) ) { mes "hahaha you don't even has enough space to claim a candy hahaha"; close; } getitembound Candy, 1, 1; #Compensation_June2018 = 1; close; OnInit: OnHour00: if ( gettime(GETTIME_MONTH) == JUNE && gettime(GETTIME_DAYOFMONTH) >= 9 && gettime(GETTIME_DAYOFMONTH) <= 15 ) enablenpc strnpcinfo(0); else disablenpc strnpcinfo(0); end; } for me its a simple script ...
    but now you actually struct me with an idea to actually write one that can configure the time and the prize given.......
  14. Upvote
    Begin got a reaction from AnnieRuru in NPC with a Promo Code   
    Thank you for this script, Ms. Annie! Your idea that the time and prize will be configurable will be a good script for us!
    Attached photo is the example of the promo/item code but that is based on WebCP.

  15. Upvote
    Begin reacted to Slicer in new pets?   
    these are not pets, they are equipment, costume items.
  16. Upvote
    Begin got a reaction from AnnieRuru in Vendor Control (rewrite)   
    May I know the Discord link, Ms. Annie?
    Found it.
  17. Upvote
    Begin reacted to Mumbles in @go command   
    Utility: @go command
    Original concept by : http://herc.ws/board/topic/14-utility-added-feature-jtynnes-go-command-alternative-txt-format/
     
    Description:
    Alternative @go command. Allows for unlimited aliasing, as well as level and group restrictions for each destination. Additional options to add a delay, prevent use when dead, and charge per use are available; default cost is defined with '.cost', but this parameter can be set manually with 'go()'. These extra features are disabled by default.
     
    Be mindful that the delay uses a temporary player variable, '@go_delay'; if the player logs out, this variable will be cleared. If you would like for a more secure delay, replace all instances of '@go_delay' with 'go_delay'.
     
    Download:
    https://github.com/datmumbles/Scripts/raw/master/cmd/go.txt
  18. Upvote
    Begin reacted to AnnieRuru in Vendor Control (rewrite)   
    you should assume all my plugins broken, just like my signature says
    2.1
    script & plugin
    - fix the script and use constant properly
    - revert back to *unitwalk
  19. Upvote
    Begin reacted to Dastgir in Plugin Collections   
    Hello Community,
     I am feeling like, there's many plugin on forum, but not been actively used, due to out-of-date plugin
     
    I have updated Shikazu's Plugin first(as it was requested on the thread from 25th April), maybe Shikazu busy on his rl.
    Also I have included My Plugins there.
     
    I would like to add more plugins there(which are not updated on hercules forum <- please suggest if you find some outdated plugin and want me to update it )
     
    List of Plugins and Owners:
    https://github.com/dastgir/HPM-Plugins/blob/master/README.md  
    Repository: https://github.com/dastgir/HPM-Plugins
     
    Thanks.
  20. Upvote
    Begin reacted to AnnieRuru in Card Shredder Edit   
    split topic from http://herc.ws/board/topic/15934-card-shredder/
     
    @Begin
    prontera,155,185,4 script Card trader 2_VENDING_MACHINE1,{ mes "[Card trader]"; mes "Please select the card you wish to trade."; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { if ( getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_CARD ) { .@menu$ += getitemname( @inventorylist_id[.@i] ) +":"; .@cardid[.@c++] = @inventorylist_id[.@i]; } } .@menu$ += "No Card - Close"; next; .@s = select( .@menu$ ) -1; if ( .@s == .@c ) close; while ( .@cardid[.@s] != .mvpcardid[.@i] && .@i < .mvpcards ) { ++.@i; } if ( .@i < .mvpcards ) .@rate = 3; else .@rate = 1; mes "[Card trader]"; dispbottom countitem( .@cardid[.@s] ) +""; if ( countitem( .@cardid[.@s] ) > 1 ) { mes "Input how many you want to trade ?"; next; input .@amount, 0, countitem( .@cardid[.@s] ); if ( !.@amount ) close; mes "[Card trader]"; mes "Are you sure you want to trade"; mes .@amount +"x "+ getitemname( .@cardid[.@s] ); mes " for "+( .@rate * .@amount )+" Poring Coins ?"; } else { .@amount = 1; mes "Are you sure you want to trade a "+ getitemname( .@cardid[.@s] ) +" for "+ .@rate +" Poring Coins ?"; } next; if ( select ( "Yes.", "No" ) == 2 ) close; delitem .@cardid[.@s], .@amount; getitem Poring_Coin, .@rate * .@amount; close; OnInit: .mvpcards = query_sql("select item_db.id from item_db right join mob_db on item_db.id = mob_db.dropcardid where mexp > 0 and type = 6 group by name_japanese;", .mvpcardid); end; } simple script
    although I wanted to do page by page ... but when realize MAX_INVENTORY is just 100, while menu string limit is 2047,
    means need 20 string length of each card item name to crash the client ... so don't need to do page by page
  21. Upvote
    Begin reacted to Sashi in Card Shredder Edit   
    i wrote this NPC for my server Sanctuary RO, with the intention of sharing since it took a lot of work to write i wanted to let other people use the same NPC or be able to edit it or take snippets from it to use in their own creations

    i'm designing the server economy to depend on cards so i wrote an NPC that will dispense coins every time a card is traded baised on how often that card is traded in by the whole server
    note that item 9204 is a custom item on my server and it will probably need to be changed 
    there may have been easier or cleaner ways to write this NPC but it absolutely works, the only issue is if you have too many cards in your inventory the menu wont display them all but it requires a lot to hit that point
     
     
    cardshredder.txt
  22. Upvote
    Begin reacted to AnnieRuru in Card Shredder Edit   
    I admit its cool idea, reminds me the card trader event I made long time ago
    http://herc.ws/board/topic/11367-card-collector/
    the problem is your script, and you should be glad you have posted on the board
    let me simplify it ...
    prontera,155,185,4 script Card Shredder 2_VENDING_MACHINE1,{ mes "[ Card Shredder ]"; mes "You can shred cards to earn premium currency"; mes "would you like to shred any cards? "; next; if ( select ( "Yes.", "No" ) == 2 ) close; mes "[ Card Shredder ]"; mes "Please select the card you wish to shred."; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { if ( getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == 6 ) { .@menu$ += getitemname( @inventorylist_id[.@i] ) +" "+ callsub( L_Coins, @inventorylist_id[.@i] ) +" Coins:"; .@cardid[.@c++] = @inventorylist_id[.@i]; } } .@menu$ += "No Card - Close"; next; .@s = select( .@menu$ ) -1; if ( .@s == .@c ) close; mes "[ Card Shredder ]"; mes "are you sure you want to shred a "+ getitemname( .@cardid[.@s] ) +" for "+ callsub( L_Coins, .@cardid[.@s] ) +" coins ?"; next; if ( select ( "Yes.", "No" ) == 2 ) close; delitem .@cardid[.@s], 1; getitem Poring_Coin, callsub( L_Coins, .@cardid[.@s] ); ++$cardid_shredded[ .@cardid[.@s] ]; close; L_Coins: if ( $cardid_shredded[ getarg(0) ] < 5 ) return 5; else if ( $cardid_shredded[ getarg(0) ] < 10 ) return 4; else if ( $cardid_shredded[ getarg(0) ] < 15 ) return 3; else if ( $cardid_shredded[ getarg(0) ] < 20 ) return 2; else return 1; } I made it in a way without using 2 permanent variables
    also found a bug though ... line 713
    if (.@cardval < 1) set cardval,10; if (.@menu == 454) close; why do you set a permanent player variable ... there ?

    and about the issue about having too many cards in the menu, can be done with page system
    https://rathena.org/board/topic/74630-help-array/
  23. Upvote
    Begin reacted to AnnieRuru in Card Shredder Edit   
    L_Coins: if ( $cardid_shredded[ getarg(0) ] < 5 ) return 5; else if ( $cardid_shredded[ getarg(0) ] < 10 ) return 4; else if ( $cardid_shredded[ getarg(0) ] < 15 ) return 3; else if ( $cardid_shredded[ getarg(0) ] < 20 ) return 2; else return 1; I've read the original script, and in that script .... as you can see here the value will decrease the more players shred their cards
    although I also prefer to have a fix value ... though
    yes its possible ... but you want a fix value or a descending value ?
    you know ... if its a fix value ... then sounds like a card trader npc
  24. Upvote
    Begin reacted to GmOcean in Slot Machine   
    File Name: Slot Machine
    File Submitter: GmOcean
    File Submitted: 14 Sep 2014
    File Category: Events & Games
     
    This script will allow users to spend zeny &/or an item for a chance to win a prize from the slot machine. Currently there are 2 versions. First is a Single Slot Machine, where only 1 slot is rolled. Second is the Triple Slot machine, where 3 slots are rolled. For either version, SUCCESS must be the only thing displayed in order to win.
     
    To add the cutins, just place them in: data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/illust
     
    /* =============================================================
    /* NOTE - If using soundeffects you must add the ".wav" files
    /* provided in the ".rar" file to your: data/wav folder located
    /* in either your: ( Ragnarok folder ) OR ( .grf file )
    /* =============================================================
     
    I've included the PSD file, so you can edit it as you like.
     
    Click here to download this file
  25. Upvote
    Begin reacted to AnnieRuru in Modify reward script   
    @Begin
    the script was already done with reset at 12am every day
    however due to the information that meko said ...
    I'm going to revise this script ...
    prontera,155,180,5 script Reward NPC 4_F_FAIRYKID4,{ .@date = atoi( gettimestr("%Y%m%d", 20 ) ); mes "["+ strnpcinfo(NPC_NAME) +"]"; if ( #reward_daytime == .@date ) { mes "You have claimed the reward today."; close; } if ( @reward_timestamp && @reward_timestamp + .countdown <= gettimetick(2) ) { mes "Here is the surprise reward"; getitembound Poring_Coin, 1, 1; #reward_daytime = .@date; close; } if ( @reward_timestamp ) { mes "Countdown timer..."; .@timeleft = @reward_timestamp + .countdown - gettimetick(2); mes .@timeleft /3600 +" hour "+ .@timeleft %3600/60 +" min "+ .@timeleft %60 +" sec left"; close; } mes "Hello "+ strcharinfo(PC_NAME) +", I am here to give you a daily Surprise Reward. Do you want to have it?"; next; select "Yes, sure !!"; mes "["+ strnpcinfo(NPC_NAME) +"]"; mes "You can claim the reward in 5 hours time."; close2; addtimer .countdown *1000, strnpcinfo(NPC_NAME) +"::OnClaimReward"; @reward_timestamp = gettimetick(2); end; OnClaimReward: dispbottom "You can claim Daily Login Reward now."; end; OnInit: // .countdown = 5*60*60; // 5 hours .countdown = 5; } no longer use IP address, but use account bound items
    so that means, this script will give out the reward every day, reset on 12am, and the item give out is account bound
    .... probably the better way for not abuse the reward than the script I posted earlier
×
×
  • Create New...

Important Information

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