Jump to content

Capuche

Developer
  • Posts

    2,407
  • Joined

  • Last visited

  • Days Won

    49

Everything posted by Capuche

  1. Simple NPC prontera,150,155,5 script hyuikol 456,{ //-- ID coupon [email protected] = 30004; //- mes "^770000~~ Thana Warper ~~^000000"; mes "I can warp you inside Thanatos Tower !"; mes "Shall we go ?"; next; if( select( "Yes:No" ) -1 ) { //-- Leave mes "^770000~~ Thana Warper ~~^000000"; mes "Maybe another day ?"; close; } //-- Check inventory if( countitem( [email protected] ) < 1 ) { mes "^770000~~ Thana Warper ~~^000000"; mes "Sorry a ^CC00CC"+getitemname( [email protected] )+"^000000 is required for the process."; close; } close2; message strcharinfo(0),"Here we go ! Get ready..."; delitem [email protected], 1; //-- 2 seconds delay before warp sleep2 2000; warp "thana_boss",0,0; end; }
  2. I don't know why... maybe it's because I ate some bean ? Whatever, I found another error... mes "This is what you need"; mes "~ ^990099 100 Giant Butterfly Wings^000000."; mes "~ ^990099 50 Cyfar^000000."; mes "~ ^990099 20 Soft Feather^000000."; mes "~ ^990099 10 White Dyestuff^000000."; mes "~ ^990099 5 Rough Wind^000000."; mes "~ ^990099 1 Necklace of Wisdom^000000."; mes "~ ^990099 1 Angeling Card^000000"; mes "~ ^990099 50 Gold^000000."; mes "And finally ~ ^990099 10m^000000."; next; if (countitem(7168)<100)goto broke; if (countitem(7053)<50)goto broke; if (countitem(7063)<20)goto broke; if (Countitem(982)<10)goto broke; if (countitem(996)<5)goto broke; if (countitem(4054)<1)goto broke; if (countitem(969)<50)goto broke; if (zeny <10000000)goto broke; next; delitem 7168,100; delitem 7053,50; delitem 7063,20; delitem 982,10; delitem 996,5; delitem 4054,1; delitem 969,50; You forgot countitem and delitem of Necklace of Wisdom R_yes4: next; mes "[^0000FFClaudia^000000]"; mes "This is what you need"; mes "^0000ff 5 frozen rose^000000."; mes "^0000ff 5 harpy feather^000000."; mes "^0000ff 25 peco peco feather^000000."; mes "^0000ff 25 cloud crumb^000000"; mes "And finally 10m Zennies"; next; if (countitem(749)<5)goto broke; if (countitem(7115)<5)goto broke; if (Countitem(7101)<25)goto broke; if (countitem(7162)<25)goto broke; if (zeny<10000000)goto broke; next; delitem 749,5; delitem 7115,20; delitem 7101,25; delitem 7162,25; You don't check/delete the same number of item : if (countitem(7115)<5)goto broke; delitem 7115,20;
  3. If your client crash at fixed hour, I guess it's because you have an empty announce automatic, something like (it's just an example !) : OnMinute30: announce $myannounce$;// $myannounce$ is empty --> crash It's a bit too long for me to search in your whole script sorry
  4. http://svn.rathena.org/svn/rathena/trunk/doc/script_commands.txt So replace lastTimeTalked by #lastTimeTalked
  5. setmapflag .woe_cas$[[email protected]], mf_nocommand; Replace by setmapflag .woe_cas$[[email protected]], mf_nocommand, 99;
  6. Her script (shorter script) works for rAthena, not for eAthena... Maybe it's because of that ? Well maybe it's not polite to answer for her... sorry
  7. Here for you prt_in,58,55,5 script Blacksmithnhgfds 63,{ //- Price per refine / per equipment -- Refine Armor / weapon lvl 1... lvl 4 / other ? setarray [email protected][0], 2000, 50, 200, 5000, 20000, 2000; //- ID material per equipment -- phracons ... setarray [email protected][0], 985, 1010, 1011, 984, 984, 985; //- Safe limit per equipment setarray [email protected][0], 4, 7, 6, 5, 4, 4; //-- ID Ticket 100% -- 0 = disabled set [email protected], 7608; //-- Lucky Charm -- complete it as your content //- ID Lucky Charm -- ID 0 or comment = disabled option setarray [email protected][0], 0, 0; //- + % Success rate of Lucky Charm setarray [email protected][0], 10, 15; //- mes "[blacksmith]"; mes "I'm the Blacksmith."; mes "I can refine all kinds of weapons, armor and equipment, so let me"; mes "know what you want me to refine."; next; setarray [email protected]$[1], "^0000ffHead^000000","^0000ffBody^000000","^FF0000Left hand^000000","^FF0000Right hand^000000","^0000ffRobe^000000","^0000ffShoes^000000","Accessory 1","Accessory 2","^0000ffHead 2^000000","^0000ffHead 3^000000"; for( set [email protected], 1; [email protected] <= getarraysize([email protected]$); set [email protected], [email protected]+1 ) { if( getequipisequiped([email protected]) ) set [email protected]$, [email protected]$ + [email protected]$[[email protected]] + "-" + "[" + getequipname([email protected]) + "]"; set [email protected]$, [email protected]$+ ":"; } set [email protected], select( [email protected]$ ); mes "[blacksmith]"; if( !getequipisequiped([email protected]) ) { mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion 6; close; } //Check if the item is refinable... if( !getequipisenableref([email protected]) ) { mes "I don't think I can"; mes "refine this item at all..."; close; } //Check if the item is identified... (Don't know why this is in here... but kept it anyway) if( !getequipisidentify([email protected]) ) { mes "You can't refine this"; mes "if you haven't appraised"; mes "it first. Make sure your"; mes "stuff is identified before"; mes "I can refine it."; close; } //Check to see if the items is already +10 if( getequiprefinerycnt([email protected]) >= 10 ) { mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } set [email protected], getequipid([email protected]); // save id of the item set [email protected], getequipweaponlv([email protected]); mes "Select an option."; //-- Safe : menu 0 -- one time : menu 1 -- leave : menu 2 [email protected] = select( (getequiprefinerycnt([email protected]) < [email protected][[email protected]]?"Refine to the safe limit, please.":""), "Refine one time.", "I've changed my mind..." ) - 1; //- if( [email protected] > 1 ) { next; mes "[blacksmith]"; mes "You said so... So be it."; close; } //-- Safe limit = 0 / one refine = 1 [email protected] = ( [email protected] ? 1 : [email protected][[email protected]] - getequiprefinerycnt([email protected]) ); //- set [email protected], getequiprefinerycnt([email protected]); //save refinery count mes "To refine this I need"; mes [email protected]+" ^FF0000"+getitemname( [email protected][[email protected]] )+"^000000"; mes "and a service fee of ^0000ff" +([email protected][[email protected]]*[email protected])+ " Zeny^000000."; mes "Do you really wish to continue?"; next; if( select( "Yes:No" ) == 2 ) { mes "[blacksmith]"; mes "Yeah..."; mes "There's no need to"; mes "rush. Take your time."; close; } if( getequippercentrefinery([email protected]) < 100 ) { mes "[blacksmith]"; mes "Oh no! If I continue to"; mes "refine this, there's a risk it could"; switch( [email protected][[email protected]] ) { case 985: mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000."; break; default: mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,"; mes "or any added special properties."; break; } next; mes "[blacksmith]"; if( [email protected] ) { mes "With one ^FF0000"+getitemname( [email protected] )+"^000000."; mes "I can refine all item"; mes "to success 100%. And I"; mes "^FF0000NEVER LOST ANY ITEM^000000."; } mes "So, Do you still want to refine?"; next; if( select("Yes:No") == 2 ) { mes "[blacksmith]"; mes "I completely agree..."; mes "I might be a great refiner, but sometimes even I make mistakes."; close; } } if( (countitem([email protected][[email protected]]) < [email protected]) || (Zeny < [email protected][[email protected]]*[email protected]) ) { mes "[blacksmith]"; mes "You don't seem to have"; mes "enough ^0000ffZeny^000000 or ^FF0000"+getitemname( [email protected][[email protected]] )+"^000000..."; mes "Go get some more. I'll be"; mes "here all day if you need me."; close; } //-- Menu Lucky charms if( [email protected][[email protected]] - getequiprefinerycnt([email protected]) <= 0 && [email protected][0] ) { [email protected]$ = "Don't use Lucky charms:"; for( [email protected] = 0; [email protected] < getarraysize( [email protected] ); [email protected]++ ) { if( [email protected][[email protected]] && countitem( [email protected][[email protected]] ) ) { [email protected]$ = [email protected]$ + "Use "+ getitemname( [email protected][[email protected]] ) +" ?:"; setarray [email protected][ getarraysize( [email protected] ) ], [email protected][[email protected]]; setarray [email protected][ getarraysize( [email protected] ) ], [email protected][[email protected]]; } } //-- Lucky charm choice (if exist) if( getarraysize( [email protected] ) > 0 ) { [email protected] = select( [email protected]$ ) - 1; //-- [email protected] == 0 --> continue if( [email protected] ) { [email protected] = [email protected][ [email protected] ]; mes "[blacksmith]"; mes "Using this, you would have +"+ [email protected] +"% more chance of sucess."; mes "Are you sure ?"; next; if ( select( "Yes:No" ) -1 ) close; delitem [email protected][ [email protected] ], 1; } } } //-- end Lucky set Zeny, Zeny - [email protected][[email protected]]*[email protected]; delitem [email protected][[email protected]], [email protected]; if(getequipisequiped([email protected]) == 0) { // hacker has removed the item (not changed, why?) mes "[blacksmith]"; mes "Look here... you don't have any Items on..."; close; } if(getequiprefinerycnt([email protected]) != [email protected] || getequipid([email protected]) != [email protected]) { // hacker has changed the item mes "[blacksmith]"; emotion e_an; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } //-- fail if( getequippercentrefinery([email protected]) + [email protected] <= rand(100) ) { if( [email protected] && countitem([email protected]) > 0 ) { set [email protected], getequiprefinerycnt([email protected]) - [email protected][[email protected]]; for( [email protected] = 1; [email protected] <= [email protected]; [email protected]++ ) downrefitem [email protected]; message strcharinfo(0),"Ticket removed from your inventory."; delitem [email protected],1; } else failedrefitem [email protected]; mes "[blacksmith]"; emotion (!rand(5))?e_cash:e_omg; if( !([email protected] = rand(2)) ) { mes "OH! MY GOD!"; mes "Damn it! Not again!"; mes "I'm terribly sorry, but you know practice does make perfect."; mes "Um, right? Heh heh..."; } else if([email protected] == 1) { mes "Nooooooo!"; mes "It broke!"; mes "I-I'm sorry!"; } else { mes "Crap!"; mes "It couldn't take"; mes "much more tempering!"; mes "Sorry about this..."; } close; } //-- Success mes "[blacksmith]"; for( [email protected] = 0; [email protected] < [email protected]; [email protected]++ ) successrefitem [email protected]; emotion e_heh; if( !([email protected] = rand(2)) ) { mes "[blacksmith]"; mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if( [email protected] == 1 ) { mes "[blacksmith]"; mes "Success...!"; mes "Yet again, my amazing"; mes "talent truly dazzles"; mes "and shines today."; } else { mes "[blacksmith]"; mes "Heh heh!"; mes "I'm all done."; mes "No doubt, my work is"; mes "to your satisfaction."; mes "Sheer, utter perfection~"; } close; } Contents : Configuration ticket //-- ID Ticket 100% -- 0 = disabled set [email protected], 7608; Configuration Lucky Charms : //-- Lucky Charm -- complete it as your content //- ID Lucky Charm -- ID 0 or comment = disabled option setarray [email protected][0], 0, 0; //- + % Success rate of Lucky Charm setarray [email protected][0], 10, 15; It works with rathena only. Maybe it's not full optimized... if you have comment post it.
  8. Just a comment function getPoints { set [email protected]_id,getarg(0); query_sql ("SELECT `credits` FROM `cp_votes` WHERE account_id="[email protected]_id+" LIMIT 1",[email protected]); } maybe your problem is because you don't return a value from your function ? function getPoints { set [email protected]_id,getarg(0); query_sql ("SELECT `credits` FROM `cp_votes` WHERE account_id="[email protected]_id+" LIMIT 1",[email protected]); return [email protected]; }
  9. You must edit .afk .afk = 60; // loop 60 times of 1 second == 1 minute
  10. In R_yes6: next; mes "[^0000FFClaudia^000000]"; mes "This is what you need"; mes "^ff0000 100 Little Evil Horn^000000."; mes "^ff0000 20 Dragon Scale^000000."; mes "^ff0000 20 Evil Horn^000000."; mes "^ff0000 20 Little Evil Wing^000000."; mes "^ff0000 20 Wings of Dragonfly^000000."; mes "And finally 10m Zennies"; next; if (countitem(1038)<100)goto broke; if (countitem(1036)<20)goto broke; if (Countitem(7064)<20)goto broke; if (Countitem(946)<50)goto broke; if (countitem(1039)<20)goto broke; if (zeny <10000000)goto broke; next; delitem 1038,100; delitem 1036,20; delitem 923,20; You have an error if (Countitem(946)<50)goto broke; delitem 923,20; You haven't the same ID in count and delitem
  11. quiz_02,337,69,5 script Mall Exit 837,{ warp "Crystilia",70,71; end; OnInit: waitingroom "Exit",0; end; } is better (I think) since this waitingroom is not dynamic
  12. Tell us what you think to be unique and we will do it for you !
  13. You're right ! I make the script with an old version (~r16820), the script didn't stop so I didn't see that. I forgot it works like that in new version. Well I have nothing to complain about your script this time Why make things easy ? XD
  14. Challenge accepted ! So as a challenger, I will comment your script XD Let's go : [email protected]$ = "lhz_dun04"; while ( [email protected]$ == "lhz_dun04" ) { I think this condition will ALWAYS be true lol. Well it works, why not if ( [email protected] == .afk ) { unitkill getcharid(3); end; } It means the loop will end here. If the player revive (resurrection skill or else), he should walk wherever he wants and afk without any risk ! Also we both do a mistake : if the player use teleport in the same map, the server will create multi instance/loop without any restriction. In the beginning of the loop, it's true that there are 4 loops before dying. After that, it's one minute (it's a bit screw up I know - and my explanation...). Edit : You're right >.< Here my script after correction - script lkjhgfd -1,{ OnPCLoadMapEvent: if( strcharinfo(3) == "lhz_dun04" && [email protected] ) { addtimer 30000, strnpcinfo(3)+"::On30secs"; @afkinbio4 = 1; getmapxy [email protected]$,[email protected],[email protected],0; @afkinbio4_x = [email protected]; @afkinbio4_y = [email protected]; } end; On30secs: // dispbottom ""+gettime(1); if( strcharinfo(3) != "lhz_dun04" ) { @afkinbio4 = 0; end; } @afkinbio4++; getmapxy [email protected]$,[email protected],[email protected],0; if( [email protected] != @afkinbio4_x || [email protected] != @afkinbio4_y ) @afkinbio4 = 0; else if( @afkinbio4 == 3 ) percentheal -100,-100; @afkinbio4_x = [email protected]; @afkinbio4_y = [email protected]; addtimer 30000, strnpcinfo(3)+"::On30secs"; end; } lhz_dun04 mapflag loadevent
  15. I change it. It works also for eathena or old version now. - script Healergfd -1,{ set [email protected],0; // Zeny required for heal set [email protected],0; // Also buff players? (1: yes / 0: no) set [email protected],30; // Heal delay, in seconds if ( select("Heal Please","Leave") -1 ) { warp "prontera",156,179; close; } callfunc "F_ClearGarbage",0; set [email protected], @HD - gettimetick(2); if ( [email protected] > 0 ) { message strcharinfo(0),"Sorry, you must wait "[email protected]+" seconds."; close; } if ([email protected]) { message strcharinfo(0),"Healing costs "[email protected]+" Zeny."; if (Zeny < [email protected]) end; if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close; set Zeny, [email protected]; } specialeffect2 313; percentheal 100,100; if ([email protected]) { specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } if ([email protected]) set @HD, gettimetick(2)[email protected]; close; } alberta,25,240,6 duplicate(Healergfd) Healer#albgfd 909
  16. - script lkjhgfd -1,{ OnPCLoadMapEvent: if( strcharinfo(3) == "lhz_dun04" ) { addtimer 30000, strnpcinfo(3)+"::On30secs"; @afkinbio4 = 0; } end; On30secs: if( strcharinfo(3) != "lhz_dun04" ) end; getmapxy [email protected]$,[email protected],[email protected],0; if( [email protected] != @xbio4 || [email protected] != @ybio4 ) @afkinbio4 = 0; else if( @afkinbio4 == 3 ) percentheal -100,-100; @xbio4 = [email protected]; @ybio4 = [email protected]; @afkinbio4++; addtimer 30000, strnpcinfo(3)+"::On30secs"; end; } lhz_dun04 mapflag loadevent
  17. Yeah sorry I made a mistake. The buff is already removed. Okay here a version with a message. - script Healergfd -1,{ set [email protected],0; // Zeny required for heal set [email protected],0; // Also buff players? (1: yes / 0: no) set [email protected],30; // Heal delay, in seconds if ( select("Heal Please","Leave") -1 ) { warp "prontera",156,179; close; } callfunc "F_ClearGarbage",0; set [email protected], @HD - gettimetick(2); if ( [email protected] > 0 ) { message strcharinfo(0),"Sorry, you must wait "[email protected]+" seconds."; close; } if ([email protected]) { message strcharinfo(0),"Healing costs "[email protected]+" Zeny."; if (Zeny < [email protected]) end; if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close; set Zeny, [email protected]; } specialeffect2 313; percentheal 100,100; if ([email protected]) { specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } if ([email protected]) set @HD, gettimetick(2)[email protected]; close; } alberta,25,240,6 duplicate(Healergfd) Healer#albgfd 909
  18. https://rathena.svn....pt_commands.txt (temporary) or (permanent) Example: splendide,237,143,5, script mlkjhg 456,{ monster "splendide",237,143,"--ja--",1002,1,"mlkjhg::OnMyMobDead"; end; OnMyMobDead: dispbottom "Quack quack goes a duck!"; end; } Edit : >.<
  19. Capuche

    GM invulnerable

    trunk/conf/groups.conf In your group, just add skill_unconditional in permissions. Then your GM can use skill even when skilloff. permissions: { skill_unconditional: true }
  20. Sure. - GM turn event on/off. It's not an auto event. - End of event when right porings turns to zero or after 5 mins. Then all players are warp in prontera.
  21. Just some comment if you don't mind ! - script GMCONTROL -1,{ OnInit: set [email protected],60; end; } //---------------END OF SETUP-------------------\\ //================ON WHISPER=========================\\ - script pcatch -1,{ OnWhisperGlobal: if(getgmlevel() >= [email protected]) { [email protected] is in another NPC so in pcatch NPC his value is null. close; break; break; is useless after close;. disablenpc "Poring Banker"; disablenpc "PoringCatcher"; You don't need disabled/enabled these NPC since they are not visible.
  22. Using - script Healergfd -1,{ set [email protected],0; // Zeny required for heal set [email protected],0; // Also buff players? (1: yes / 0: no) set [email protected],30; // Heal delay, in seconds if ( select("Heal Please","Leave") -1 ) { warp "prontera",156,179; close; } callfunc "F_ClearGarbage",0; if (@HD > gettimetick(2)) end; if ([email protected]) { message strcharinfo(0),"Healing costs "[email protected]+" Zeny."; if (Zeny < [email protected]) end; if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close; set Zeny, [email protected]; } specialeffect2 313; percentheal 100,100; if ([email protected]) { specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } if ([email protected]) set @HD, gettimetick(2)[email protected]; close; } alberta,25,240,6 duplicate(Healergfd) Healer#albgfd 909 Heal delay : 30 seconds. Option warp.
  23. Example : 1550,Book,Book,4,30000,,600,85,,1,3,0x00200000,7,2,2,2,14,1,15,{},{},{} would be for Taekwon only. Taekwon (2^21): 0x00200000 StarGladiator (2^22): 0x00400000 -------------------------------------------------- 0x00600000 1550,Book,Book,4,30000,,600,85,,1,3,0x00600000,7,2,2,2,14,1,15,{},{},{} would be for Taekwon AND StarGladiator only. See http://svn.rathena.org/svn/rathena/trunk/doc/item_db.txt for more bitmasks.
  24. No this must be if(@consecutive_hour != 24 && @consecutive_hour%6 ) { IF statement will work if these conditions are true or positive. That means : @consecutive_hour should not be equal to 24 and @consecutive_hour%6 must be positive. So if @consecutive hours is divisible by 6 the remainder of the division is null so the condition is not satisfied and the player won't gain 10 CashPoints. It's like you ask isn't it ? >.<
×
×
  • Create New...

Important Information

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