Jump to content


Script Developers
  • Content Count

  • Joined

  • Last visited

  • Days Won


AnnieRuru last won the day on September 21

AnnieRuru had the most liked content!

About AnnieRuru

Contact Methods

  • Discord

Profile Information

  • Gender
  • Location:
    your next door ~
  • Interests
    event scripts ~ battleground scripts ~
    making battleground scripts is my hobby ~
  • Github
  • Emulator
  • Client Version

Recent Profile Visitors

13388 profile views
  1. 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; }
  2. no, I'm not giving these cards away they are store in my "childhood memory box" for keep-sake
  3. a basic google search found this topic didn't test, but it looks to be most feature complete hmm.................... bad script design though
  4. 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: [email protected] = eaclass(); if ((([email protected] & EAJL_THIRD) != 0 && ([email protected] & 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
  5. oh ok, you are partially right when it kick excess guild members but it isn't the way you claimed that it count from other guild members upon close inspection, @astralprojection script has 2 problems which is 1. if the player has multiple characters from the same account join the same guild, it count multiple times instead of 1, it doesn't extend the isloggedin into [email protected] check 2. it checks as long as the guild member enter ANY CASTLE map, not that particular castle map try this one https://gist.github.com/AnnieRuru/339e268a8be5370fa7ae1aa2f856ca28
  6. setd "#Attendance_" + gettime(DT_YYYYMMDD),true; bad script design let's say the player has attended this script for 300 days, then it will have 299 unnecessary variables pile up in `acc_reg_num_db` table this kind of variable only use once, so set only 1 variable enough, with the value on date format no.2 from my understanding, your script even use loop ... why not just use gettimetick(2) when login, `@timelogin` = gettimetick(2), when npc check, (gettimetick(2) - `@timelogin`) .... no,3 and why not just write everything with source code =/ no need loop, every variable and function you want is readily served in source code nvm, let me show you if its done entirely with source code https://gist.github.com/AnnieRuru/82335a62e8a6133511cda473ade8d322 oh and, my discord is AnnieRuru#1609
  7. https://upaste.me/691b80 emistry's script should work though ... - script Sample FAKE_NPC,{ OnPCLoadMapEvent: [email protected]$ = strcharinfo(PC_MAP); [email protected]_id = getcharid(CHAR_ID_GUILD); if (getmapflag([email protected]$, MF_GVG_CASTLE) && [email protected]_id) { if (getmapguildusers( [email protected]$,[email protected]_id ) > 2){ mes "Max Guild Member can stay on this map exceed."; close2; warp "prontera",155,181; } } end; } aldeg_cas01 mapflag gvg_castle aldeg_cas01 mapflag loadevent now astralprojection's script .... also works when set .max, 2; ... ... I have no idea why doesn't work for you, - I open 6 client, 3 client join guild A, other 3 client join guild B - guild A only can only enter 2 guild members, guild B also only can enter 2 guild members, always 1 getting kick if it doesn't work this way, then what is the behavior you want ?
  8. prontera,152,188,5 script test getitemname2 1_F_MARIA,{ setarray [email protected], 1101, 5, 0, 0, 4003, 4003; mes callfunc("getitemname2", [email protected][0], 1, [email protected][1], 0, [email protected][2], [email protected][3], [email protected][4], [email protected][5]); mes callfunc("F_ITEML", [email protected][0], [email protected][1], [email protected][2], [email protected][3], [email protected][4], [email protected][5]); close; } I'm not sure needs to even needs to update this script or not, because <ITEML> function can do exact same thing ... but the colorize message box seems very tempting .... meh ... 2.6 - script - fix a bug when you have only 1 card inserted, it shows Triple <blank>, now the blank slot no longer calculate - fix a bug for missing line getiteminfo(ITEMINFO_SUBTYPE) when having identify flag off
  9. ok visual studio sux https://github.com/AnnieRuru/Release/blob/master/plugins/ignoredropitem/ignoredropitem_0.3.c - fix possible null pointer error
  10. I just noticed my newly downloaded test server from a few days ago is stable branch LOL ... should've been main branch because it just a test server, thanks for reminder anyway yeah the previous post still stand correct, only the DD are not necessary and you are good to go
  11. prontera,155,185,5 script kjhfkhsjd 1_F_MARIA,{ // #Attendance_require = 0; // end; mes callsub(YYYYMMDD); #Attendance_require = callsub(YYYYMMDD); close; YYYYMMDD: return gettime(GETTIME_YEAR) * 10000 + gettime(GETTIME_MONTH) * 100 + gettime(GETTIME_DAYOFMONTH); } #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 = { "attendance_requirement", SERVER_TYPE_MAP, "", HPM_VERSION, }; // copy from src\map\date.c int date_get_date(void) { time_t t; struct tm * lt; t = time(NULL); lt = localtime(&t); return (lt->tm_year + 1900) * 10000 + (lt->tm_mon + 1) * 100 + (lt->tm_mday); } static void clif_parse_attendance_reward_request_pre(int *fd, struct map_session_data **sd) { if ((*sd)->state.trading || pc_isdead(*sd) || pc_isvending(*sd)) return; if (pc_readaccountreg(*sd, script->add_variable("#Attendance_require")) != date_get_date()) { clif->messagecolor_self((*sd)->fd, COLOR_RED, "You don't meet the requirement."); hookStop(); } return; } HPExport void plugin_init (void) { addHookPre(clif, pAttendanceRewardRequest, clif_parse_attendance_reward_request_pre); } this has been tested working btw remember the attendance system are bind to each character in the account https://github.com/HerculesWS/Hercules/blob/da14478a8c0c616a6aa5481694c550143bc9b9f3/sql-files/main.sql#L245-L246 <-- under `char` table so I guess what you doing there is the reward can claim for each character in the account once the quest has completed
  12. dastgir has been a big help trying to help maintain some of my plugins, but this one in particular, I see the version is 1.6, which means he miss the version 1.7 update yup, the one you posted has memory leak problem because the chat-room doesn't remove properly eg: only remove the chat-room shown, but the memory still persist see the remove_chatroom function to see how to remove the chat-room from server memory properly ... which was copy paste from a function from chat.c anyway here is version 1.9 https://github.com/AnnieRuru/Release/blob/master/plugins/marketclone/marketclone_1.9.c
  13. update to version 1.9 plugin big thanks to dastgir to give some hints how to update this plugin if you removed that, any server that has show_mob_info settings on, will allow players to see the level and hp of the mobs it seems the function has changed, now just need clif_mobname_ack to work
  14. I can't believe a simple script like this can get tons of errors, this is outside of my expectation I can't reproduce any of those 3 errors how do you even get this error ? this is even ridiculous, NPC_SELFDESTRUCTION should return number 173, not 150000 ok, maybe its because this is rip from rathena, because rathena doesn't support Skill ID constant, so use the string input but still ... but how did your server can parse NPC_SELFDESTRUCTION as 1500000 in the first place ? if these 2 error are caused by *unitskilluseid, then try use *unitkill instead try 1 more time https://gist.github.com/AnnieRuru/4a87e0ab7451e671d0e3056aedd2a086/revisions https://gist.github.com/AnnieRuru/4a87e0ab7451e671d0e3056aedd2a086 no, e_omg are official constant, https://github.com/HerculesWS/Hercules/blob/stable/doc/constants.md#emotes don't try to change that to capital letters I get it now, reproduced with my rathena test server, so if you are using rathena, so nope, this script was made for hercules next time if you are using rathena, either say clearly in your 1st post, or have your username says you are using rathena emulator I take it as rathena script request ?
  15. need to stretch my scripting skills a little bit, too long since I done any scripting https://gist.github.com/AnnieRuru/4a87e0ab7451e671d0e3056aedd2a086
  • Create New...

Important Information

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