Jump to content

Timokha

Members
  • Content Count

    48
  • Joined

  • Last visited

Everything posted by Timokha

  1. But OnPCLoadMapEvent triggers when the character loads on specific map with label. I need to apply actions (specialeffect, getitem, etc) to all characters already located on map (already loaded).
  2. Hello all! Can you please advise, is there a solution to apply special effect on all characters located on specific map via script (ex. in Prontera)?
  3. Timokha

    @arealoot

    The plugin is perfectly working on the latest HERC. Check and use this code: https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/%40arealoot.c And do not forget to mention the plugin name in \conf\plugins.conf
  4. Hello, I am adding account ID to the variable by the following scripts: set $MY_VARIABLE[0], getcharid(3); set $MY_VARIABLE[getarraysize($MY_VARIABLE)], getcharid(3); I have a list of values in this variable like: 2000000 2000001 2000002 etc It indicates, that these accounts are participating in the game. If the player fails, I need to delete it from this array, but cannot find the right script. Could you please advise, how can I exclude the player from this variable, if he dies on my map for example? OnPCDieEvent: if (strcharinfo(3) == MY_EVENT_MAP) { ???? dispbottom "Game over."; }
  5. Solved it. if (sd->npc_id > 0) return false;
  6. Hello, Could you please advise, how to disable @go command, when it used in NPC dialogue? If I put @go 0 as example to quick slot ALT+1, it shall TP char to prontera even if it's in a dialogue. I'd like to avoid that, cause many of my scripts were written without protections from such actions. I've found out, that @refresh has this restriction. In NPC dialogues @refresh just failed without any effect. Thanks in advance.
  7. Timokha

    race_resist

    Are there any updates on this plugin? It shows ZERO values.
  8. Hi all, Please advise on how to deactivate premium account. I have to set variable #VIP to 0 automatically, when the time expires. But I have no clue, how automatically in real time do that. // SCRIPT // ... set #VIP, 1; set #VIP_delay, gettimetick(2) + 60; // 1 min ... } When the time expires, the variable #VIP remain the same ( == 1 ). I use if (gettimetick(2) < #VIP_delay) to show player, if the premium is still active. But I have to set it to 0 to deactivate all benefits from Premium acc, otherwise it shall remain activated forever. ~ Highly appreciate your help.
  9. Hello, Thanks, Is there a way to hide only these messages "pinging sql server to keep connection alive site"? If I put "1" in console.conf it hides all INFO messages, including messages which I must receive.
  10. Hello, Many thanks for your job, Everything work fine and stable, but login/char/map servers show the following: [info] pinging sql server to keep connection alive site Twice per minute. Is it possible to swith these notes off? Or it might be some kind of error?
  11. Did anyone find a solution to change item name colors to black without changing the slots?
  12. That's was my misprint, but it changes nothing. Does not work, when I log in. Any ideas?
  13. Hi all, I'd like to add to my server achievement system that was presented in RO Mobile (Eternal Love). Ok, close to it ~ Sample: - Collect something (poring card and fabre card) get +1 str. - Pass through 25 level of ET get +5 to DEF. - Kill Drake get +1000 HP. Do you have any good idea on how it should looks like. I was thinking about below, but no effect in both cases. - script sample -1,{ end; OnPCLoginEvent: if(ACHIEVE_0001 = 1) { bonus bStr,100; or autobonus "{ bonus bAllStats,100; }",100,10000,BF_WEAPON|BF_MISC,"{ specialeffect2 EF_FIRESPLASHHIT; }"; } } Your assistance will be highly appreciated!~
  14. Thank you Racaae, highly appreciate your help!
  15. Hi all, I'd like to write the script, that will kill all monster (except for 2-3 IDs) with 2-3 cells area around NPC. Do anyone have idea how it should look like? I prepared loop event, but dont know how can I write auto-killing monster within this area.. Thank you.
  16. How to use these lines for skill_mob_db: 3254,T_W_O@WIDESTONE,chase,666,5,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,, 3254,T_W_O@WIDESTONE,attack,666,5,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,, 3254,T_W_O@NPC_WIDESOULDRAIN,attack,680,7,1000,500,5000,no,self,myhpltmaxrate,50,,,,,,42, if my db looks like: SCORPION: { NPC_FIREATTACK: { SkillState: "MSS_BERSERK" SkillLevel: 1 Rate: 2000 Delay: 5000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" }
  17. Hi, Do you have any idea, how can I fix item? Highly appreciate your reply.
  18. Timokha

    Mass Seller

    Thanks a lot, I highly appreciate your assistance. May the Gods bless you!! I've made it works. If someone needs, below share complete script for bulk sell. It ignores: x Items with 0z cost (eg. customs items) x Refined items x Equiped items Works only for: x Junk (ETC) x Weapon / Armor / Pet armor SOLVED. nss_dojo,211,222,4 script TestNPC 4_M_MAYOR,{ getinventorylist; set .@overcharge_lv, getskilllv( "MC_OVERCHARGE" ); if( .@overcharge_lv ) set .@overcharge_rate, 105 + ( 2 * .@overcharge_lv ) - ( ( .@overcharge_lv >= 10 )? 1:0 ); while( .@i < @inventorylist_count ){ if( !@inventorylist_equip[.@i] && getiteminfo( @inventorylist_id[.@i], ITEMINFO_SELLPRICE ) != 0 && !@inventorylist_refine[.@i] != 0 && (getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_ETC || getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_ARMOR || getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_PETARMOR || getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_WEAPON )) { set .@item_sell_price, getiteminfo( @inventorylist_id[.@i],1 ); if( .@overcharge_lv ) set .@item_sell_price, ( ( .@item_sell_price * .@overcharge_rate ) / 100 ); mes " > "+@inventorylist_amount[.@i]+ "x " +getitemname( @inventorylist_id[.@i] )+" : "+.@item_sell_price+"z"; .@cost += .@item_sell_price * @inventorylist_amount[.@i]; } .@i++; } if( .@cost ){ if( select( "Cost for all the Items - "+.@cost+" zeny?","Cancel" ) == 1 ){ .@i = 0; while( .@i < @inventorylist_count ){ if( !@inventorylist_equip[.@i] && getiteminfo( @inventorylist_id[.@i], ITEMINFO_SELLPRICE ) != 0 && !@inventorylist_refine[.@i] != 0 && (getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_ETC || getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_ARMOR || getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_PETARMOR || getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_WEAPON )) delitem @inventorylist_id[.@i],@inventorylist_amount[.@i]; .@i++; } specialeffect(367, AREA, playerattached()); specialeffect(10, AREA, playerattached()); Zeny += .@cost; mes "You received a total cost of "+.@cost+" zeny."; } } else{ mes "You don't have any items to sell."; } close; }
  19. Timokha

    Mass Seller

    Thank you. It works well, but it sells all items including cards and items, that should not (can't) be sold. That's why I use //ITEMINFO_TYPE ) == IT_WEAPON/ARMOR/ETC// in my script. I'm looking for a script, which will sell all items, expect for cards, usable, healing items, and some IDs from my list.
  20. Timokha

    Mass Seller

    Hello All, Could you please help me. I'd like to make below script scans and ignores all equiped items on the characters. Now it deletes all items, including equiped. I also want to include function to ignore specific item IDs. Might be someone can help me with below or have alternative script with bulk selling, working with Hercules? Thanks in advace, nss_dojo,209,222,4 script Bulk_sell 1_M_MERCHANT,{ disable_items; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { if ( getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_ETC ) { .@id[.@c] = @inventorylist_id[.@i]; .@amount[.@c] = @inventorylist_amount[.@i]; .@zeny_total += getiteminfo( .@id[.@c], ITEMINFO_SELLPRICE ) * .@amount[.@c] *(100 + .Overcharge[ getskilllv(MC_OVERCHARGE)] )/100; ++.@c; } } for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { // if ( getiteminfo( !@inventorylist_equip[.@i], ITEMINFO_TYPE ) == IT_WEAPON ) { // if ( getiteminfo( !@inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_WEAPON ) { if( !@inventorylist_equip[.@i] && getiteminfo ( !@inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_WEAPON ){ .@id[.@c] = @inventorylist_id[.@i]; .@amount[.@c] = @inventorylist_amount[.@i]; .@zeny_total += getiteminfo( .@id[.@c], ITEMINFO_SELLPRICE ) * .@amount[.@c] *(100 + .Overcharge[ getskilllv(MC_OVERCHARGE)] )/100; ++.@c; } } for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { if ( getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_PETARMOR ) { .@id[.@c] = @inventorylist_id[.@i]; .@amount[.@c] = @inventorylist_amount[.@i]; .@zeny_total += getiteminfo( .@id[.@c], ITEMINFO_SELLPRICE ) * .@amount[.@c] *(100 + .Overcharge[ getskilllv(MC_OVERCHARGE)] )/100; ++.@c; } } for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { if ( getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ) == IT_ARMOR ) { .@id[.@c] = @inventorylist_id[.@i]; .@amount[.@c] = @inventorylist_amount[.@i]; .@zeny_total += getiteminfo( .@id[.@c], ITEMINFO_SELLPRICE ) * .@amount[.@c] *(100 + .Overcharge[ getskilllv(MC_OVERCHARGE)] )/100; ++.@c; } } if ( !.@c ) { mes "nothing to sell"; close; } mes "are you sure to sell :"; for ( .@i = 0; .@i < .@c; ++.@i ) mes .@amount[.@i] +"x "+ getitemname(.@id[.@i]); mes "в сумме за "+ F_InsertComma(.@zeny_total) +" Зени ?"; next; if ( select( "Yes", "No" ) == 2 ) close; if ( Zeny + .@zeny_total > MAX_ZENY ) { mes "you cannot carry much more zeny."; close; } for ( .@i = 0; .@i < .@c; ++.@i ) delitem .@id[.@i], .@amount[.@i]; specialeffect(367, AREA, playerattached()); specialeffect(10, AREA, playerattached()); mes "All items have been sold for "+ F_InsertComma(.@zeny_total) +" z"; Zeny += .@zeny_total; close; OnInit: setarray .Overcharge[0], 0, 7,9,11,13,15,17,19,21,23,24; end; }
×
×
  • Create New...

Important Information

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