Jump to content

Erebos

Members
  • Posts

    65
  • Joined

  • Last visited

Everything posted by Erebos

  1. My server crashes when using Sorcerer skill: Elemental Control, this only happens when using the skill at level 1 and 2. No errors or warning in the console, just an server crash signal without any information.
  2. So clean! with some modifications i made it work at any coordinates, thanks!
  3. I'm trying to do a npc that pushes away the player, whatever the direction the player comes from. I know it can work if i put the specific coordinates but i want to replicate it so i need something that will work in any map. I tried this for start. prontera,50,50,0 script push 99,3,3,{ OnTouch: getmapxy(@mapname$, @mapx, @mapy, BL_PC); getmapxy(@mapnamee$, @x, @y, BL_NPC); if (@mapx = @x - 3 & @mapy = @y | @mapy = @y + 1 | @mapy = @y +2 | @mapy = @y - 1 | @mapy = @y -2 ) { pushpc DIR_WEST, 2; end; } if (@mapx = @x - 2 & @mapy = @y - 3 | @mapx = @x - 1 & @mapy = @y - 3 | @mapx = @x & @mapy = @y - 3 | @mapx = @x + 1 & @mapy = @y - 3 | @mapx = @x + 2 & @mapy = @y - 3) { pushpc DIR_SOUTH, 2; end; } } This is supposed to push west if the player approach the npc from the left and push south if the player approach from below. But only the West push works and the South push is pushing West. Please correct me what im doing wrong, thanks.
  4. As we all know, a player needs high Attack Speed to spam a skill with no After-Cast Delay. For example; a Creator with Poem of Bragi can't spam Acid demonstration effectively without high ASPD. This is called animation delay or amotion delay (as far as i know). I'm having a bug that ignores this ASPD requirement and i can spam very very fast even with less than 100 ASPD. Even when the skills does have After-Cast Delay or Cool Down, i can spam 2 or 3 skills before the delay or CD begins! With an Auto Hotkey i can spam more than 20 skills per sec. I have tried adding Animation delay on "CastEnd" in skill.conf but it doesnt fix the problem itself, i still can cast more than 1 skill before the After-skill delay or cooldown begins. I hope anyone can help me. Thanks in advance.
  5. Thanks everyone, although i would love to understand Annie's script(i'll analyze it later), pajodex is more noob friendly xD.
  6. Thanks for this magic, but how to have differents effect depending on the selected item? if i simply add countitem if they have 2 items the condition will pass.
  7. Thanks! it worked but the arguments replace each other generating a 1 option menu, what i want is if the players have 4 items, they get a 4 option menu, if they have 2 items, they get 2 options, corresponding to the item they have. Tried this, but i get errors: switch(select((countitem(34996) >= 1)?"Insertar Ticket Clase C" , (countitem(34995) >= 1)?"Insertar Ticket Clase B" , (countitem(34994) >= 1)?"Insertar Ticket Clase A" , (countitem(34993) >= 1)?"Insertar Ticket Clase S" , "Cancelar")) { case 1: mes "ticket 1"; close; end; case 2: mes "ticket 2"; close; end; case 3: mes "ticket 3"; close; end; case 4: mes "ticket 4"; close; end; case 5: close; end; }
  8. Two questions about conditions: Conditions for labels: Its possible to add a condition to pass to a Label? like, a condition of groupid 1 for OnPCDieEvent to trigger in the player. (I know i can do it inside the label, but i cant make it work otherwise). Condition inside a menu: IDK how o do it, tried this(i apologize if its stupid xD, i am very new in scripting) : switch(select("+((countitem(34996) >= 1)"wow you have item 34996")+":"some text")) { } its supposed to print case 1 only if the player has the item, otherwise it should only print case 2.
  9. Guys how can i change the range required to use Counter Slash? So, when Weapon Blocking is triggered the attacker needs to be on the next cell(not even counting diagonal cells, the area is a cross) to allow the GX cast Counter Slash. This makes the skill useless against almost every job, (almost every mele skill, even the basic attacks, have at least 2 cells of range). So i want to make it have at least 2 cells of range to cast Counter Slash when Weapon Blocking is triggered. Adding Range or Effect Area in skill_db.txt doesn't work. Thanks in advance.
  10. 1st image: Whenever i zoom in, the sprites get distorted like in the first image. With a different .exe didnt happen to my friend, but it always happened to me. 2nd image: The lower hats are overlapping the upper hats, this ruins the wigs that are lower hats and other combined hats. Thanks in advance.
  11. Yes i'm doing some research about that xD, some other instances script are crashing the server too.
  12. In this Temple of Demon God script when i'm going to start the instance it crashes the map-server, no information in the console, just a "Server received crash signal! attempting to save all online characters". //===== Alayne Scripts ======================================= //= Temple of Demon God Instance //===== By: ================================================== //= Alayne //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena SVN //= hercules SVN //===== Description: ========================================= //= The official instance Temple of Demon God transcription //===== Todo Remaining: ====================================== // //===== Additional Comments: ================================= // // //============================================================ moro_vol,108,88,5 script Commander Hiva Agip::alatdgcha 4_M_REDSWORD,{ set .@npcname$, "[Commander Hiva Agip]"; cutin "ep13_captin_edq", 2; mes .@npcname$; if(checkquest(.questId) == -1) { mes "Hey! You! Come here."; mes "I need you help."; mes "Morocc is regaining his power! We absolutely need to defy him, and defeat him before he raised again."; mes "But I'm affraid we're not strong enough to fight him..."; mes "Can you help us?"; if(select("Yes","No") == 1) { next; mes .@npcname$; mes "Good! I'm couting on you!"; mes "I'll pray for your victory!"; setquest .questId; } } else if(checkquest(.questId, HUNTING) < 2) { //uncomplete quest mes "You didn't fullfill the quest yet, do you?"; } else if(checkquest(.questId, HUNTING) == 2) { //complete quest mes "*Whistle* Good work!"; mes "How's the Temple of Demon God? Still the same?"; getitem 22537,1; //getitem reward completequest .questId; erasequest .questId; } else { mes "Now that we've taken care of the main body, we can take things slow."; mes "Why don't you go rest for now? Leave the rest to us."; } cutin "", 255; close; OnInit: set .questId, 7593; end; } moro_vol,110,90,3 script Abidal::alatdga 4_M_KNIGHT_GOLD,{ set .@npcname$, "[Abidal]"; mes .@npcname$; if(checkquest(.questId) == -1) { mes "Hey! I've heard the Commander gave you a quest."; mes "I have also something to ask you."; mes "Two monsters protect Morocc. Brinaranea and Muspelskoll."; mes "If you defeat them, it'll weakened this Demon..."; mes "Can you handle that?"; if(select("Yes","No") == 1) { next; mes .@npcname$; mes "Good! I'm couting on you!"; mes "I'll pray for your victory!"; setquest .questId; } } else if(checkquest(.questId, HUNTING) < 2) { //uncomplete quest mes "You didn't fullfill the quest yet, do you?"; } else if(checkquest(.questId, HUNTING) == 2) { //complete quest" mes "You did it! I knew you would!"; mes "Congratulations!"; mes "But I'm affraid this is not over yet."; mes "I have this nagging sense of misgiving."; mes "I'm sorry. Maybe I'm thinking irrationally."; next; mes .@npcname$; mes "Take this as a reward, and a thanks from me."; //getitem completequest .questId; erasequest .questId; } else { mes "Take some rest now."; } close; OnInit: set .questId, 7594; end; } moro_cav,43,73,3 script Yggdrasil Lookalike::alatdgyl HIDDEN_NPC,{ OnStart: set .@party_id, getcharid(1); set .@tdg_leader, ( getcharid(0) == getpartyleader(.@party_id,2) ); set .@has_instance, TDG_INSTANCE_ID > 0; set .@instance_delay, ( instance_delay_templedg - gettimetick(2) ); set .@npcname$, "[Yggdrasil Lookalike]"; mes .@npcname$; mes "You touched the tree and felt a strange flow of mana."; mes "Perhaps the flow of mana will guide to the depth of the temple."; if( ep14_3_morse == 0 ) next; if( .@instance_delay > 0 ) { mes "You have to wait : ^FF0000"+.@instance_delay+" Seconds.^000000"; close; } switch( select( (( .@party_id && .@tdg_leader && !.@has_instance )?"Create " + .instance_name$:""), (( .@party_id && .@has_instance )?"Enter " + .instance_name$:""), (( .@party_id && .@tdg_leader && .@has_instance )?"Destroy " + .instance_name$:""), "Nevermind." )){ case 1: getpartymember .@party_id,2; if( .min_party_member >= 1 ){ set .@origin, getcharid(3); set .@gettimetick, gettimetick(2); for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 ) if( attachrid( $@partymemberaid[.@i] ) ){ set .@member_count, .@member_count + 1; if( BaseLevel < .base_level[0] || BaseLevel > .base_level[1] ) set .@fail, .@fail|1; if( Zeny < .instance_zeny ) set .@fail, .@fail|2; if( instance_delay_templedg > .@gettimetick ) set .@fail, .@fail|4; if( .@fail ){ set .@name$, strcharinfo(0); break; } } attachrid( .@origin ); } //clean any previously remaining instance if(TDG_INSTANCE_ID > 0) { getpartymember getcharid(1),2; for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 ) if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){ set TDG_INSTANCE_ID, -1; } instance_destroy instance_id(); } if( .@name$ != "" && .@fail ){ mes "^FF0000[ Failed ]^000000"; mes "^0055FF"+.@name$+"^000000, You cannot join right now."; mes " "; mes "^FF0000[ Reason: ]^000000"; if( .@fail & 1 ) mes "^777777You must be Level: "+.base_level[0]+" - "+.base_level[1]+"^000000"; if( .@fail & 2 ) mes "^777777You need "+ .instance_zeny +" Zeny^000000"; if( .@fail & 4 ) mes "^777777You still have cooldown.^000000"; break; } getpartymember getcharid(1),0; if (instance_check_party(.@party_id, .min_party_member, .base_level[0], .base_level[1]) == 0) { mes "^0055FF[ "+.instance_name$+" ]^000000"; mes "Make or join a party with at least "+.min_party_member+" member and try again, with level between " +.base_level[0] + " and " + .base_level[1] + "."; } else{ set .@instance, instance_create( .instance_name$ ); if( .@instance < 0 ) { npctalk .instance_name$ + " reservation failed."; mes "^0000FF"+ .instance_name$ +" ^000000 - Reservation Failed!"; close; } mes "^0055FF[ "+.instance_name$+" ]^000000"; mes "^0000FF"+.instance_name$+" ^000000 - Reserved"; set .@gettimetick, gettimetick(2); getpartymember .@party_id,2; for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 ) if( attachrid( $@partymemberaid[.@i] ) ) set TDG_INSTANCE_ID, .@instance; attachrid( .@origin ); npctalk .instance_name$ + " has been generated for Party - " + getpartyname( .@party_id ); //disable unused npcs for now disablenpc instance_npcname( "tdgWarp#1", instance_id() ); disablenpc instance_npcname( "tdgWarp#2", instance_id() ); disablenpc instance_npcname( "tdgWarp#3", instance_id() ); disablenpc instance_npcname( "tdgWarp#4", instance_id() ); disablenpc instance_npcname( "tdgWarp#5", instance_id() ); } case 2: if( TDG_INSTANCE_ID <= 0 ){ mes .instance_name$ + " doesn't exist for Party - "+getpartyname( .@party_id ); } else{ getmapxy(.@map$, .@x, .@y, UNITTYPE_PC); //save .@map$, .@x, .@y; set instance_delay_templedg, ( .@gettimetick + ( .instance_delay )); switch(instance_enter(.instance_name$)) { default: mes "An unknown error has occurred."; close; case 2: mes "The memorial dungeon " + .instance_name$ + " does not exist."; mes "The party leader did not generate the dungeon yet."; close; case 1: mes "You can enter the dungeon after making the party."; close; case 0: mapannounce .@map$, strcharinfo(0)+" from party, " +getpartyname( .@party_id )+", tdg entering the dungeon, "+.instance_name$+".",bc_map,"0x00ff99",FW_NORMAL,12; close; } } break; case 3: mes .instance_name$ + " Destroyed."; getpartymember getcharid(1),2; for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 ) if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){ set TDG_INSTANCE_ID, -1; } instance_destroy instance_id(); break; default: break; } close; OnPCLoginEvent: OnPCLogoutEvent: set TDG_INSTANCE_ID, -1; end; OnInit: setarray .base_level[0],145, 175; setarray .map$[0],"1@eom"; set .map_size, getarraysize( .map$ ); set .min_party_member, 1; set .instance_delay, 7200; set $tdg_timer_delay, 3600; //1 hour to clean the instance set .instance_name$, "Temple of Demon God"; end; } 1@eom,101,107,4 script temple_demon_god HIDDEN_WARP_NPC,2,2,{ function summon_normal; function summon_guardian; end; OnInstanceInit: set .@map$, strnpcinfo(4); set 'instance_tdg_level, 0; set .max_tdg_level, 6; set .moroccId, -1; instance_announce instance_id(), "[Temple of Demon God] Eliminate the Demon God's Apostles, Ahat and Shnaim.",bc_map,0x00ff99; sleep 1500; instance_announce instance_id(), "[Temple of Demon God] Then collect their Souls. Those are the key to open the Temple.",bc_map,0x00ff99; set 'ahatSoul, 6713; set 'shnaimSoul, 6714; set 'tdgMercenaryOn, 0; set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); summon_normal( .@map$,.@npc_name$, 1 ); set .timerCount, 0; initnpctimer; end; function summon_normal { set .@map$, getarg(0); set .@npcname$, getarg(1); set .@increaseFloor, getarg(2); if(.@increaseFloor == 1) { 'instance_tdg_level++; } switch( 'instance_tdg_level ){ case 1: //ahat and shnaim setarray .@monster,3041,3039,3040; setarray .@amount,1,1,1; setarray .@coordinate,89,13,111,49; setarray .@label$, "OnAhatDied","OnShnaimDied",0; break; case 2: //dolomedes setarray .@monster,3088; setarray .@amount,5; setarray .@coordinate,54,97,33,138; break; case 3: //kasa setarray .@monster,3089; setarray .@amount,5; setarray .@coordinate,153,91,173,140; break; case 4: //two satan morocc setarray .@monster,3098,3099; setarray .@amount,1,1; setarray .@coordinate,90,208,116,176; break; case 6: //random pop salamander or dolomedes if(rand(0,1) == 1) { setarray .@monster,3088; } else { setarray .@monster,3090; } setarray .@amount,5; setarray .@coordinate,90,208,116,176; break; } set .@monster_size, getarraysize( .@monster ); for( set .@i, 0; .@i < .@monster_size; set .@i,.@i+1 ){ set .@target_amount, ( .@amount[.@i] ); set .@size, 0; if(getarraysize(.@label$) == 0) { set .@clabel$, .@npcname$ + "::OnNormalDied"; } else { set .@clabel$, .@npcname$ + "::" + .@label$[.@i]; } areamonster .@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@clabel$,.@size; } return; } function summon_guardian { set .@map$, getarg(0); set .@label$, getarg(1); switch( 'instance_tdg_level ){ case 2: //brynarea setarray .@monster,3091; setarray .@coordinate,54,97,33,138; break; case 3: //muspelskoll setarray .@monster,3092; setarray .@coordinate,153,91,173,140; break; case 4: //morocc boy setarray .@monster,3096; setarray .@coordinate,90,208,116,176; break; case 5: //morocc boy, 20% left setarray .@monster,3096; setarray .@coordinate,90,208,116,176; break; case 6: //morocc adult setarray .@monster,3097; setarray .@coordinate,90,208,116,176; break; default: mapannounce .@map$,"[ Temple of Demon God ] : Cleared!! Congratulation!!",bc_map,0x00FF99; return; } set .@monster_size, getarraysize( .@monster ); for( set .@i, 0; .@i < .@monster_size; set .@i,.@i+1 ){ set .@target_amount, 1; set .@size, 0; if('instance_tdg_level == 4) { //RATHENA areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size); set .moroccId, $@mobid[0]; //HERCULES //set .moroccId, areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size); } else if('instance_tdg_level == 5) { //RATHENA areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size); set .moroccId, $@mobid[0]; getunitdata(.moroccId, .@moroccData); setunitdata .moroccId, 2, .@moroccData[UMOB_MAXHP] * 20 / 100; //HERCULES //set .moroccId, areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size); //set .@mhp, getunitdata($moroccId, UDT_MAXHP); //setunitdata $moroccId, UDT_HP, .@mhp * 20 / 100; } else { areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size); } } return; } OnAhatDied: //get item getitem 'ahatSoul, 1; set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnShnaimDied" ); if(.@mob_dead_num == 0) { instance_announce instance_id(), "[Temple of Demon God] Activate the Soul Globe to open the Temple.",bc_map,0x00ff99; enablenpc instance_npcname( "alatdgor", instance_id() ); } end; OnShnaimDied: //get item getitem 'shnaimSoul, 1; set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnAhatDied" ); if(.@mob_dead_num == 0) { instance_announce instance_id(), "[Temple of Demon God] Activate the Soul Globe to open the Temple.",bc_map,0x00ff99; enablenpc instance_npcname( "alatdgor", instance_id() ); } end; OnNormalDied: set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnNormalDied" ); if( .@mob_dead_num == 0 && .@mob_dead_num2 == 0 ){ if('instance_tdg_level == 4) { 'instance_tdg_level++; //summon morocc boy again summon_guardian( .@map$,.@npc_name$+"::OnGuardianDied" ); } } end; OnGuardianDied: set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnGuardianDied" ); set .@party_id, getcharid(1); if( !.@mob_dead_num ){ if('instance_tdg_level == 2) { killmonster strnpcinfo(4), "All"; //nydhogg pop enablenpc instance_npcname( "alatdgny2", instance_id() ); donpcevent instance_npcname( "alatdgny2", instance_id() ) + "::OnDialog2"; } else if('instance_tdg_level == 3) { killmonster strnpcinfo(4), "All"; //nydhogg pop enablenpc instance_npcname( "alatdgny3", instance_id() ); donpcevent instance_npcname( "alatdgny3", instance_id() ) + "::OnDialog3"; } else if('instance_tdg_level == 5) { 'instance_tdg_level++; //morocc boy death instance_announce instance_id(), "[Morocc] This is getting more interesting, humans!",bc_map,0xFF0000; sleep 1500; instance_announce instance_id(), "[Morocc] You don't think this is already over, do you?!",bc_map,0xFF0000; sleep 1500; set .randomPop, 1; summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied" ); } else if ('instance_tdg_level == .max_tdg_level) { killmonster strnpcinfo(4), "All"; stopnpctimer; instance_announce instance_id(), "Do...Don't think...It's over...You! You're allready...Dead!!",bc_map,0xFF0000; sleep 1500; //enable portal enablenpc instance_npcname( "alatdgny4", instance_id() ); end; } } end; OnTimer10000: //each 10s, increase timer set .timerCount, .timerCount + 10; if(.timerCount == $tdg_timer_delay) { instance_announce instance_id(), "[ Temple of Demon God ] The Dimension collapse! I have to get you out of there!", bc_map, 0xFF0000; sleep 5000; getpartymember getcharid(1),2; for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 ) if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){ set TDG_INSTANCE_ID, -1; } instance_destroy instance_id(); stopnpctimer; } if(.randomPop == 1) { set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnNormalDied" ); if(.@mob_dead_num == 0) { summon_normal( .@map$,.@npc_name$, 0 ); } } if(.checkHP == 1) { callsub OnCheckMoroccHP; } setnpctimer 0; end; OnCheckMoroccHP: //RATHENA getunitdata(.moroccId, .@moroccData); if(.@moroccData[UMOB_HP] <= .@moroccData[UMOB_MAXHP] / 2) //HERCULES //set .@hp, getunitdata($stefanId, UDT_HP); //set .@mhp, getunitdata($stefanId, UDT_MAXHP); //if(.@hp <= .@mhp / 2) { set .@map$, strnpcinfo(4); set .@npc_name$, strnpcinfo(3); killmonster strnpcinfo(4), "All"; set .checkHP, 0; //stop, kill monster and pop 2 morocc summon_normal( .@map$, strnpcinfo(3), 0 ); } return; OnFirstFloorOn: set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); //pop furious incarnation of morroc summon_normal( .@map$, .@npc_name$, 1 ); end; OnSecondFloorOn: set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); //pop dolomedes summon_normal( .@map$, .@npc_name$, 1 ); //pop brynarea summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied" ); enablenpc instance_npcname( "tdgWarp#1", instance_id() ); end; OnThirdFloorOn: set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); //pop kasa summon_normal( .@map$, .@npc_name$, 1 ); //pop muspelskoll summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied" ); enablenpc instance_npcname( "tdgWarp#3", instance_id() ); end; OnFourthFloorOn: set .@map$, strnpcinfo(4); set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() ); 'instance_tdg_level++; //pop morocc boy summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied"); enablenpc instance_npcname( "tdgWarp#5", instance_id() ); set .checkHP, 1; end; } 1@eom,101,62,3 script Temple Entrance::alatdgwe HIDDEN_WARP_NPC,2,2,{ end; OnTouch: warp strnpcinfo(4), 98, 115; end; OnInit: OnInstanceInit: disablenpc strnpcinfo(3); end; } 1@eom,98,56,3 script Soul Globe::alatdgor HIDDEN_WARP_NPC,2,2,{ set .@npcname$, "[Soul Globe]"; mes .@npcname$; mes "Do you wish to insert the Souls?"; if(select("Yes","No") == 1) { if(countitem('ahatSoul) > 0) { delitem 'ahatSoul, 1; set .ahat, 1; } if(countitem('shnaimSoul) > 0) { delitem 'shnaimSoul, 1; set .shnaim, 1; } if(.ahat == 1 && .shnaim == 1) { set .warpingOn, 1; npctalk "[Soul Globe] The Door is open."; instance_announce instance_id(), "[Soul Globe] The Door is open.", bc_map, 0x00FF99; //enable warp enablenpc instance_npcname( "alatdgwe", instance_id() ); enablenpc instance_npcname( "alatdge", instance_id() ); enablenpc instance_npcname( "alatdgmo", instance_id() ); enablenpc instance_npcname( "alatdglo", instance_id() ); enablenpc instance_npcname( "alatdgny", instance_id() ); } else { next; mes "[Soul Globe]"; mes "Insert the Ahat and Shnaim Souls to open the Door."; } } close; OnInstanceInit: OnInit: enablenpc strnpcinfo(3); set .ahat, 0; set .shnaim, 0; end; } 1@eom,98,115,3 script entrance::alatdge HIDDEN_WARP_NPC,2,2,{ end; OnTouch: if('instance_tdg_level == 1) { sleep 5000; donpcevent instance_npcname( "alatdgmo", instance_id() ) + "::OnDialog1_1"; } end; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); end; } 1@eom,102,124,3 script Morocc::alatdgmo 4_F_MOCBOY,2,2,{ end; OnDialog1_1: if(.moTalking == 0) { set .moTalking, 1; npctalk "I'll create a new world and become its creator."; instance_announce instance_id(), "[Morocc] I'll create a new world and become its creator.", bc_map, 0xFF0000; sleep 1500; npctalk "Let me ask you, the first creatures that have stepped in my newborn land."; instance_announce instance_id(), "[Morocc] Let me ask you, the first creatures that have stepped in my newborn land.", bc_map, 0xFF0000; sleep 1500; npctalk "How'd you like to follow me and watch the birth of a new world?"; instance_announce instance_id(), "[Morocc] How'd you like to follow me and watch the birth of a new world?", bc_map, 0xFF0000; sleep 1500; donpcevent instance_npcname( "alatdglo", instance_id() ) + "::OnDialog1_2"; } end; OnDialog1_4: npctalk "Let me ask you, the first creatures that have stepped in my newborn land."; instance_announce instance_id(), "[Morocc] Let me ask you, the first creatures that have stepped in my newborn land.",bc_map, 0xFF0000; sleep 1500; npctalk "How'd you like to follow me and watch the birth of a new world?"; instance_announce instance_id(), "[Morocc] How'd you like to follow me and watch the birth of a new world?",bc_map, 0xFF0000; sleep 1500; donpcevent instance_npcname( "alatdglo", instance_id() ) + "::OnDialog1_5"; end; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); set .moTalking, 0; end; } 1@eom,95,125,5 script Loki::alatdglo 4_M_BLACKMAN,2,2,{ end; OnDialog1_2: npctalk "Enough with your nonsense. Just say you like destroying things!"; instance_announce instance_id(), "[Loki] Enough with your nonsense. Just say you like destroying things!", bc_map, 0x00FF99; sleep 1500; npctalk "Create a new world and become its creator? If this is the new world you're talking about, then I'm disappointed!"; instance_announce instance_id(), "[Loki] Create a new world and become its creator? If this is the new world you're talking about, then I'm disappointed!", bc_map, 0x00FF99; sleep 1500; npctalk "Even if you burn your body, you power is not as potent as that of Ymir of the Genesis!"; instance_announce instance_id(), "[Loki] Even if you burn your body, you power is not as potent as that of Ymir of the Genesis!",bc_map, 0x00FF99; sleep 1500; npctalk "Just the fact that you had to steal Yggdrasil shows you lack of creativity!"; instance_announce instance_id(), "[Loki] Just the fact that you had to steal Yggdrasil shows you lack of creativity!",bc_map, 0x00FF99; sleep 1500; npctalk "Take a look at yourself. You're delusional if you think that you look like a creator of any kind!"; instance_announce instance_id(), "[Loki] Take a look at yourself. You're delusional if you think that you look like a creator of any kind!",bc_map, 0x00FF99; sleep 1500; donpcevent instance_npcname( "alatdgny", instance_id() ) + "::OnDialog1_3"; end; OnDialog1_5: disablenpc instance_npcname( "alatdgmo", instance_id() ); npctalk "Are you running?!"; instance_announce instance_id(), "[Loki] Are you running?!",bc_map, 0x00FF99; disablenpc strnpcinfo(3); sleep 1500; set 'tdgMercenaryOn, 1; donpcevent instance_npcname( "temple_demon_god", instance_id() ) + "::OnSecondFloorOn"; end; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); end; } 1@eom,93,122,5 script Nydhogg::alatdgny 4_F_NYDHOG,{ if (getcharid(0) == getpartyleader(getcharid(1),2)) { mes "[Nydhogg]"; mes "Listen carefully."; next; mes "[Nydhogg]"; mes "Morocc will soon overpower us all. We need to defeat him before it arrives."; next; mes "[Nydhogg]"; mes "We need your powers to defeat him. We're not strong enough to defeat him by our own."; next; mes "[Nydhogg]"; mes "I will offer you my strength in exchange for you to help me."; close2; summon "Nydhogg",3087,99999999; disablenpc strnpcinfo(3); end; } mes "[Nydhogg]"; mes "I'm talking to your leader."; close; OnDialog1_3: npctalk "I second that. You're unnecessary to this world. You don't belong here!"; instance_announce instance_id(), "[Nydhogg] I second that. You're unnecessary to this world. You don't belong here!",bc_map, 0x0000FF; sleep 1500; npctalk "Even Yggdrasil denies your existence!"; instance_announce instance_id(), "[Nydhogg] Even Yggdrasil denies your existence!",bc_map, 0x0000FF; sleep 1500; npctalk "As the Guardian of Yggdrasil, I have to erase your existence from this world."; instance_announce instance_id(), "[Nydhogg] As the Guardian of Yggdrasil, I have to erase your existence from this world.",bc_map, 0x0000FF; sleep 1500; donpcevent instance_npcname( "alatdgmo", instance_id() ) + "::OnDialog1_4"; end; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); set .endTalking, 0; end; } 1@eom,102,124,3 script Morocc::alatdgmoa 3097,2,2,{ end; OnTouch: if(.moTalking == 0) { set .moTalking, 1; npctalk "You exceeded my expectations."; instance_announce instance_id(), "[Morocc] You exceeded my expectations.",bc_map, 0xFF0000; sleep 1500; npctalk "I'll accept your challenge."; instance_announce instance_id(), "[Morocc] I'll accept your challenge.",bc_map, 0xFF0000; sleep 1500; npctalk "I shall drench the land with your flowing blood, and nourish it with your torn flesh."; instance_announce instance_id(), "[Morocc] I shall drench the land with your flowing blood, and nourish it with your torn flesh.",bc_map, 0xFF0000; sleep 1500; npctalk "I'll show you the true depth of despair."; instance_announce instance_id(), "[Morocc] I'll show you the true depth of despair.",bc_map, 0xFF0000; sleep 1500; disablenpc strnpcinfo(3); donpcevent instance_npcname( "temple_demon_god", instance_id() ) + "::OnFourthFloorOn"; } end; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); set .moTalking, 0; end; } 1@eom,61,149,3 script Nydhogg::alatdgny2 4_F_NYDHOG,{ set .@npcname$, "[Nydhogg]"; mes .@npcname$; mes "That was a tought battle."; mes "This may not be good enough, but I hope it'll help your growth."; if(NYDBRYN == 0) { //getexp next; mes "Nydhogg rewarded you with a large amount of EXP for defeating Brinnaranea."; set NYDBRYN, 1; } close; OnDialog2: instance_announce instance_id(), "[Nyddhog] Brinnaranea's influence has dissipated, and a new warp gate has appeared.",bc_map, 0x0000FF; enablenpc instance_npcname( "tdgWarp#2", instance_id() ); donpcevent instance_npcname( "temple_demon_god", instance_id() ) + "::OnThirdFloorOn"; end; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); end; } 1@eom,154,155,3 script Nydhogg::alatdgny3 4_F_NYDHOG,{ set .@npcname$, "[Nydhogg]"; mes .@npcname$; mes "Good job again."; mes "This may not be good enough, but I hope it'll help your growth."; if(NYDMUS == 0) { //getexp next; mes "Nydhogg rewarded you with a large amount of EXP for defeating Muspelskoll."; set NYDMUS, 1; } close; OnDialog3: instance_announce instance_id(), "[Nyddhog] Muspelskoll's influence has dissipated, and a new warp gate has appeared.",bc_map, 0x0000FF; enablenpc instance_npcname( "tdgWarp#4", instance_id() ); enablenpc instance_npcname( "alatdgmoa", instance_id() ); end; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); end; } 1@eom,106,197,3 script Nydhogg::alatdgny4 4_F_NYDHOG,{ set .@npcname$, "[Nydhogg]"; cutin "ep14_nyd01",1; mes .@npcname$; mes "I don't know what to say..."; mes "We stopped the God in waiting."; mes "We ascomplished our goal."; mes "But I'm still unnerved..."; next; mes .@npcname$; mes "This world is created in the mind of Morocc."; mes "He'll live forever in this garden he couldn't finish."; next; mes .@npcname$; mes "He probably doesn't know his body is destroyed forever."; mes "He was far too ambitious, even for him."; mes "He wanted to create a new world and become its creator."; next; mes .@npcname$; mes "But he couldn't create anything on his own."; mes "He abandonned his demon body, just to become a mere facsimile of an existing god."; next; mes .@npcname$; mes "He look the snape of a man."; mes "He wasn't creative enough to reinvent the concept of a God."; mes "He was some kind of paradox."; next; mes .@npcname$; mes "Now we need to get out of this trap in time and get back to reality."; mes "This world only exists in the Demon's mind, and this day will repeat endlessly."; next; mes .@npcname$; mes "Everyone entering this world will be dragged in this loop."; mes "In that sense, he succeeded in making his own world."; next; mes .@npcname$; mes "I've talked to much."; mes "The commander must be waiting. Let me validate your feat so you can report to him."; mes "You did a great job today."; cutin "", 255; next; getpartymember getcharid(1),2; for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 ) if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){ set TDG_INSTANCE_ID, -1; getitem 22537,1; getitem 6715,1; getitem 22567,3; } instance_destroy instance_id(); close; OnInstanceInit: OnInit: disablenpc strnpcinfo(3); end; } 1@eom,91,120 warp tdgWarp#1 2,2,1@eom,61,88 1@eom,69,149 warp tdgWarp#2 2,2,1@eom,98, 115 1@eom,105,120 warp tdgWarp#3 2,2,1@eom,133,93 1@eom,147,156 warp tdgWarp#4 2,2,1@eom,98, 115 1@eom,98,127 warp tdgWarp#5 2,2,1@eom,101,176
  13. The job name of Star Emperor and Soul Reaper (just below the character name) appears in Korean, also the AB skills Vituperatum and Convenio descriptions appear in Korean too. I searched through the GRF folders that you mention but i cant find where to add/translate those.
  14. I'm looking for everything thats needed for the skill tree, party, buffs etc, like skillnametable.txt skilldesctable2.txt etc... Thanks in advance
  15. Erebos

    Two questions.

    I'm getting this errors now. Edit: Fixed the errors but i still doesn't work. Tested with a Champion then a Sura: the Dangerous Soul Collect/Zen skill still has the same fixed cast on both.
  16. Erebos

    Two questions.

    Im getting this errors when recompiling.
  17. Erebos

    Two questions.

    Yes, server wide. Nop, 3rd Jobs have to keep their cast as it is. 2nd jobs have to be able to reach instant cast at 150 dex with all their skills. I like the item script but its not practical, players would lose an item slot. What i want i saw it in other servers so i know its possible but i think is very difficult.
  18. Erebos

    Two questions.

    Yes, i want 3rd job pvp and woe, and 2nd job pvp woe, so i need 2nd jobs to have a separated cast formulla.
  19. Erebos

    Two questions.

    Yes, i did recompile the server.
  20. Erebos

    Two questions.

    @n0tttt Still i cant get instant cast with 150 dex with 2nd jobs. I cant spot any significant changes.
  21. 1) How can i remove or replace certain achievement rewards? 2) How can i make the Instant Cast requirements depend on the job, what i exactly want to do is keep the 3rd jobs renewal cast as it is, but if you are a 2nd Job your cast would be depending on your dex only. Fixed and Variable cast times like always on 3rd jobs, but only Variable and 150 dex required for instant cast on 2nd jobs. Thanks in advance.
  22. i used rand(10,20) instead of the function, do u think it could have any bugs like that or its fine?
  23. Thanks! it worked but i get either 100 or 200 cash, how do i make so i get a random number from 100 to 200? edit: i figured it out thanks!
×
×
  • Create New...