Jump to content

Alayne

Members
  • Content Count

    345
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by Alayne

  1. I think this should go in "script request" section, that's not a support, that's a deep script rewriting
  2. Alayne

    Castle WOE 2.0

    It...Just can't work...That's not possible. You use a variable that is never initialised...I really don't get what you're trying to do. You wanna display a message of breaking, but there's no script section about the breaking part.
  3. You don't use the original map? Cause the npc and spawn are placed specially for the original one...
  4. Actually I think he want a complete refine script, with a selection of the piece to update if you're equipped with something refinable.
  5. Okay I'll give it a debug session tonight. And I'll say you as soon as it'll work. Okay! Here you are (tested entirely and in every situation creation, death, re-enter...) // -- Instance Devil Square Script ( Tyirial Script Concept )// -- Rescripted by Dang Tai Phong, hope you guys like it ... version : 1.0// -- For more information or new idea, please contact me via yahoo : [email protected],276,338,5 script Devil Square Guardian 852,{ // -- Name set .@ds_name$,"Devil Square"; if( BaseLevel < 90 ) { mes "[ Devil Square Guardian ]"; mes "Only users between Levels ^ff000090 ~ 99^000000 can enter this Dungeon."; close; } mes "[ Devil Square Guardian ]"; mes "Welcome to the entrance door to ^FF0000" + .@ds_name$ + "^000000"; next; switch( select("Reserve the " + .@ds_name$ + " and enter:Enter the Dungeon:Leave") ) { case 1: set .@party_id, getcharid(1); // ----------------------------- if( .@party_id == 0 ) { mes "[ Devil Square Guardian ]"; mes "You need to be in a group."; close; } if( getpartyleader(.@party_id,2) != getcharid(0) ) { mes "[ Devil Square Guardian ]"; mes "Only the party leader can register for " + .@ds_name$ + "."; close; } if( DSquare_Timer >= gettimetick(2) ) { mes "[ Devil Square Guardian ]"; mes "You cannot enter " + .@ds_name$ + " again until ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000"; //close; } if( Zeny < 100000 ) { mes "[ Devil Square Guardian ]"; mes "...I'm sorry, not enough zeny."; close; } set .ds_instance, instance_create(.@ds_name$, .@party_id); if( .ds_instance == -1 ) { mes "[ Devil Square Guardian ]"; mes "Your group is already registered on a Memorial Dungeon."; close; } else if( .ds_instance < 0 ) { mes "[ Devil Square Guardian ]"; mes "Instance creation failed: " + .ds_instance; mes "Please report this to a Game Master."; close; } if( instance_attachmap( "2@ds",.ds_instance ) == "" ){ npctalk "Devil Square reservation failed."; mes "- ^FF0000Reservation Failed!^000000"; instance_destroy( .ds_instance ); close; } instance_attach( .ds_instance ); set 'dsparty_id, getcharid(1); set 'dsnext_open, gettimetick(2) + 7200; // Next allowed open time for players deletearray 'dsMembers[0],127; set DSquare_Timer, 'dsnext_open; set 'dsMembers[0], getcharid(0); // Stores First Char ID set 'dsNext_i, 1; set Zeny, Zeny - 100000; instance_init( .ds_instance ); //warp warp instance_mapname("2@ds"),245,245; close; case 2: if( has_instance("2@ds") == "" ) { mes "[ Devil Square Guardian ]"; mes "Instance Dungeon " + .@ds_name$ + " does not exist."; mes "You are not registered for DS."; close; } instance_attach(.ds_instance); for( set .@i, 0; .@i < 'dsNext_i; set .@i, .@i + 1 ) { if( getcharid(0) == 'dsMembers[.@i] ) break; } if( .@i == 'dsNext_i ) { if( DSquare_Timer >= gettimetick(2) ) { // User joined the party but has Devil Square Delay mes "[ Devil Square Guardian ]"; mes "You cannot enter " + .@ds_name$ + " again until ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000"; close; } else if( 'dsNext_i == 127 ) { // This party has invited lots of users to join Devil Square mes "[ Devil Square Guardian ]"; mes "No more users can enter " + .@ds_name$ + " registered with this party."; close; } else { // Add this new user to the member list set DSquare_Timer, 'next_open; set 'dsMembers['dsNext_i], getcharid(0); set 'dsNext_i, 'dsNext_i + 1; } } warp instance_mapname("2@ds"),245,245; end; case 3: close; }}function script Time2Str { set .@Time_Left, getarg(0) - gettimetick(2); set .@Days, .@Time_Left / 86400; set .@Time_Left, .@Time_Left - (.@Days * 86400); set .@Hours, .@Time_Left / 3600; set .@Time_Left, .@Time_Left - (.@Hours * 3600); set .@Minutes, .@Time_Left / 60; set .@Time_Left, .@Time_Left - (.@Minutes * 60); set .@Time$, ""; if( .@Days > 1 ) set .@Time$, .@Time$ + .@Days + " days, "; else if( .@Days > 0 ) set .@Time$, .@Time$ + .@Days + " day, "; if( .@Hours > 1 ) set .@Time$, .@Time$ + .@Hours + " hours, "; else if( .@Hours > 0 ) set .@Time$, .@Time$ + .@Hours + " hour, "; if( .@Minutes > 1 ) set .@Time$, .@Time$ + .@Minutes + " minutes, "; else if( .@Minutes > 0 ) set .@Time$, .@Time$ + .@Minutes + " minute, "; if( .@Time_Left > 1 || .@Time_Left == 0 ) set .@Time$, .@Time$ + .@Time_Left + " seconds."; else if( .@Time_Left == 1 ) set .@Time$, .@Time$ + .@Time_Left + " second."; return .@Time$;}2@ds,44,155,0 script HiddenNpc::HiddenNpc -1,{ end;OnDisable: killmonster instance_mapname("2@ds"),instance_npcname("HiddenNpc")+"::OnDevilDead"; end;OnInstanceInit: areamonster "2@ds",183,182,246,244,"[DS] ALICEL",1735,25,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "2@ds",183,182,246,244,"[DS] ALIOT",1736,15,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "2@ds",183,182,246,244,"[DS] ARCHDAM",1668,15,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "2@ds",183,182,246,244,"[DS] CONSTANT",1745,20,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "2@ds",183,182,246,244,"[DS] DARK PRIEST",1198,4,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "2@ds",183,182,246,244,"[DS] ARCHANGELING",1388,1,instance_npcname("HiddenNpc")+"::OnDevilDead"; end;OnDevilDead: set .@mobnumber,80; set .@mob_cnumber,mobcount("2@ds",instance_npcname("HiddenNpc")+"::OnDevilDead"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 55 ) instance_announce 0, "Devil Square : 25 mobs to enter the 2nd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 75 ) instance_announce 0, "Devil Square : 5 mobs to enter 2nd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 80 ) { instance_announce 0, "Devil Square : will enter to 2nd round!!!",bc_map,"0xffff00"; goto OnDevilRound_2; } end;OnDevilRound_2: areamonster "2@ds",183,182,246,244,"[DS] DROSERA",1781,20,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "2@ds",183,182,246,244,"[DS] NECROMANCER",1870,30,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "2@ds",183,182,246,244,"[DS] RETRIBUTION",1702,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "2@ds",183,182,246,244,"[DS] OBSERVATION",1700,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "2@ds",183,182,246,244,"[DS] LADY SOLACE",1703,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "2@ds",183,182,246,244,"[DS] SHELTER",1701,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; end;OnDevilDead_2: set .@mobnumber,70; set .@mob_cnumber,mobcount("2@ds",instance_npcname("HiddenNpc")+"::OnDevilDead_2"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 45 ) instance_announce 0, "Devil Square : 25 mobs to enter the 3rd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 65 ) instance_announce 0, "Devil Square : 5 mobs to enter the 3rd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 70 ) { instance_announce 0, "Devil Square : will enter to 3rd round!!!",bc_map,"0xffff00"; goto OnDevilRound_3; } end;OnDevilRound_3: areamonster "2@ds",183,182,246,244,"[DS] DIMIK",1673,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] DIMIK",1672,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] DIMIK",1671,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] DIMIK",1670,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] HIGH PRIEST MAGARETA",1637,6,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] MORROC SHADOW",1921,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] MORROC SHADOW",1918,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] MORROC SHADOW",1920,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "2@ds",183,182,246,244,"[DS] MORROC SHADOW",1919,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; end;OnDevilDead_3: set .@mobnumber,58; set .@mob_cnumber,mobcount("2@ds",instance_npcname("HiddenNpc")+"::OnDevilDead_3"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 33 ) instance_announce 0, "Devil Square : 25 mobs to enter the 4th round..",bc_map,"0xffff00"; if( .@mob_dead_number == 53 ) instance_announce 0, "Devil Square : 5 mobs to enter the 4th round..",bc_map,"0xffff00"; if( .@mob_dead_number == 58 ) { instance_announce 0, "Devil Square : will enter to 4th round!!!!!!",bc_map,"0xffff00"; donpcevent instance_npcname("dswarp-12")+"::OnEnable"; goto OnDevilRound_4; } end; OnDevilRound_4: areamonster "2@ds",149,148,149,148,"[DS] Entweihen Crothen",1957,1,instance_npcname("HiddenNpc")+"::OnDevilDead_4"; areamonster "2@ds",135,135,165,165,"[DS] Thorny Skeleton",1958,11,instance_npcname("HiddenNpc")+"::OnDevilDead_4"; end; OnDevilDead_4: set .@mobnumber,12; set .@mob_cnumber,mobcount("2@ds",instance_npcname("HiddenNpc")+"::OnDevilDead_4"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 12 ) { instance_announce 0, "Devil Square : CONGRATULATION - 10 Treasure Boxs will be yours now",bc_map,"0xffff00"; donpcevent instance_npcname("dswarp-12")+"::OnInstanceInit"; donpcevent instance_npcname("dswarp-11")+"::OnEnable"; goto OnDevilRound_5; // Treasure Spawn Round } end;OnDevilRound_5: monster "2@ds",231,250,"Treasure Box",1324,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",234,247,"Treasure Box",1328,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",237,244,"Treasure Box",1332,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",240,241,"Treasure Box",1336,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",243,238,"Treasure Box",1340,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",246,235,"Treasure Box",1344,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",249,232,"Treasure Box",1348,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",252,229,"Treasure Box",1352,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",249,241,"Treasure Box",1356,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "2@ds",240,249,"Treasure Box",1360,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; end;OnDevilDead_5: set .@mobnumber,10; set .@mob_cnumber,mobcount("2@ds",instance_npcname("HiddenNpc")+"::OnDevilDead_5"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; instance_announce 0, "Devil Square : "+ strcharinfo(0) +" has opened the treasure box at Devil Square",bc_map,"0xffff00"; if( .@mob_dead_number == 10 ) { donpcevent instance_npcname("HiddenNpc")+"::OnDestroyInstance"; getpartymember getcharid(1),2; copyarray .@partymemberaid, $@partymemberaid, $@partymembercount; detachrid; for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) { if (attachrid(.@partymemberaid[.@i])) callfunc("AddPoints", getcharid(3), 5); detachrid; } } end; OnDestroyInstance: initnpctimer; end;OnTimer500: instance_announce 0, "Devil Square will be closed in few seconds..", bc_map, 0xCCFF00; end;OnTimer19000: instance_warpall "prontera", 100,100; end; OnTimer22500: stopnpctimer; instance_destroy(instance_id()); end; }// -- Warp2@ds,168,168,0 script #dswarp-11::dswarp-11 45,0,0,{OnInstanceInit: disablenpc instance_npcname("dswarp-11"); end;OnEnable: enablenpc instance_npcname("dswarp-11"); end;OnTouch: warp "2@ds",189,189; end;}2@ds,184,184,0 script #dswarp-12::dswarp-12 45,0,0,{OnInstanceInit: disablenpc instance_npcname("dswarp-12"); end;OnEnable: enablenpc instance_npcname("dswarp-12"); end;OnTouch: mes "[ Devil Square Guardian ]"; mes "Are you ready..?"; if( select("Ready, GO!!!", "Nope") != 1 ) close; close2; warp "2@ds",163,163; end;}// -- Mapflags2@ds mapflag nowarp2@ds mapflag nowarpto2@ds mapflag noteleport2@ds mapflag nosave SavePoint2@ds mapflag nomemo2@ds mapflag nobranch2@ds mapflag nopenalty
  6. Alayne

    Castle WOE 2.0

    Send me you OnNPCKillevent, it will be easier and I can complete it. Or check it at least.
  7. Alayne

    Castle WOE 2.0

    well at one moment or another, .@breaker$ should be filled with strcharinfo(0). Fill it when OnNPCKillEvent is called.
  8. Alayne

    Castle WOE 2.0

    Ok but without the script, I can't tell you why the .@breaker$ variable isn't filled ^^'
  9. Alayne

    Castle WOE 2.0

    Wow...Sorry don't understand what you want to say, except that you don't created the script initially ^^'
  10. Alayne

    Castle WOE 2.0

    Actually I don't see why you've added these lines. You don't do anything with the results you obtained. And to be exact, the id of arug castle is "1", not 0.
  11. Alayne

    Castle WOE 2.0

    Your use of getcastledata is wrong. Here's the doc comment: getcastledata("<map name>",<type of data>) I don't know what you wanna check, but according to your script, replace getcastledata "arug_cas03",0,"::OnRecvCastleAr03"; by getcastledata "arug_cas03",0;
  12. Your problem is here: if(select("Emergency Heal Perm:Aura Blade Cut:Tornado Balkan:Chevalier Special") == 1) { delitem 7622,1; // New_Style_Coupon setlook 1,24; }else if{ delitem 7622,1; // New_Style_Coupon setlook 1,25; }else if{ delitem 7622,1; // New_Style_Coupon setlook 1,28; }else{ delitem 7622,1; // New_Style_Coupon setlook 1,29; } }else{ if(select("Assumptio Perm:Soul Changer Cut:Dry Season Four:Volume Magic Special") == 1) { delitem 7622,1; // New_Style_Coupon setlook 1,24; }else if{ delitem 7622,1; // New_Style_Coupon setlook 1,25; }else if{ delitem 7622,1; // New_Style_Coupon setlook 1,28; }else{ delitem 7622,1; // New_Style_Coupon setlook 1,29; } You can't put "else if" alone, you need to add a condition, just as you did on the first check. If you want to add a script portion per menu option, better use "switch" instead of "if / else if / else".
  13. That's a bit hard to say without knowing where it blocks...Do you have an error in the map server?
  14. Well you should have an error somewhere in the map server. Actually it's a bit hard to say where the problem is.
  15. Sorry mistyped the declaration. That's not "bonus4" but "bonus5"
  16. Sure. Use atcommand "@skpoint 50"; Or whatever value you wanna give.
  17. Your welcome. Tag the topic as answered ^^
  18. checkriding doesn't exists on hercule. To check if the user use a mado or another mount (peco, gryphon or dragon), you should use checkmount() and setmount.
  19. Yep. Therefor, you'll simply check if the player got a falcon and know the skill.
  20. Oh yeah, forgot about it yesterday. Give me a moment and I'll send you the script. prontera,19,22,5 script Devil Square Guardian 852,{ close; OnPCLoginEvent: set .@npcname$,"[JobChanger]"; if (BaseLevel == 1 && JobLevel == 1 && Class == Job_Novice && JOBCHANGEOFFERED == 0) { mes .@npcname$; mes "Hello to you " + strcharinfo(0); mes "I can change your job for any class you want."; mes "Interested?"; if(select("Yes","No") == 1) { next; mes .@npcname$; mes "Perfect, choose a job then."; switch(select("Lord Knight","Paladin","High Wizard","Professor","Champion","High Priest","Sniper","Clown/Gipsy","Whitesmith","Creator","Assassin Cross","Stalker")) { case 1: jobchange Job_Lord_Knight; break; case 2: jobchange Job_Paladin; break; case 3: jobchange Job_High_Wizard; break; case 4: jobchange Job_Professor; break; case 5: jobchange Job_Champion; break; case 6: jobchange Job_High_Priest; break; case 7: jobchange Job_Sniper; break; case 8: if(Sex == 1) { //clown jobchange Job_Clown; } else { //gipsy jobchange Job_Gipsy; } break; case 9: jobchange Job_Whitesmith; break; case 10: jobchange Job_Creator; break; case 11: jobchange Job_Assassin_Cross; break; case 12: jobchange Job_Stalker; break; } atcommand("@blvl " + (.baseLevel - 1)); atcommand("@jlvl " + (.jobLevel - 1)); set JOBCHANGEOFFERED, 1; } else { mes "Your choice."; set JOBCHANGEOFFERED, 1; } } close; OnInit: set .baseLevel, 99; set .jobLevel, 70; end;} Here you are. Offers one time a player Novice 1/1 on login to be changed to a trans class lvl 99/70. Be careful, it won't manage the skill points lots from non using the regular. A player will get 70 points, not 50 + 70 => 120 from a normal exp path.
  21. Hum don't really know...Do you got an error on your map server? I don't see something which should block...Try commenting the bonus 1 by one to see which one is blocking if there's no error.
  22. So I said, here's your problem if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { setfalcon; close;} You check if the player is an archer to get a falcon. If you want anybody to be able to get a falcon, replace the two first checks with the script I gave you on my previous answer .
  23. Well yes, but I need to know the condition you wanna check? If it's just a check for skill, this should be enough: if(checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { setfalcon; close;}else{ mes "[Rental NPC]"; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close;} If there's more to check, you'll have to tell me ^^
  24. There's no error on the script. Try with that (didn't actually read the entire script, but I think your test on price, buff and delay aren't correct): prontera,19,22,5 script Devil Square Guardian 852,{ .@price = 0; // Zeny required for heal .@Buffs = 1; // Also buff players? (1: yes / 0: no) .@Delay = 2; // Heal delay, in seconds if (@HD > gettimetick(2)) end; if (.@price != 0) { message strcharinfo(0),"Healing costs "+.@price+" Zeny."; if (Zeny < .@price) end; if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close; Zeny -= .@price; } specialeffect2 EF_HEAL2; percentheal 100,100; if (.@Buffs == 1) { if(BaseLevel == 150) { goto Buffer; } else { goto Buffs; } } close; Buffer: specialeffect2 EF_INCAGILITY; sc_start SC_INC_AGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; if (.@Delay >= 1) { @HD = gettimetick(2)+.@Delay; } close;Buff: skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5; skilleffect 34,0; sc_start SC_BLESSING,300000,10; skilleffect 29,0; sc_start SC_INCREASEAGI,300000,10; skilleffect 112,0; sc_start SC_WEAPONPERFECTION,360000,10; skilleffect 380,0; sc_start SC_TRUESIGHT,360000,5; skilleffect 464,0; sc_start SC_KAUPE,360000,3; skilleffect 33,0; sc_start SC_ANGELUS,360000,10; skilleffect 463,0; sc_start SC_KAAHI,360000,7; skilleffect 383,0; sc_start SC_WINDWALK,360000,5; skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5; skilleffect 67,0; sc_start SC_SUFFRAGIUM,360000,3; if (.@Delay >= 1) { @HD = gettimetick(2)+.@Delay; } close;}
×
×
  • Create New...

Important Information

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