Jump to content

evilpuncker

Community Contributors
  • Content Count

    2178
  • Joined

  • Last visited

  • Days Won

    66

Reputation Activity

  1. Like
    evilpuncker reacted to bWolfie in Old exp tables - exp_group_db.conf for Base Level 999   
    https://pastebin.com/H9e2SG9t
    Based on the old exp.txt tables. This only works for base level 999.
    If you want to use a lower level, you need to comment out all entries above that level. E.g. if you want base level 500, you need to comment out entries 500-999.
    The formula for no. of entries you need is [Max Base Level - 1]. So if max level is 400, you need 399 entries; 250 needs 249, and so on.
    Let me know if there are any issues with it.
  2. Like
    evilpuncker reacted to AnnieRuru in Promotional Code   
    I got 2 rep up for making that grumbling post, that just shows how many members really like this idea
    and of course I knew many topics talking about this script again and again and again and again and again and again and again and again and again and again and again and again !!!
    so I make one myself and hopefully don't want see people talking about that bug script again !!
     
    What this script does ?
    GM generate some sort of gibberish word and promotes it on social media
    then players input that gibberish word and able claim the items
     
    honestly I don't really see the point of gibberish word,
    I made this script in a drop down menu, players can just select it from the menu and claim it <_<
     
    Download: 1.3
    script
     
    here's an example by Philippine RO, from this post

     
    TODO :
    1. add coloring to the text
    2. HULD compatible ?
    3. maybe someday can rewrite this whole damn thing with .npc_var sync with SQL variables so don't have to call query_sql too frequently
     
     
  3. Like
    evilpuncker reacted to 4144 in 2 DEVS   
    try google about git workflows. Two devs can commit into same branch,  or into separate, and merge them after. all depend what you select.
     
  4. Like
    evilpuncker reacted to AnnieRuru in Making body style ignore palette   
    correct answer is just make changes to the stylist script
    prontera,170,180,1 script Stylist#custom_stylist 2_M_DYEINGER,{ .@choose = select( "Hair Style", "Hair Color", "Cloth Color", ( !(eaclass() & EAJL_THIRD) || BaseJob == Job_SuperNovice )? "": _("Body Style") ) -1; if (.@choose == 3) // JUST ADD THIS FUCKING SIMPLE LINE setlook LOOK_CLOTHES_COLOR, 0; .@lookpart = .@part = .look[.@choose]; if ( BaseClass == Job_Summoner ) .@part += Job_Summoner;  
    btw I have at least 4 paid service line up right now so .... that reply you made on my stylist script, takes time to write so yeah ........
  5. Like
    evilpuncker got a reaction from AnnieRuru in Just trying to figure out. Anyone knows which client is this?   
    Use client 2019-05-30 and you should be fine, I'm using 2020-02-06aRagexe right now with no issues btw
     
    you can download them here:
    http://nemo.herc.ws/
  6. Like
    evilpuncker reacted to 4144 in Request Client 2020-04-01bRagexe   
    why you patching downloader script?
    you run downloader, and it download client exe succesfully. You saw output? why not use client exe? See your screenshot with client exe name.
     
     
  7. Like
    evilpuncker got a reaction from Hadeszeus in Just trying to figure out. Anyone knows which client is this?   
    Use client 2019-05-30 and you should be fine, I'm using 2020-02-06aRagexe right now with no issues btw
     
    you can download them here:
    http://nemo.herc.ws/
  8. Like
    evilpuncker reacted to Hadeszeus in Just trying to figure out. Anyone knows which client is this?   
    Thanks for answering. Glad to know you're still here and active @evilpuncker. Still remember you! Hahah thanks!
  9. Like
    evilpuncker reacted to AnnieRuru in Two small requests about mob_dead function   
    plugin ... please no source edit, hercules member please don't edit source code by any means necessary
    https://github.com/AnnieRuru/Release/blob/master/plugins/rare_drop_announce.c
     
     
    try write a plugin yourself ?
  10. Like
    evilpuncker reacted to AnnieRuru in Item drop with random refine level/card   
    update plugin -> https://github.com/AnnieRuru/Release/blob/master/plugins/addrefinedrop/addrefinedrop_0.3.c
    along with healer script for testing -> https://github.com/AnnieRuru/Release/blob/master/scripts/Utility/healer/healer_1.2.txt
     
    nope, but we can just struct item_data of the nameid to get the data of that item
    1.4 - https://github.com/AnnieRuru/Release/blob/master/plugins/addrefinedrop/addrefinedrop_0.4.c
    - if the item is non-refine-able, it doesn't drop refined items
  11. Like
    evilpuncker reacted to AnnieRuru in Item drop with random refine level/card   
    the cards can be done by retrieve the card ID from `item_db` SQL table, its not that hard to do
    https://github.com/AnnieRuru/Release/blob/master/plugins/addrefinedrop/addrefinedrop_0.2.c
    btw, this is simple stuffs ....
    PS: when testing, I turned on autoloot and using custom identifier script
  12. Like
    evilpuncker reacted to AnnieRuru in Promotional Code Script   
    you mean something like
    the first 500 players who redeem this code will get freebies !!
     
    this reminds me in real life e-wallet
    the first 100,000 customer who use this coupon code will get a discount when do online purchase
    terms and conditions apply blah blah
     
    once expire ... how ? can't redeem again even for other player ?
    isn't this feels stupid ... the code only used once ... if the GM advertise the code, everyone sees the code, but the code only use once .... =/
  13. Like
    evilpuncker got a reaction from AnnieRuru in Promotional Code Script   
    A few suggestions in case someone is going to make this script in the future:
     
    - redeem log viewer
    - 2 types of codes: one that can be used multiple times by different accounts, and one that can be used just once only by one account
    - add expiration date to codes, with default date to expire (i.e. 1 month) or undefined (infinite)
    - add announce (yes/no) when player redeem code
    - add delay to use npc (good to prevent multiple code uses and prevent spam/give chance to slower players)
    - better code generation (maybe even saving them on .txt file) being able to chose from random letters and numbers, to anything you want (i.e. mycode2020)
    - rewrite everything to getitembound as @AnnieRuru said
    - something like this:
    -> talk to npc
    -> chose code style (random generated or user input)
    -> chose code amount (amount of uses that it can be used)
    -> chose code type (by account or unique use)
    -> (if unique use: we need to add a "group" to the codes, for example: we generate a group of 5 unique codes, they all belong to a group (something to make them unique), so a player can only use one of the 5 codes from THAT group (we need this to make sure that a player alone doesn't use all the codes at once and others player don't have a chance) and the other 4 codes can still be used by other players)
    -> chose code reward (itemID - amount)
    - no more ideas
     
  14. Like
    evilpuncker reacted to AnnieRuru in Promotional Code Script   
    https://rathena.org/board/topic/115232-script-doesnt-recognize-spaces/?do=findComment&comment=344440
     
    seriously this is getting on my nerve whenever somebody bring this script up
    can't everyone just recognize this script is just bug as hell ?
     
    and promotion code can always bypass by players no matter how hard you try
    block by IP is just plain stupid
    better use getitembound instead of getitem so players will realize the reward item is bound to the account only
     
    and when the script made as getitembound, means this VERY OLD script is invalid to use in today's script method
     
    -------------------------------
     
    ok enough being grumpy,
    1. the SQL table has to be case-sensitive
    2. use varchar
    CREATE TABLE IF NOT EXISTS `reward_logs` ( `account_id` int unsigned NOT NULL default '0', `last_ip` varchar(16) NOT NULL, `code` VARCHAR(26) NOT NULL, `redeem_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', `claim` INT NOT NULL, PRIMARY KEY (`code`) ) ENGINE = MYISAM; and I'm not fixing this script
     
    better just write a new one with *getitembound
  15. Like
    evilpuncker got a reaction from AnnieRuru in novice not available soul link   
    sorry, it has been way TOO LONG since I left RO 😁 I forgot about everything
  16. Like
    evilpuncker reacted to AnnieRuru in novice not available soul link   
    if(Class==Job_Novice || Class==Job_Novice_High) { mes "[ ^C6A518Linker^000000 ]"; mes "Sorry, not available to novice."; close; } what what ??
    Rebirth Spirit CAN be use on Novice High
    I just tested a soul linker can use Rebirth Spirit on a Level 40 Rebirth Novice, all stats adds +29
     
    it should be
    if (Class == Job_Novice || Class == Job_Baby) {  
  17. Like
    evilpuncker reacted to AnnieRuru in About dead / bloody branches   
    wait, I thought I answered this on rathena forum already ?
    https://rathena.org/board/topic/126009-deadbloody-branch-timer/
    same user name, I actually thought I helped a rathena member there
    if you come here and ask the same question again it means you are actually hercules user ?
     
    anyway hercules has plugin system that rathena don't, and rathena still hasn't implement plugin system yet, so here goes
    https://github.com/AnnieRuru/Release/blob/master/plugins/deadbranch_timerdelete/deadbranch_timerdelete.c
  18. Like
    evilpuncker reacted to Relzz in OPENKORE BOT Server config   
    ayy, wrong forum buddy 
    (and the anticheat guy replies to you, epic)
  19. Like
    evilpuncker reacted to Functor in OPENKORE BOT Server config   
    You choose the wrong forum to ask it.
  20. Like
    evilpuncker reacted to Neo-Mind in Auction Feature all screwed up.   
    maybe it got "auction"ed off !! 
  21. Like
    evilpuncker reacted to AnnieRuru in @packetfilter   
    No more Work in Progress, Please report if there are any bug
     
    Download: 1.0a [Complete]
    plugin
     
     
    What is `@packetfilter` ?
    `@packetfilter` is a custom mod originate from eamod
    https://github.com/zephyrus-cr/eamod/blob/master/Servers/rAthena/conf/groups.conf#L418-L422
    it can actually reduce lag on your live server during woe depends on how many players activate it
    it totally depends on the player's side, community effort that every player should together turn on the `@packetfilter` to reduce massive lag during woe
     
    this modification is actually very famous and there are members willingly to pay for it
    https://rathena.org/board/topic/121200-packetfilter-battleinfo/
    https://rathena.org/board/topic/123203-battleinfo-packetfilter/
    https://rathena.org/board/topic/111797-packetfilter-zepyhrus-ramod/
    https://rathena.org/board/topic/79995-buy-noactnodelay-partybuff-src-as-it-was-on-pro-ro-or-packetfilter/
     
     
     
    this `@packetfilter` is unlike the one you are having, or that is circulating on rathena forum
     
    this one has been written entirely from scratch and added some other flags that the original don't
    for example,
    `@packetfilter COHM EOHM`
    allow block normal chat and emotion from non-related players, pets, homunculus and monsters
    but this doesn't block normal chat from party/guild members
     
    a full list of flags are
      C = ignore normal Chat, including Dancer's scream, Bard's frost joke, and pet's talk (pet start to talk when intimacy > 900)   E = ignore emotion, including monster and pet emotion (but NOT pet performance)   I = ignore Item use effect   A = ignore normal Attack animation (based on receiving side), your own attack animation are always shown   B = Buffing skill animations (based on receiving side), your own casting animation are always shown   S = Status effect   T = offensive single Target skill/spell animations (based on receiving side), your own casting animation are always shown   G = Ground based skills (eg:storm gust), your own casting animation are always shown   M = Music dance/songs from Bard/Dancer   D = Direction. Recommend filter on Party/Guild type and not enemies. Highly Recommend for supportive type Class. after the Main type, also support additional flags
      S = Self   P = Party   G = Guild   B = Battleground   C = Clan   O = Other players, none of the above   H = Homunculus/pets/elementals/mercenary and player's @summon   M = Monsters  
     
    Why This plugin doesn't block Kaite or Energy Coat ?
     
    2 reasons
     
    No.1 - currently there is a bug with plugin,
    struct packet_spawn_unit *p = (struct packet_spawn_unit*)RBUFP(buf, 0); this line will throw error on Linux
    so no choice, maybe I'll make a bug report
    this bug also has been reported on Dastgir's `@noview`
     
    No.2 - just set p->virtue = 0; isn't really blocking the packet
    this goes against the very principle of this plugin, which is NOT send certain packet to the client
    OPT3 (including OPT3_KAITE | OPT3_ENERGYCOAT | OPT3_SOULLINK) is part of the idle_unitType, unit_walkingType and spawn_unitType function
    and blocking those 3 packet entirely is stupid
     
    in case you don't understand, look under clif_set_unit_walking and clif_set_unit_idle function inside src\map\clif.c file
    p.GUID = g_id; p.GEmblemVer = status->get_emblem_id(bl); p.honor = (sd) ? sd->status.manner : 0; // p.virtue = (sc) ? sc->opt3 : 0; <-- change this line p.virtue = 0; p.isPKModeON = (sd && sd->status.karma) ? 1 : 0; p.sex = vd->sex;  
     
    Note: about [D]irection type packet
     
    try add a ShowDebug inside clif->send
    src/map/clif.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/map/clif.c b/src/map/clif.c index ab3c4422a..9e245f335 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -450,6 +450,7 @@ static bool clif_send(const void *buf, int len, struct block_list *bl, enum send return true; } +ShowDebug("source:%s buf:0x%x send_target:%d\n", (sd != NULL)? sd->status.name : "NULL", RBUFW(buf, 0), type); switch(type) { case ALL_CLIENT: //All player clients. iter = mapit_getallusers(); you will find 0x9c is being send repeatedly on every attack and every skill cast , getting attack etc
    this direction update packet isn't just send by Shift-click, but also including all the actions above
    this packet is very spam-able and I think can be safely block on party/guild/clan/bg flags
    for supportive class, I also think can block all of them since supportive class doesn't need information from enemies
     
     
     
  22. Like
    evilpuncker reacted to AnnieRuru in Clan system WITH guild system   
    OnPCStatCalcEvent ?
     
    prontera,155,185,5 script fhdskdjf 1_F_MARIA,{ mes "join annieruru fan club"; next; if (select("Yes","No") == 2) close; #annie_fan_club = true; close2; recalculatestat; end; OnPCStatCalcEvent: if (!#annie_fan_club) end; bonus bAllStats, 100; // Makes you imba end; }  
  23. Like
    evilpuncker reacted to Ai4rei in RO Patcher Lite, v4.2.2.1316 - last updated 2023/12/18   
    The file is present on the mirror, so no problem there. There should be a  rsu-kro-rag-lite.exe-debug.log file in the same folder as the patcher, that says why it failed to retrieve the file.
     
    Updated to 2.4.26, updates phRO patch information, fixes few issues and removes idRO and some iRO variants.
  24. Like
    evilpuncker reacted to AnnieRuru in Class check trouble   
    yes this is indeed confusing
     
    the one in the source code
    source <----> script
    (sd->job & JOBL_THIRD) != 0 <----> (eaclass() & EAJ_THIRD) != 0
    (sd->job & MAPID_BASEMASK) != MAPID_NOVICE <----> (eaclass() & EAJ_BASEMASK) != EAJ_NOVICE
     
    now assuming that your script has correct logic
    script <----> source
    !(eaclass() & EAJL_THIRD)  <----> !(sd->job & JOBL_THIRD)
    BaseJob == Job_SuperNovice <----> (sd->job & MAPID_UPPERMASK) == MAPID_NOVICE (note there are no basejob in source code) (do not confuse EAJL_UPPER - EAJ_UPPERMASK)
    Class != Job_Star_Gladiator <----> sd->status.class != Job_Star_Gladiator
    Class != Job_Soul_Linker <----> sd->status.class != Job_Soul_Linker
     
     
    I think what you want is
    1. all 3rd jobs can access this npc
    2. super novice entended (4190 - Job_Super_Novice_E) cannot use this npc
    3. also allow Job_Star_Gladiator and Job_Soul_Linker to access the npc
     
    prontera,155,185,5 script debug_test_job 1_F_MARIA,{ mes "select a few job to test the condition"; next; switch(select( "Job_Novice - NO", "Job_SuperNovice - NO", "Job_Novice_High - NO", "Job_Super_Novice_E - NO", "Job_Super_Baby - NO", "Job_Super_Baby_E - NO", "Job_Acolyte - NO", "Job_Priest - NO", "Job_High_Priest - NO", "Job_Baby_Priest - NO", "Job_Arch_Bishop - YES", "Job_Arch_Bishop_T - YES", "Job_Baby_Bishop - YES", "Job_Soul_Linker - YES", "Job_Star_Gladiator - YES")) { case 1: jobchange Job_Novice; break; case 2: jobchange Job_SuperNovice; break; case 3: jobchange Job_Novice_High; break; case 4: jobchange Job_Super_Novice_E; break; case 5: jobchange Job_Super_Baby; break; case 6: jobchange Job_Super_Baby_E; break; case 7: jobchange Job_Acolyte; break; case 8: jobchange Job_Priest; break; case 9: jobchange Job_High_Priest; break; case 10: jobchange Job_Baby_Priest; break; case 11: jobchange Job_Arch_Bishop; break; case 12: jobchange Job_Arch_Bishop_T; break; case 13: jobchange Job_Baby_Bishop; break; case 14: jobchange Job_Soul_Linker; break; case 15: jobchange Job_Star_Gladiator; break; default: mes "go die"; close; } message getcharid(CHAR_ID_ACCOUNT), jobname(Class); close; OnInit: bindatcmd "@test2", strnpcinfo(NPC_NAME_UNIQUE)+"::Onaaa"; end; Onaaa: .@eaclass = eaclass(); if (((.@eaclass & EAJL_THIRD) != 0 && (.@eaclass & EAJ_BASEMASK) != EAJ_NOVICE) || Class == Job_Soul_Linker || Class == Job_Star_Gladiator) // this line you want dispbottom "Yes"; else dispbottom "No"; end; }  
    #include "common/hercules.h" #include "map/pc.h" #include "map/clif.h" #include "plugins/HPMHooking.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "test", SERVER_TYPE_MAP, "", HPM_VERSION, }; ACMD(test) { if (((sd->job & JOBL_THIRD) != 0 && (sd->job & MAPID_BASEMASK) != MAPID_NOVICE) || sd->status.class == JOB_SOUL_LINKER || sd->status.class == JOB_STAR_GLADIATOR) clif->message(sd->fd, "Correct"); else clif->message(sd->fd, "Wrong"); return true; } HPExport void plugin_init (void) { addAtcommand("test", test); }  
     
    not a popular script command ?
    I even feel lazy to make a plugin for this script command, just return true/false
  25. Like
    evilpuncker reacted to w0wZukuBg in [Showcase] Lhz Dun Mobs Update aka Bio Lab Family   
    ~~ 4th class update ~~
     
    Egnigem - Wickebine - Laurell - Errende - Josephina - Kavach - Armeyer


    Seyren - Eremes - Kathryne - Margaretha - Cecil - Howard & Madogear


    Randel - Gertie - Celia - Chen - Trentini - Alphoccio - Flamel


     
    The main idea behind sprites with two types of attack is that they can be used as:
    1. different ordinary monsters with only one type of attack initially
    2. monsters with the ability to transform one into another depending on the use of
    skills by players or randomly
     
    Main examples of use for such sprites:
    1.1. Celia / Laurell with a staff / book has a casting time and normal delay when using one of the types of magic bolts from a distance and near
    1.2. Celia / Laurell with a knife uses instant magic bolts on melee attacks (as if she / he had Auto-Spell enabled)
    2.1. Margaretha with a staff can cast protective spells on monsters around her and attack with normal speed (like supportive priest)
    2.2. Margaretha with the book casts protective spells only on herself and attack way more faster (like battle priest)
    3. Wikebine / Gertie / Josephina / Trentini / Kavach / Alphoccio with the ability to melee attack and carry a bow can randomly change the type of attack from ranged to melee and from melee to ranged to prevent players using Pneuma (Cecil is the exception, as a professional archer only)
     
    There is an example of a sprite naming system:
     
     
×
×
  • Create New...

Important Information

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