Jump to content

AnnieRuru

Script Developers
  • Content Count

    1677
  • Joined

  • Last visited

  • Days Won

    245

Everything posted by AnnieRuru

  1. that's because I lazy to add sprite for them xD can find them in clientsystemitemInfo.lub
  2. oh thanks for the yellbox ... I was just about to edit the title though ok time to try out the command prontera,159,183,5 script pcre_match 1_F_MARIA,{ input .@t$; if ( "([a-z])$" ~= .@t$ ) npctalk "It's a "+ $@regexmatch$[0]; close;L_1: npctalk "It's a "+ $@p2$; end;OnInit: defpattern 1, "^[^:]+: (|d{2})?([a-z]).$", "L_1"; activatepset 1; end;}prontera,155,183,5 script regexp 1_F_MARIA,{ input .@t$; if ( regexp("([a-z])$", .@t$ ) ) npctalk "It's a ... "; close;} Haru's regular expression ...this is bug ... why that only accept a,z,- ... three characters only regexp in this plugin is accurate, can accept anything between abcde...z but cannot export the result set the symbol for the end line, has to be $ defpattern ... works great as many members already using it but the symbol for the end line, has to be .$ omg, so many patterns !
  3. @@Dastgir do that in the wiki ... its useless to tell in the topic because not everyone will read this, but everyone in the wiki will see what you posted
  4. after 1 year ++.... https://github.com/HerculesWS/Hercules/issues/909#issuecomment-163911353 finally able to solve this #include "common/hercules.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include "map/script.h"#include "../3rdparty/pcre/include/pcre.h"#include "common/HPMDataCheck.h" // should always be the last file included! (if you don't make it last, it'll intentionally break compile time)HPExport struct hplugin_info pinfo = { "regexp", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated)};BUILDIN(regexp) { pcre *re; pcre_extra *pcreExtra; const char *error; int erroffset, r, offset = 0; int subStrVec[30]; const char* pattern = script_getstr(st,2); const char* subject = script_getstr(st,3); if (script_hasdata(st,4)) offset = script_getnum(st,4); re = pcre_compile(pattern, 0, &error, &erroffset, NULL); pcreExtra = pcre_study(re, 0, &error); r = pcre_exec(re, pcreExtra, subject, (int)strlen(subject), offset, 0, subStrVec, 30); pcre_free(re); if (pcreExtra != NULL) pcre_free(pcreExtra); if (r < 0) script_pushint(st,0); else script_pushint(st,(r > 0) ? r : 30 / 3); return true;}HPExport void plugin_init (void) { addScriptCommand( "regexp", "ss?", regexp );}I also edited the wiki to reflect the changehttp://herc.ws/wiki/Building_HPM_Plugin_for_MSVC#PCRE_SUPPORT
  5. the topic already said http://herc.ws/board/topic/4383-costume-item-plugins/ This Plugins will convert your items to costume(item stats/combos/bonuses will also copied) so to disable item bonus, have to revised the status_calc_pc_ I think src/map/status.c | 3 +++ 1 file changed, 3 insertions(+)diff --git a/src/map/status.c b/src/map/status.cindex 699e734..7223a04 100644--- a/src/map/status.c+++ b/src/map/status.c@@ -2317,6 +2317,9 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { continue; if(!sd->inventory_data[index]) continue;+ if ( i >= EQI_COSTUME_TOP || i <= EQI_SHADOW_ACC_L )+ if ( MakeDWord(sd->status.inventory[index].card[2],sd->status.inventory[index].card[3]) == 999998 )+ continue; for(k = 0; k < map->list[sd->bl.m].zone->disabled_items_count; k++) { if( map->list[sd->bl.m].zone->disabled_items[k] == sd->inventory_data[index]->nameid ) {
  6. I recently just did this for a customer, so I can finish this up in no time prontera,155,185,5 script kdshfksjf 1_F_MARIA,{ if ( !basicskillcheck() ) { mes "you must learn all your basic skill before changing job"; close; } if ( Class != Job_Novice ) { mes "only novice can use my service"; close; } mes "select a job to change into"; next; .@s = select ( getd(".jobmenu"+ Sex +"$" ) ) -1; .@jobid = getd(".job"+ Sex +"[ "+ .@s +"]"); jobchange .@jobid; mes "Congratulation in becoming "+ jobname(.@jobid)+"."; percentheal 100,100; close;OnInit: setarray .job1, Job_Rune_Knight_T, Job_Warlock_T, Job_Ranger_T, Job_Arch_Bishop_T, Job_Mechanic_T, Job_Guillotine_Cross_T, Job_Royal_Guard_T, Job_Sorcerer_T, Job_Minstrel_T, Job_Sura_T, Job_Genetic_T, Job_Shadow_Chaser_T, Job_Taekwon, Job_Star_Gladiator, Job_Soul_Linker, Job_Kagerou; setarray .job0, Job_Rune_Knight_T, Job_Warlock_T, Job_Ranger_T, Job_Arch_Bishop_T, Job_Mechanic_T, Job_Guillotine_Cross_T, Job_Royal_Guard_T, Job_Sorcerer_T, Job_Wanderer_T, Job_Sura_T, Job_Genetic_T, Job_Shadow_Chaser_T, Job_Taekwon, Job_Star_Gladiator, Job_Soul_Linker, Job_Oboro; .jobsize = getarraysize(.job1); for ( .@i = 0; .@i < .jobsize; .@i++ ) { .jobmenu0$ = .jobmenu0$ + jobname( .job0[.@i] ) +":"; .jobmenu1$ = .jobmenu1$ + jobname( .job1[.@i] ) +":"; } end;}
  7. no need to test, just by reading the code, already knew it wouldn't work 1. GET_SYMBOL already outdated, now use #include "common/hercules.h" 2. malloc.h change to memmgr.h 3. you don't have #include "common/HPMDataCheck.h" 4. d:ragnarokherculessrcpluginszzz.c(60): error C2039: 'colormes' : is not a member of 'clif_interface'5.1>d:ragnarokherculessrcpluginszzz.c(64): warning C4003: not enough actual parameters for macro 'sc_start'6. libpcre-> cannot be hook at the moment1>zzz.obj : error LNK2019: unresolved external symbol __imp__pcre_exec referenced in function _filter_chat1>zzz.obj : error LNK2019: unresolved external symbol __imp__pcre_study referenced in function _read_manner1>zzz.obj : error LNK2019: unresolved external symbol __imp__pcre_compile referenced in function _read_manner1>zzz.obj : error LNK2001: unresolved external symbol __imp__pcre_free
  8. https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt#L6105
  9. AnnieRuru

    hit-delay

    there is also other bugs in this plugin like 1. kill the player B 2. player A @raisemap 3. player A can kill player B in dead state ... honestly although the 1st bug can be easily fix by adding if ( pc_isdead(sd) ) return 0; but this bug I have no idea how to fix so ... yeah just disable it ... EDIT: I think I can write this one from scratch ...
  10. AnnieRuru

    Auraset

    auraset doesn't touch cashshop code no way it can give bug to that location
  11. no idea since I cannot reproduce your problem
  12. AnnieRuru

    Auraset

    I didn't get that kind of problem though prontera,155,185,5 cashshop sdjfsdfkjkd 1_F_MARIA,501:10,502:20prontera,155,188,5 script kjdshfks 1_F_MARIA,{ aura 586;}
  13. I successfully reproduce this problem [Error]: script_add_str: detected possible use of wrong case in a script. Found'Ontest', probably meant to be 'OnTest' (in 'npc/zzz.txt'). prontera,155,185,5 script kjdshfksjf 1_F_MARIA,{ monster "this",-1,-1,"--ja--",1002,1,strnpcinfo(0)+"::OnTest"; close;OnTest: dispbottom "test"; end;}prontera,155,185,5 script kjdshfsksjf 1_F_MARIA,{ monster "this",-1,-1,"--ja--",1002,1,strnpcinfo(0)+"::Ontest"; close;Ontest: dispbottom "test"; end;}exactly the same as I posted in rathenahttps://rathena.org/board/tracker/issue-6988-monster-with-onkill-label/ eathena and rathena script engine is not case sensitive, that's why this kind of error may happen in those emulator when you have 1 label as upper case and another as lower case hercules script engine can detect this kind of error and tells you to correct it, to prevent the label not being executed
  14. AnnieRuru

    ViP Players

    just add ModExp = 200;ModDrop = 200;below @adjgroup 2and reset them to 100 below @adjgroup 0
  15. AnnieRuru

    ViP Players

    HAHAHAHA !! I just reply a similar topic in rathena forum https://rathena.org/board/topic/104040- this topic is much simpler compare to that one there is no need for the relog @adjgroup trick can be use here http://upaste.me/5e9422189014c2ddf EDIT: .. erm ... someone name @@SEC here ... have to use upaste ...
  16. exactly, and I need an example ... I got a feeling it has to do with something call ... getFromSession ... let me test
  17. update to new format 1.4 seriously ... can members please register better names ? somebody names @@Maintenance here, and make my post broken anyways I tested both things, both doesn't work 1. it seems I can't add SERVER_TYPE_LOGIN, because each server use their own variables for example, the int aaa = 0; means aaa is declare to both SERVER_TYPE_MAP and SERVER_TYPE_LOGIN, they will initialize the value but if SERVER_TYPE_MAP modify the value, SERVER_TYPE_LOGIN isn't updated, since they run in different server I still have no idea how to pass a variable from map-server to login-server 2. 2nd problem is, if I add a configuration for kick autotraders when the player wants to login for the 1st time, client hang but when login for the 2nd time, its fine and the weird thing is, it doesn't remove the list from autotrader sql ... its a bug (in this plugin)
  18. now its better to use queue iterator for this kind of system - script sfhkjsdfhsk FAKE_NPC,{OnInit: if ( QUEUEOPT_LOGOUT != 1 ) end; // if your server is outdated, error will be thrown on this line bindatcmd "whisper", strnpcinfo(0)+"::Onjoin", 0, 100; bindatcmd "debug", strnpcinfo(0)+"::Ondebug", 99, 100; // GM99 debug .q = queue(); end;Onjoin: if ( queueadd( .q, getcharid(3) ) ) dispbottom "join success"; else dispbottom "you already joined"; end;Ondebug: .@it = queueiterator(.q); for ( .@aid = qiget(.@it); qicheck(.@it); .@aid = qiget(.@it) ) { .@name$ = rid2name(.@aid); getmapxy .@map$, .@x, .@y, 0, .@name$; dispbottom ( ++.@i )+". "+ .@name$ +" at "+ .@map$ +","+ .@x +","+ .@y; } if ( !.@i ) { dispbottom "nobody join yet"; } qiclear .@it; end;}
  19. maintenance.c ? that's one of my release that's actually my problem haha ... that plugin using old format, I'll fix the error soon
  20. maybe change this 4 lines if (!pc_addeventtimer(sd,tick,event)) { ShowWarning("buildin_addtimer: Event timer is full, can't add new event timer. (cid:%d timer:%s)n",sd->status.char_id,event); return SCRIPT_CMD_FAILURE; }into thispc_addeventtimer(sd,tick,event);.. but shouldn't happen I think ... if it really run that return SCRIPT_CMD_FAILURE; it should also run that ShowWarning ... no idea since I cannot reproduce your problem
  21. speechless ... if make only 1 room, also means every player has to queue up to use it right ? 1. I also think this should be an instance script 2. this script should be useless now last time emperium was holy element monster, players can equip/enchant with darkness element to deal bonus damage to emperium but now it is a plant type monster, can only dead 1 damage, so definitely player with highest agi will win =/
  22. you did not follow the step 9&10 add existing items, add your_file_name.c file
  23. well I was about to make an algorithm function script to convert numbers into roman numerals http://www.onlineconversion.com/roman_numerals_advanced.htm since the largest number that roman numbers can get is 4999 4888, also means MMMMDCCCLXXXVIII, 16 characters ! did your server prepared to create a name length string only limited to 4 characters ? 23(NAME_LENGTH) - 16(4888 largest) - 3 suffix characters([] ) = 4 only hmm .. I remember I saw a patch in eathena forum, that can limit player register their names in shorter strings maybe can release a plugin for it EDIT: only 4 characters LOLOL !!
  24. I don't have that error on my latest rathena test server that error probably come from script.c try look for SCRIPT_CMD_FAILURE from BUILDIN_FUNC(addtimer) script command one of them giving this message
  25. time to show my stylist script ? https://github.com/AnnieRuru/customs/blob/master/scripts/stylist.txt when you start searching, it automatically save a variable on which style you are on the revert feature was from Euphy script though https://github.com/HerculesWS/Hercules/blob/master/npc/custom/stylist.txt
×
×
  • Create New...

Important Information

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