Jump to content

AnnieRuru

Script Developers
  • Content Count

    1677
  • Joined

  • Last visited

  • Days Won

    246

Everything posted by AnnieRuru

  1. I hope I didn't this time most people would have thought that item bonuses can only gain through equipments, (official) but there are custom mods like OnPCStatCalcEvent and Charms can also give item bonuses if wanna change sprite, there are always setaura custom mod, or just use changelook script command so I wouldn't think inside the box, always think outside the box !
  2. ahhhh ... now I understand then there is no need an item just use OnPCStatCalcEvent will do prontera,155,185,5 script sdkjfhdsfs 1_F_MARIA,{ input $pvpwinner; // debug close;OnPCStatCalcEvent: if ( getcharid(3) == $pvpwinner ) { bonus bStr, 1000; } end;}whoever wins the top ladder, gains bonus +1000 str
  3. Tested with db/re/skill_db.conf { Id: 2991 Name: "CUSTOM_damage" Description: "CUSTOM_damage" MaxLevel: 1 Range: 15 SkillType: { Enemy: true } Event_Label: "qwer::Ontarget" }, { Id: 2992 Name: "CUSTOM_nodamage" Description: "CUSTOM_nodamage" MaxLevel: 1 Range: 15 SkillType: { Friend: true } Event_Label: "qwer::Ontarget" }, { Id: 2993 Name: "CUSTOM_setpos" Description: "CUSTOM_setpos" MaxLevel: 3 Range: 15 SkillType: { Place: true } Event_Label: "qwer::Onpos" }, { Id: 2994 Name: "CUSTOM_self" Description: "CUSTOM_self" MaxLevel: 1 Range: 15 SkillType: { Self: true } Event_Label: "qwer::Onself" }, data/luafiles514/lua files/skillinfoz/skillinfolist.lub [SKID.CUSTOM_damage] = { "CUSTOM_damage"; SkillName = "Get Target enemy", MaxLv = 1, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 15 }, }, [SKID.CUSTOM_nodamage] = { "CUSTOM_nodamage"; SkillName = "Get Target friend", MaxLv = 1, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 15 }, }, [SKID.CUSTOM_setpos] = { "CUSTOM_setpos"; SkillName = "Get Position", MaxLv = 3, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 15 }, }, [SKID.CUSTOM_self] = { "CUSTOM_self"; SkillName = "Self Cast", MaxLv = 1, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 1 }, }, data/luafiles514/lua files/skillinfoz/skillid.lub CUSTOM_damage = 2991, CUSTOM_nodamage = 2992, CUSTOM_setpos = 2993, CUSTOM_self = 2994, data/luafiles514/lua files/skillinfoz/skilldescript.lub [SKID.CUSTOM_damage] = { "Test Target Enemy", "MAX Lv : 1 ", "push these variables :-", "'@useskilllv' for the skill level.", "'@useskilltarget' for the GID.", }, [SKID.CUSTOM_nodamage] = { "Test Target Friend", "MAX Lv : 1 ", "push these variables :-", "'@useskilllv' for the skill level.", "'@useskilltarget' for the GID.", }, [SKID.CUSTOM_setpos] = { "Test Coordinate", "MAX Lv : 3 ", "push these variables :-", "'@useskilllv' for the skill level.", "'@useskillx' for the X coordinate.", "'@useskilly' for the Y coordinate.", }, [SKID.CUSTOM_self] = { "Test Self", "MAX Lv : 1 ", "push these variables :-", "'@useskilllv' for the skill level.", } and finally the npc script - script qwer FAKE_NPC,{ Ontarget: dispbottom "lv: "+ @useskilllv +" | target "+ @useskilltarget; unittalk @useskilltarget, "from "+ strcharinfo(PC_NAME); end; Onpos: dispbottom "lv: "+ @useskilllv +" | x: "+ @useskillx +" | y: "+ @useskilly; end; Onself: dispbottom "lv: "+ @useskilllv; end; OnPCStatCalcEvent: skill CUSTOM_damage, 1; skill CUSTOM_nodamage, 1; skill CUSTOM_setpos, 3; skill CUSTOM_self, 1; end; } fuh ! so, yes, this is basically making a new skill, so read this wiki on how to make a new skill http://herc.ws/wiki/Adding_new_skills Frequently Asked Question Why some skill ID doesn't work ? see this inside skill_get_index function //[Ind/Hercules] GO GO GO LESS! - http://herc.ws/board/topic/512-skill-id-processing-overhaul/ else if( skill_id > 1019 && skill_id < 8001 ) { if( skill_id < 2058 ) // 1020 - 2000 are empty skill_id = 1020 + skill_id - 2001; else if( skill_id < 2549 ) // 2058 - 2200 are empty - 1020+57 skill_id = (1077) + skill_id - 2201; else if ( skill_id < 3036 ) // 2549 - 3000 are empty - 1020+57+348 skill_id = (1425) + skill_id - 3001; else if ( skill_id < 5044 ) // 3036 - 5000 are empty - 1020+57+348+35 skill_id = (1460) + skill_id - 5001; else ShowWarning("skill_get_index: skill id '%d' is not being handled!\n",skill_id); } because eathena forum down, let me rephrase again what this modification does if the skill inf type is INF_ATTACK_SKILL (target enemy only) - Enemy: true - kill the unit with *unitkill - zap another player's health with *heal -1000, 0; - apply curse status with *sc_start - make the target *unittalk ... - etc etc etc... if the skill inf type is INF_SUPPORT_SKILL (target friends and enemy) - Friend: true - check if the player is party members, give buff by *sc_start - check if the player is guild members, give buff by *sc_start during events - make the player show emotion - warp the target player to somewhere else - give players item/stat/cashpoints .... by *getitem/*statusup ... *attachrid + #CASHPOINTS if the skill inf type is INF_GROUND_SKILL (target ground) - Place: true - use *monster script command to summon monsters - *makeitem to rain items ... skill level determine the item ID ... - create a temporary npc .... using duplicatenpc plugin - etc etc etc ... this is just things I can think of, basically you can do ANYTHING with any script commands available 2nd thing is, when the skill type is INF_SUPPORT_SKILL, (Friend: true) you have to hold shift to target players this is client side limitation, require client hexing ... which I dunno how to do History: Question: Why there is no OnPCUseSkillEvent label in the npc script, but using the title OnPCUseSkillEvent ? ... eathena forum down because the original modification made during eathena was something like this OnPCUseSkillEvent: switch ( @useskillid ) { case 2991: switch ( @useskilllv ) { case 1: case 2: case 3: ... } break; case 2992: switch ( @useskilllv ) { ... } break; ... default: end; } which runs this label every time a player use ANY skill and the original custom modification tax very heavily on server resources that's why now this (revamp) version only pick which skill ID to run, along with your configurable event label
  4. After so many years of hearing rumor of this modification, finally today is the day I can release this to public Download : 1.5 plugin original topic from eathena
  5. you can always send a mail to the offline player however you mean ... the item is bound ? seems like hercules still doesn't support get bounded item from mail
  6. rathena already has this by default -> https://github.com/rathena/rathena/commit/27a0f3f someone else has tried to pull request in hercules, -> https://github.com/HerculesWS/Hercules/pull/351 but it was denied, so have to leave this as plugin UPDATE: rathena has taken out -> https://github.com/rathena/rathena/commit/b65443d8f564175196d57ef9bc1d000a5661fbdc Download : 2.1 plugin Tested with: conf\import\OnPCStatCalcEvent.conf both `@reloadscript` and `@reloadonpcstatcalcevent` command can reload conf\import\OnPCStatCalcEvent.conf file  `@reloadscript` = reload everything -> cause destruction on live server `@reloadonpcstatcalcevent` = only reload conf\import\OnPCStatCalcEvent.conf file , combine with `@reloadnpc` command -> not so destructive script: ( { // give GM permanent bonus ? OnPCStatCalcEvent: <" bonus bVit, 1234; end; "> }, { // for xxx event OnPCStatCalcEvent: <" skill TF_HIDING, 1; end; "> }, { // npc/custom/xxxevent.txt OnPCStatCalcEvent: <" if (@a) { bonus bStr, 1000; skill WZ_ICEWALL, 1; } end; "> }, ) script prontera,158,185,5 script djk2sfhsd 1_F_MARIA,{ @a ^= 1; mes "hmm..."; recalculatestat(); next; mes "what ?"; @a ^= 1; recalculatestat(); next; mes "maybe..."; @a ^= 1; recalculatestat(); next; mes "probably..."; @a ^= 1; recalculatestat(); next; mes "yeah..."; @a ^= 1; recalculatestat(); close; } yes, this actually works !! with version 2.0 onwards, no more spamming <npc name>::OnPCStatCalcEvent !! and even `*skill` working perfectly fine now
  7. I think you did wrong ... don't really understand why you have those 90,80,70 level difference the level difference means if a player lvl 30, and poring lvl1, the level difference is 29 or a player level 1, and poporing level 30, the level difference also 29 and how do you define that level requirement and ... better just repost again what is your request specifically seems like you always change your request from post to post
  8. its common sense to change the npc coordinate, npc name and npc sprite when you want to use in your live server and ... Read The F***ing Manual https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt
  9. the word impossible doesn't exist in my dictionary OnPCStatCalcEvent:bonus2 bSkillAtk,sk,n; Increase damage of skill sk by n% ... I don't have to tell about BaseExp += XXX JobExp += xxx. no idea what is itbut ragnarok seems to disable auction npc for some stupid reason ... because player can already vend
  10. I just tested by summon 100 poringsit gives 1 status point per 10 poring, and gives total 10 status point when I kill all I have no idea how you can get it on 15th or 16th . why not ? the word impossible doesn't even exist in my dictionary. then use setarray. if ( getmonsterinfo .. mob_level < BaseLevel .... just remove the killedrid .... remove the shuffle algorithm and use array ... I hope you can understand a little bit about scripting ..... - script kdjshfkshf FAKE_NPC,{OnInit: setarray .poring, // configure your mobs to trigger random stats PORING, DROPS, POPORING, MARIN, GOLDPORING, METALING, MAGMARING, POURING, MASTERING, ANGELING, GHOSTRING, ARCHANGELING, DEVILING, JEJELING, LITTLE_PORING; .poringracesize = getarraysize( .poring ); end;OnNPCKillEvent: if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 10 ) { // if level difference below 10 mobkill++; // any mob kill increase the count if ( mobkill >= 10 ) { // if kill any monster more than 10 StatusPoint++; // increase status point by 1 mobkill = 0; } } if ( readparam(bStr) < 20 ) { // if str is lower than 20 while ( killedrid != .poring[.@i] && .@i < .poringracesize ) .@i++; if ( .@i < .poringracesize ) { statusup2 bStr, 1; } } end;}
  11. what do you want actually ? I thought the script already complete, just some feature are off from original WoW battleground, and nobody tells me the correct behavior on WoW
  12. if I move this topic from source request into script request then you understand where to put them, right ? btw, didn't I already said it ... ?
  13. 1 trick that I used before is one if them use sleep, then the other one use initnpctimer then they wont get overwritten
  14. I've heard this excuse many timesbut isn't that patches also prevent you from upgrading rathena too ? . honestly hercules is quite lag behind rathena since Ind gone. no idea, I'm client noob and I am currently using 2014-01-15
  15. erm ... $10 ? lolbtw I heard that you are considering open a new server, why not just open a Hercules server instead ?
  16. just change getitem .Prize, .amount;intogetitem 501, 10;getitem 502, 10;getitem 503, 10;getitem 504, 10;then will get multiple prize
  17. change the close; command into end; ... LOLjust fixed
  18. another lame script that has been around for a very long time ... just a function to show the item name exactly like on the client side Download: 2.6 script Display Item name just as the client version 2 onward has color code for display inside npc dialog original topic from eathena and rathena ...
  19. require OnPCUseSkillEvent modification https://www.eathena.ws/board/index.php?showtopic=274088 the trick is, create a new skill, in the item script, use 'itemskill' script command, then unitwarp the target ID using variable @useskilltarget pssss.... at the moment I'm writing getitemname2 function ... then I have to update setmobdata .... busy .... so this is not in my top priority to do list
  20. I don't even understand what the topic is asking about
  21. AnnieRuru

    mvp reward

    - script kjdsfksjdf FAKE_NPC,{OnNPCKillEvent: if ( getmonsterinfo( killedrid, MOB_MVPEXP ) && rand(100) < 10 ) getitem Poring_Coin, 1; // change this to gympass ... I don't have in my item_db end;}
  22. @bOinkz @Helena @Xanthin src/map/skill.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/map/skill.c b/src/map/skill.c index 6eacde8..c246e1f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -16200,6 +16200,11 @@ void skill_weaponrefine (struct map_session_data *sd, int idx) break; } } + { + char message[CHAT_SIZE_MAX]; + safesnprintf( message, CHAT_SIZE_MAX, "+%d %s Item Obtained.", item->refine, ditem->jname ); + clif->message( sd->fd, message ); + } } else { item->refine = 0; if(item->equip)
  23. I just update the topic http://herc.ws/board/topic/7218-sample-questlog-script/ if it is simple, you should learn to make use of quest log system
  24. the plugin will bypass the 'min_npc_vendchat_distance' check so your server can still on the 'min_npc_vendchat_distance' to disallow players to vend too near other npc but still able vend on the npc for these coordinates
  25. that script uses custom items if (.@class_type == 1) { set .@class_type$, "Swordman"; set .@rand_bonus, rand(25000,25017); } else if (.@class_type == 2) { set .@class_type$, "Mage"; set .@rand_bonus, rand(25018,25037); } else if (.@class_type == 3) { set .@class_type$, "Thief"; set .@rand_bonus, rand(25038,25058); } else if (.@class_type == 4) { set .@class_type$, "Archer"; set .@rand_bonus, rand(25059,25080); } else if (.@class_type == 5) { set .@class_type$, "Merchant"; set .@rand_bonus, rand(25081,25102); } else if (.@class_type == 6) { set .@class_type$, "Acolyte"; set .@rand_bonus, rand(25103,25126); }.... delitem 30000,1;all these item ID are not available in our current SVNwe only have those in the ID range 4700~4899 like I said, use mine, then request what you want that script are too customized and unoptimized, I'm unable to improve that script
×
×
  • Create New...

Important Information

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