-
Content Count
2178 -
Joined
-
Last visited
-
Days Won
66
Reputation Activity
-
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.
-
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
-
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.
-
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 ........
-
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/
-
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.
-
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/
-
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!
-
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 ?
-
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
-
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
-
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 .... =/
-
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
-
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
-
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
-
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) {
-
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
-
evilpuncker reacted to Relzz in OPENKORE BOT Server config
ayy, wrong forum buddy
(and the anticheat guy replies to you, epic)
-
-
-
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
-
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; }
-
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.
-
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
-
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: