Jump to content

MikZ

Members
  • Content Count

    461
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    MikZ reacted to Rebel in Rent NPC Shop (NST_CUSTOM)   
    have you consider to put it inside a box?
    { Id: 99999 AegisName: "Custom_Box" Name: "Custom Box" Type: "IT_CASH" Buy: 20 Weight: 10 Trade: { nodrop: true noselltonpc: true nocart: true nogstorage: true nomail: true noauction: true } Script: <" rentitem 12345,604800; "> }, - trader Rental01 1_M_01,{ OnInit: tradertype(NST_CUSTOM); sellitem Custom_Box, 2; end; OnCountFunds: setcurrency(#KAFRAPOINTS); end; OnPayFunds: if( #KAFRAPOINTS < @points ) end; #KAFRAPOINTS -= @points; purchaseok(); }  
  2. Upvote
    MikZ reacted to meko in Failed assertion Achievement   
    @MikZ this PR should fix your issue: https://github.com/HerculesWS/Hercules/pull/2227
  3. Upvote
    MikZ reacted to 4144 in Plugin Makefile   
    wrong
    Exists atleast 3 ways how build plugins.
    1.
    after building server run
    make plugin.myplugin1 where myplugin1 is your plugin name
    or you can add your plugin name into variable in make file
     
    2.
    add your plugins into make file. change
    MYPLUGINS := $(MYPLUGINS) to
    MYPLUGINS := $(MYPLUGINS) myplugin1 where myplugin1 is your plugin name
     
    3.
    use environment variables. run command
    MYPLUGINS=myplugin1 make plugins where myplugin1 is your plugin name
  4. Upvote
    MikZ reacted to Christian [epicRO] in Restock System   
    If you want to make Arrows and Bullets Auto-Equip after they have been restocked:

     
    if (.@qu){ .@ru = restkid; ++ if (getiteminfo(.@ru, ITEMINFO_TYPE) == 10) autoequip(.@ru, 1); restock_item(.@ru,.@qu,.@fr); if (.@fr == 1) .@from$ = "Storage"; if (.@fr == 2) .@from$ = "Guild Storage"; sleep2 500; if (countitem(.@ru) == 0) { announce "Trying to restock "+.@qu+"x "+.@ru+" from "+.@from$+". Failed. Amount does not fit.",bc_self,0xFF8F01; } ++ if (getiteminfo(.@ru, ITEMINFO_TYPE) == 10) autoequip(.@ru, 0); restkid = 0; }  
  5. Upvote
    MikZ reacted to Christian [epicRO] in Restock System   
    It will check if the last of selected item was consumed and do ::OnRestock NPC Event to restock the items to the selected amount. Works very well and without any ms of lag. Thanks to @Dastgir
     
    Fixed and corrected. Works fine on current branch.
    How to enable:
    Move "restock.c" to "src/plugins" and open "Makefile" with editor. add "restock" to line "MYPLUGINS = "

    Move "atcommand_restock.txt" to "npc/custom" and add "npc/custom/atcommand_restock.txt" to your "scripts_custom.
    conf" for autostart.Open file "conf/plugins.conf" and add "  "restock",  " to enable this plugin after you'll restart the map serve
    Do "make all" on console. To enable all changes. Enjoy @restock and @restock2
     
    If you want to disable @restock on Castles/WoE just configure your atcommand_restock.txt and do a mapcheck on "OnRestock:" like

     
    getmapxy(.@playermap$, .@playerx, .@playery, UNITTYPE_PC); if (getmapflag(.@playermap$, "mf_gvg_castle") == 1) { dispbottom "Atcommand disabled on this map."; end; }  
    restock.c
    atcommand_restock.txt

    SQL Table:
     
    CREATE TABLE `restock` ( `charid` INT(10) NOT NULL, `restockid` INT(6) NOT NULL, `restkq` INT(5) NOT NULL, `restkf` INT(10) NOT NULL DEFAULT '1' ) COLLATE='latin1_swedish_ci' ENGINE=MyISAM ;  
  6. Upvote
    MikZ reacted to hendra814 in Hunting Mission to Poring Coin   
    at this part
    set #Mission_Points, #Mission_Points-@cost; change it into
    delitem, 7539-@cost;  
  7. Upvote
    MikZ reacted to hendra814 in Hunting Mission to Poring Coin   
    find this
    set #Mission_Points, #Mission_Points+.@Mission_Points; and replace into
    getitem 7539,.@Mission_Points;
  8. Upvote
    MikZ reacted to meko in @command info text   
    conf/messages.conf
     
    ...good luck
  9. Upvote
    MikZ reacted to Dastgir in @security forgot code   
    That was not coded to prevent abuse.
    Admin can check account_reg_num_db #secure_code
  10. Upvote
    MikZ reacted to Dastgir in Admin Trade Permission   
    https://github.com/HerculesWS/Hercules/blob/stable/doc/permissions.txt
  11. Upvote
    MikZ reacted to Aurelion314 in [Re-Release] Paradox Vote For Points   
    I ran into this as well and spent time finding the error. The script would add the inventory amount to the total count before updating storage. I've attached a fixed index.php. It goes in /vote_for_credits/modules/vote/index.php
    index.php
  12. Upvote
    MikZ reacted to xVec in Hercules Battlegrounds   
    Very sad because this will be a great way to get more people into Herc.. rAthena has a stable version of rAmod (Herc don't) and this is not necessary in there and check it now the rA forum, very active with a great comunity.
     
  13. Upvote
    MikZ reacted to Rebel in Warper NPC for Pre-Re (Bug)   
    function Pick { .@warp_block = @warp_block; @warp_block = 0; .@select = select(@menu$); if (getarg(0) == "") { .@i = .@select; .@map$ = getarg(.@i); } else { .@i = .@select-getarg(1,0); .@map$ = getarg(0)+((.@i<10)?"0":"")+.@i; } if (.@warp_block & (1<<.@select)) { message strcharinfo(PC_NAME),"This map is not enabled in "+(RENEWAL?"":"Pre-")+"Renewal."; + close; end; } .@x = @c[.@i*2]; .@y = @c[.@i*2+1]; deletearray @c[0],getarraysize(@c); Go(.@map$,.@x,.@y); } function Restrict { if ((getarg(0) == "RE" && !RENEWAL) || (getarg(0) == "Pre-RE" && RENEWAL)) { if (getarg(1,0)) { @warp_block = 0; for (.@i = 1; .@i < getargcount(); .@i++) @warp_block = @warp_block | (1<<getarg(.@i)); } else { message strcharinfo(PC_NAME),"This map is not enabled in "+(RENEWAL?"":"Pre-")+"Renewal."; + close; end; } } return; } try this.. just added close after message ....
  14. Upvote
    MikZ reacted to AnnieRuru in RACE TO 99 SQL BOARD   
    rathena has too many topic for this
    https://rathena.org/board/topic/115772-race-to-99-per-class/
    although, all of them doesn't use SQL table
    I wonder why you need the SQL table for ?
    what kind of information you want to display on your website ?
  15. Upvote
    MikZ reacted to AnnieRuru in LOGIN REWARD VIA LAST MAC   
    yup you did correct
    every 00:00 server time
    and if let's say you start at 11:59pm Wednesday, and claim the reward on the Thursday at 1am, then you can't claim reward anymore on Thursday
    I actually had experienced this system in some chinese mobile games app ...
    so I made this script according to the chinese mobile game app I've played
  16. Upvote
    MikZ got a reaction from AnnieRuru in LOGIN REWARD VIA LAST MAC   
    @AnnieRuru its okay. 
    I somehow just edit it with the common query command and change the ip to unique_id. Somehow it worked fine for daily login.
    Wonder if you have any suggestion or tips to improve this. I don't kinda understand the script cuz im noob. but that this mean every 00:00 server time you will be able to get coin or 24hr from last talked to the npc?
    prontera,164,173,5 script Daily Login 4_F_FAIRYKID4,{ // $ip_reward_daytime = 0; query_sql("SELECT `last_unique_id` from `login` WHERE `account_id` = "+getcharid(3),@lui$); mes "["+ strnpcinfo(NPC_NAME) +"]"; if ( $ip_reward_daytime != atoi( gettimestr("%Y%m%d", 20 ) ) ) { $ip_reward_daytime = atoi( gettimestr("%Y%m%d", 20 ) ); deletearray $ip_reward$; } .@size = getarraysize( $ip_reward$ ); while ( @lui$ != $ip_reward$[.@i] && .@i < .@size ) { ++.@i; } if ( .@i < .@size ) { mes "You have claimed the reward."; close; } if ( @ip_reward && @ip_reward + .countdown <= gettimetick(2) ) { mes "Here is the surprise reward"; getitem 25045, 1; $ip_reward$[ getarraysize( $ip_reward$ ) ] = @lui$; close; } if ( @ip_reward ) { mes "Countdown timer..."; .@timeleft = @ip_reward + .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 after an hour."; close2; addtimer .countdown *1000, strnpcinfo(NPC_NAME) +"::OnClaimReward"; @ip_reward = gettimetick(2); end; OnClaimReward: dispbottom "You can claim Daily Login Reward now."; end; OnInit: .countdown = 1*60*60; // 5 hours // .countdown = 5; }  
  17. Upvote
    MikZ reacted to AnnieRuru in LOGIN REWARD VIA LAST MAC   
    the script you posted made by me ...
    sorry as I don't own Gepard, I don't know how it works so I couldn't make this system for you
    and what meko said was spot on,
    just reminded the IP address detection method on this script can just bypass by restarting the modem
    the mac address system though ...
    sry maybe I was out from RO scene too long ?
    2 years ago I heard that mac address is something that is only possible by adding a 3rd party program running in the background ...
    and this makes me assume that Gepard is also something 3rd party program ... stuffs
  18. Upvote
    MikZ reacted to meko in LOGIN REWARD VIA LAST MAC   
    IP addresses and mac addresses do not uniquely identify people. Most home internet users have dynamic IP addresses assigned by their ISP, so it changes over time, and some ISPs even assign a different one every single time the router is rebooted (ie: Orange). Even with a static IP, nothing prevents anyone from using a VPN, tor, or any other anonymity tool. IP addresses may also be shared: some schools, dormitories, and organizations have a single address for every single computer on its network, so you could end up mistaking hundreds of people as the same person. Some computers themselves are also shared (ie: with coworkers, family members, friends, …). As for mac addresses, they can very easily be spoofed, and one could even make a script to change their mac address every minute if they wanted to... so yeah, that's a bad idea too.
    If this still does not discourage you from using mac addresses, feel free to add this "feature" to Hercules: https://github.com/HerculesWS/Hercules/issues/1734
     
    There's really no silver bullet to really be sure of the identity of someone, but one of the approaches that kinda works is to make abuse costly on abusers, while not imposing a huge burden on non-abusers. What works best is doing a physical verification instead of a digital one when someone creates an account. For example, most social media platforms now ask you to provide and validate a phone number. This means if someone were to bypass this verification they would have to have more than one phone. Some sites, such as Paypal, go even further ask you for your credit card number (or bank account number) and then do a transaction on it (usually $1), to see if the card is valid. This means you would have to have more than one credit card if you want to bypass this verification, which implies physically going to your bank, making an appointment, and opening a new account. Some (such as Google) prefer to snail mail you an envelope containing a code, which you then have to enter on their website. To abuse this you would need more than one street address. Keep in mind that this only makes it harder on would-be abusers and that nothing can 100% fingerprint someone. Even DNA profiling isn't perfect.
  19. Upvote
    MikZ reacted to AnnieRuru in Sample Questlog & Achievement script   
    Download: 1.1
    sample quest log
    Download: 1.1
    sample daily quest
    these are 5 sample quests using quest log system
    this was actually made as a sample script inside a script support section in eathena forum
    original topic from eathena
    thanks to paradog eathena admin that makes eathena forum down, almost gonna remake everything from scratch
    luckily I got a few segment here and there in my old hard-disk so doesn't take too much time to write this sample
    Quest #1
    typical talk to npc A, then npc B ... etc
    demonstrate how to use *checkquest
    Quest #2
    collect item quest
    just checkitem with it
    I still don't know how to use the client to trace is the item collecting has completed or not
    Quest #3
    kill monster quest
    demonstrate how to use *checkquest( x, HUNTING )
    Quest #4
    typical talk to npc A, then npc B ... BUT with a time limit
    demonstrate how to use *checkquest( x, PLAYTIME )
    Quest#5
    if player having this quest, player can *getitem by killing this monster
    see https://github.com/HerculesWS/Hercules/blob/stable/db/quest_db.conf#L45-L50

     

    and I want to remind this is just a sample script
    usually make for source modification on quest log system (now is 3rd time I think ?)
     
     
     
    2 sample script for daily system
    1. Daily item giver ...
    although I think this should done with attendance system ...
    2. Daily hunting ...
    self explain ...


     
     
    [109991] = { UI_Type = 0, group = "CHATTING", major = 4, minor = 0, title = "Tavern Helper", content = { summary = "Visit the Tavern Master", details = "Visit the Tavern Master in Prontera." }, resource = { [1] = { text = "Acolyte Trouble" }, [2] = { text = "Gemstone shortage" }, [3] = { text = "Poring Problem" }, [4] = { text = "Hand over the Artifact" }, [5] = { text = "Shining Rocker" } }, reward = { title = 991 }, score = 5 }, [109992] = { UI_Type = 1, group = "GOAL_ACHIEVE", major = 6, minor = 0, title = "Complete Daily Quest for 30 times", content = { summary = "Complete Daily Quest", details = "Complete Daily Quest for 30 times and you can earn some nice rewards!" }, resource = { [1] = { text = "Collect Daily Items 30 times", count = 30 }, [2] = { text = "Complete Daily Quest 30 times", count = 30 } }, reward = { title = 992, item = 513 }, score = 30 }, UI_TYPE
    - display a bar like in the daily quest screenshot
    - 0: in the [resource], doesn't support [count]
    - 1: support [count]
    group:
    - read from data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\achievement

    major
    - 1: General tab
    - 2: Adventure tab
    - 3: Battle tab
    - 4: Quest tab
    - 5: Memorial tab
    - 6: Feat tab
  20. Upvote
    MikZ reacted to AnnieRuru in CUSTOM ITEM SCRIPT FOR @GO   
    assuming you have this https://github.com/HerculesWS/Hercules/blob/stable/npc/mapflag/town.txt
    prontera,150,185,5 script test 1_F_MARIA,{ input .@map$; if ( getmapusers( .@map$ ) == -1 ) dispbottom "no such map"; else if ( !getmapflag( .@map$, mf_town ) ) dispbottom "not a town"; else atcommand "@go "+ .@map$; // yeah lazy to note down the coordinate, so use atcommand end; }  
  21. Upvote
    MikZ reacted to AnnieRuru in King Of Emperium Hill ROYAL Rumble   
    script -> http://upaste.me/94e94979017edd8ef
    plugin -> http://upaste.me/d74c497892f91a6d6
    @MikZ next time should ask on the forum instead of bombard my PM box
    and its your own topic too
  22. Upvote
    MikZ reacted to Rebel in SKILL_DB MAXCOUNT   
    db/pre-re/skill_db.conf
    db/re/skill_db.conf
    SkillInstances: Skill instances (int, defaults to 0) (can be grouped by Levels) Notes: max amount of skill instances to place on the ground when player_land_skill_limit/monster_land_skill_limit is enabled. For skills that attack using a path, this is the path length to be used.  
  23. Upvote
    MikZ reacted to Alayne in Alayne's Scripts Collection   
    those variables means "start an event at 5, start an event at 6. If 0, then doesn't start, if 1 then start"
  24. Upvote
    MikZ reacted to Alayne in Alayne's Scripts Collection   
    @MikZ resnametable have been added. Gonna look for the worldboss issue.
    Edit: Allright, fixed and pushed. You can get the last version from my github, tell me if you find other issues
  25. Upvote
    MikZ reacted to Alayne in Alayne's Scripts Collection   
    < Alayne's Script Collection >
    After several asks, here's a link to my github
    Feel free to comment or add anything that might be usefull and that I won't think of
    I've decided to release my scripts here, it'll be easier to me so I can duplicate it on hercules and rathena rather than uploading twice. So sorry for multiple upload between there and download section
    Don't mind the name Nyliar in the git, that's me too ^^
     
    < Instances >
     
    < Quests >
     
    < Event >
     
    < PvP Content >
     
    < Utilities >
     
    < Full Systems >
     
    < Dungeons >
     
    < Raid >
     
    < Battleground >
×
×
  • Create New...

Important Information

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