Jump to content

shinz

Members
  • Posts

    10
  • Joined

  • Last visited

Profile Information

  • Gender
    Not Telling
  • Location
    Indonesia

Recent Profile Visitors

1143 profile views

shinz's Achievements

Poring

Poring (1/15)

0

Reputation

  1. Is there any script that can kick dual login player on instance map? i use new instancing map that can used normal map like 001glast_01 i've try searching on forum that used on BG map, but when i input 2 map like "001glast_01","002glast_01" the script wont work. i really need help for solving this. thanks
  2. hello, i found great script here, that an event with refining and rewards i need help to custom the script like an IRO spooky machine event so the refine should automatic untill it break. any help for this? thanks the current script is made by Lil Trol and the code is like this : ///////////////////////////////////////////////////////////////////////// // SPOOKY NPC // // LIL TROLL//COLDFIRE // ///////////////////////////////////////////////////////////////////////// // RATHENA SCRIPT // //---------------------------------------------------------------------// // Version 1 // // Features: ( REFINE EVENT ) // // - When a piece of setted item/equip is break he will get prize. // // - The players can also claim their reward if they wanted their // // item to be saved and exchange to prize but the prize pool // // will be demoted to lower refine break prize. // // - The piece of equip can be set to a certain chance rate of // // success or derefine each try. // // - In every min/hour of configuration that is set to the npc // // it will unhide/hide. // // - Set your own prize, rates, equipslot, equip to be used, etc. // // its very easy to configure. // // - Atcommand "Refine" is used to create random desirable rates. // ///////////////////////////////////////////////////////////////////////// // You can remove punishment if you want just put "//" before callfunc "Punishment"; payo2,107,101,4script Spooky 63,{ function v; function x; function z; function y; goto DoubleProtection; // Double check set reset.. so that set again and again.. - To prevent abuse of refining. DoubleProtection: goto MainMenu; MainMenu: if(#Spooky == 0 ) { // just mprove the dialogue.. ok? mes .sname$; mes "Hello "+strcharinfo(0)+"!"; mes "Im here to give you a `"+x(.s[0])+"`. I will also refine it for free. I`snt that interesting?"; next; mes .sname$; mes "Yes I knew you think it was awesome!"; next; mes .sname$; mes "Also, I will give you prize for each every successful refine or break of `"+x(.s[0])+"`. Isnt that great?"; next; mes .sname$; mes "Now what do you think doing? Do you want to grab the item or not?"; next; switch(select("[ Yes,sure! ]:[ No,bye! ]")) { case 1: Spooky: set #Spooky,1; mes .sname$; mes "You really wanted to do this ehh... Alright heres your `"+x(.s[0])+"`."; getitem .s[0],.t[0]; next; mes .sname$; mes "Ok you got `"+x(.s[0])+"` please equip that. And i will unequip all of your equipments. Then talk to me again ok?"; close2; nude; break; case 2: mes .sname$; mes "Its not my loss anyways! (XD) Have fun!"; close2; callfunc "Punishment"; break; } } if(#Spooky == 1 ) { goto PrizePerRefine; PrizePerRefine: mes .sname$; mes "Lets start refining the `"+x(.s[0])+"`! Would you like to proceed?"; next; switch(select("[ Yeah lets proceed! ]:[ Wait a bit! ]")) { case 1: set #Spooky,2; mes .sname$; mes "Ok talk to me again! I do prepare a bit."; close; case 2: mes .sname$; mes "I really dont like to wait.. See you the other way arround!"; close2; callfunc "Punishment"; } } if(#Spooky == 2 ) { goto DoubleCheck; DoubleCheck: // This is important so that equip checking for set can be reset everytime new refine is done! - To prevent abuse of refining! goto StartRefining; StartRefining: setarray .@a[1],256,16,32,2,4,64,8,128,512,1; set .@g, getequipid(.p); set .@e, getequiprefinerycnt(.p); mes .sname$; mes "The '"+z(.p)+"' is currently +"+y(.p)+"."; if(.@e ==1 ) mes "Break Prize is `"+x(.s[1])+":"+.t[1]+"`."; if(.@e ==2 ) mes "Break Prize is `"+x(.s[2])+":"+.t[2]+"`."; if(.@e ==3 ) mes "Break Prize is `"+x(.s[3])+":"+.t[3]+"`."; if(.@e ==4 ) mes "Break Prize is `"+x(.s[4])+":"+.t[4]+"`."; if(.@e ==5 ) mes "Break Prize is `"+x(.s[5])+":"+.t[5]+"`."; if(.@e ==6 ) mes "Break Prize is `"+x(.s[6])+":"+.t[6]+"`."; if(.@e ==7 ) mes "Break Prize is `"+x(.s[7])+":"+.t[7]+"`."; if(.@e ==8 ) mes "Break Prize is `"+x(.s[8])+":"+.t[8]+"`."; if(.@e ==9 ) mes "Break Prize is `"+x(.s[9])+":"+.t[9]+"`."; next; set .@m,select(v(1),v(2),v(3),v(4),v(5),v(6),v(7),v(8),v(9),v(10),"Claim Prize"); if(.@m == 11){ mes .sname$; if(.@e <= 3) { mes "You can only claim prize when you reach +4 refine!"; close; } mes "When you claim the prize, pool of prize that is set to 'when break' will be demoted to lower refine prize."; next; mes .sname$; mes "Still would you like to claim the prize?"; next; menu "Yes, I do!",Confirm,"No, I want to try again,",Decline; Confirm: mes .sname$; mes .sname$; if(.@e == 9) { mes "Now your prize is `"+x(.s[8])+":"+.t[8]+"`."; getitem(.s[8],.t[8]); unequip .p; sleep2 200; } if(.@e == 8) { mes "Now your prize is `"+x(.s[7])+":"+.t[7]+"`."; getitem(.s[7],.t[7]); unequip .p; sleep2 200; } if(.@e == 7) { mes "Now your prize is `"+x(.s[6])+":"+.t[6]+"`."; getitem(.s[6],.t[6]); unequip .p; sleep2 200; } if(.@e == 6) { mes "Now your prize is `"+x(.s[5])+":"+.t[5]+"`."; getitem(.s[5],.t[5]); unequip .p; sleep2 200; } if(.@e == 5) { mes "Now your prize is `"+x(.s[4])+":"+.t[4]+"`."; getitem(.s[4],.t[4]); unequip .p; sleep2 200; } if(.@e == 4) { mes "Now your prize is `"+x(.s[3])+":"+.t[3]+"`."; getitem(.s[3],.t[3]); unequip .p; sleep2 200; } specialeffect2 611; delitem .s,1; mes "Congratulations!"; set #Spooky,4; close2; goto MainMenu; Decline: close2; goto MainMenu; } if(.@m != .p || .@g != .s[0] ){ mes .sname$; mes "Pfff.... I only refine `"+x(.s[0])+ "`"; close; } if (getequipid(.p) != .@g || (getequiprefinerycnt(.p) != .@e)) { mes .sname$; mes "You changed your equipment! Dont you do that to me!"; close2; callfunc "Punishment"; end; } set .@f,rand(1,100); set .@f,rand(1,100); if(.@e ==0 ) { if(.@f < .c[0]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +1 "; mes "When break Prize is : "+x(.s[1])+""; next; goto MainMenu; close; } else { next; mes .sname$; mes "Nothing happend.."; goto MainMenu; close; } } set .@g, getequipid(.p); if(.@e ==1 ) { if(.@f < .c[1]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +2 "; mes "When break Prize is : '"+x(.s[1])+":"+.t[1]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[1] ) { unequip .p; sleep2 100; delitem .@s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize '"+x(.s[1])+":"+.t[1]+"`."; getitem .s[1],.t[1]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e ==2 ) { if(.@f < .c[2]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +3 "; mes "When break Prize is : '"+x(.s[2])+":"+.t[2]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[2] ) { unequip .p; sleep2 100; delitem .@s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[2])+"`."; getitem .s[2],.t[2]; set #Spooky,4; next; goto MainMenu; close; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e ==3 ) { if(.@f < .c[3]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +4 "; mes "When break Prize is : '"+x(.s[3])+":"+.t[3]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[3] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[3])+"`."; getitem .s[3],.t[3]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e ==4 ) { if(.@f < .c[4]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +5 "; mes "When break Prize is : '"+x(.s[4])+":"+.t[4]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[4] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[4])+"`."; getitem .s[4],.t[4]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 5 ) { if(.@f < .c[5]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +6 "; mes "When break Prize is : '"+x(.s[5])+":"+.t[5]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[5] ) { unequip .p; sleep2 100; delitem .@s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[5])+"`."; getitem .s[5],.t[5]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 6 ) { if(.@f < .c[6]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +7 "; mes "When break Prize is : '"+x(.s[7])+":"+.t[6]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[6] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[7])+"`."; getitem .s[7],.t[6]; set #Spooky,3; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 7 ) { if(.@f < .c[7]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +8 "; mes "When break Prize is : '"+x(.s[7])+":"+.t[7]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[7] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[7])+"`."; getitem .s[7],.t[7]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 8 ) { if(.@f < .c[8]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +9 "; mes "When break Prize is : '"+x(.s[8])+":"+.t[8]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[8] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[8])+"`."; getitem .s[8],.t[8]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 9 ) { if(.@f < .c[9]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +10 "; mes "Proceed to get your prize!"; set #Spooky,3; next; goto MainMenu; close; } else { if(.@f < .d[9] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize '"+x(.s[9])+":"+.t[9]+"`."; getitem .s[9],.t[9]; set #Spooky,3; close2; goto MainMenu; } else{ next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } } // End Spooky 2 if(#Spooky == 3 ) { if(.@e >= 10) { mes "You really are awesome! You make me believe superhuman exists!.. Good for you! (XD). Here is your prize `"+x(.s[10])+"`:'"+.t[10]+"'."; getitem .s[10],.t[10]; unequip .p; sleep2 200; delitem .s,1; set #Spooky,6; specialeffect2 610; close2; announce ""+strcharinfo(0)+" made a +10 `"+.s+"` and won `"+x(.s[10])+"`:'"+.t[10]+"'.",bc_all; close; } } // End Spooky 3 if(#Spooky == 4 ) { mes .sname$; mes "Better luck next time! If there is nextime! LOL!"; emotion e_heh; set #Spooky,5; close; } // End Spooky 4 if(#Spooky == 5 ) { mes .sname$; mes "I think I do not have any important bable with you today. Come back later and I will give you another "+getitemname(.s[0])+".."; close; } // End Spooky 5 if(#Spooky == 6 ) { mes .sname$; mes "Congratulations for being the grand winner! Lets see if you can win nextime!.."; close; } // End Spooky 6 function v { return ""+getequipname(getarg(0))+""; } function x { return ""+getitemname(getarg(0))+""; } function z { return ""+getequipname(getarg(0))+""; } function y { return ""+getequiprefinerycnt(getarg(0))+""; } OnInit: set .sname$,"[ Spooky Something? ]"; // You can change the name inside the bars. // Dont remove the comas and columns. setarray .s[0],2102, // Change this to what ever item the npc will refine. (MUST BE CUSTOM ITEM BOUND FOR BEST RESULT!) 501, // +1 Prize when the equip break. 502, // +2 Prize when the equip break. 503, // +3 Prize when the equip break. 504, // +4 Prize when the equip break. 505, // +5 Prize when the equip break. 506, // +6 Prize when the equip break. 507, // +7 Prize when the equip break. 508, // +8 Prize when the equip break. 509, // +9 Prize when the equip break. 510; // +10 Prize after successful refining of the equip. setarray .t[0], 1, // Amount of item that will refine by the NPC. 1, // +1 Prize amount when the equip break. 1, // +2 Prize amount when the equip break. 1, // +3 Prize amount when the equip break. 1, // +4 Prize amount when the equip break. 1, // +5 Prize amount when the equip break. 1, // +6 Prize amount when the equip break. 1, // +7 Prize amount when the equip break. 1, // +8 Prize amount when the equip break. 1, // +9 Prize amount when the equip break. 1; // +10 Prize amount after successful refining of the equip. setarray .c[0], 80, // +1 Chance to refine in %. 75, // +2 Chance to refine in %. 70, // +3 Chance to refine in %. 65, // +4 Chance to refine in %. 60, // +5 Chance to refine in %. 55, // +6 Chance to refine in %. 50, // +7 Chance to refine in %. 35, // +8 Chance to refine in %. 20, // +9 Chance to refine in %. 5; // +10 Chance to refine in %. setarray .d[0], 35, // +1 Fail minus refine %. 40, // +2 Fail minus refine %. 45, // +3 Fail minus refine %. 50, // +4 Fail minus refine %. 55, // +5 Fail minus refine %. 60, // +6 Fail minus refine %. 65, // +7 Fail minus refine %. 70, // +8 Fail minus refine %. 80, // +9 Fail minus refine %. 85; // +10 Fail minus refine %. set .p,3; // Slot of desired equip that will be to used, see below for detail. setarray .gmaid[0],2000000, // ADD GM ACCOUNT ID HERE. // Auto delete @atcommand of players. 2000002; /* EQI_HEAD_TOP (1) - Upper Headear EQI_ARMOR (2) - Armor (Where you keep your Jackets and Robes) EQI_HAND_L (3) - What is in your Left hand. EQI_HAND_R (4) - What is in your Right hand. EQI_GARMENT (5) - The garment slot (Mufflers, Hoods, Manteaus) EQI_SHOES (6) - What foot gear the player has on. EQI_ACC_L (7) - Accessory 1. EQI_ACC_R (8) - Accessory 2. EQI_HEAD_MID (9) - Middle Headgear (masks and glasses) EQI_HEAD_LOW (10) - Lower Headgear (beards, some masks) */ enablenpc strnpcinfo(0); //initnpctimer; end; OnMinute00: query_sql("DELETE FROM `global_reg_value` WHERE `str` = '#Spooky'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(set .@i,0; .@i<.@size; set .@i,.@i+1) { if(attachrid(.@aid[.@i])){ set #Spooky,0; } } announce "Spooky Npc Event is now available!",8; enablenpc strnpcinfo(0); end; OnMinute12: announce "Spooky Npc Event will be gone at 3mins!",8; end; OnMinute13: announce "Spooky Npc Event will be gone at 2mins!",8; end; OnMinute14: announce "Spooky Npc Event will be gone at 1min!",8; end; OnMinute15: announce "Spooky Npc Event will be appear again after one hour!",8; disablenpc strnpcinfo(0); end; OnMinute16: query_sql("DELETE FROM `global_reg_value` WHERE `str` = '#Spooky'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(set .@i,0; .@i<.@size; set .@i,.@i+1) { if(attachrid(.@aid[.@i])){ set #Spooky,0; } } end; OnMinute30: //OnTimer10000: query_sql("DELETE FROM `global_reg_value` WHERE `str` = '#Spooky'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(set .@i,0; .@i<.@size; set .@i,.@i+1) { if(attachrid(.@aid[.@i])){ set #Spooky,0; } } for(set .@i,0; .@i<getarraysize(.gmaid); set .@i,.@i+1) { if(.@aid!=.gmaid[.@i]){ query_sql "DELETE FROM `log`.`atcommandlog` WHERE `account_id` = '"+.@aid[.@i]+"'"; debugmes "Atcommand garbage has been deleted!::Lil-Troll :D"; } } //initnpctimer; end; } // End Spooky NPC function script Punishment { atcommand "@nuke "+strcharinfo(0); sleep2 500; atcommand "@raise "+strcharinfo(0); sleep2 500; atcommand "@nuke "+strcharinfo(0); sleep2 500; atcommand "@raise "+strcharinfo(0); sleep2 500; atcommand "@nuke "+strcharinfo(0); return; } Thank you before
  3. hello, sorry for asking help again i search on forum how to create a custom box (like obb), and i read about using function to create it. what i gonna ask is, is it possible to get random item on same percentage? i've implement this function (script) on my server : function script PrizeBox { setarray .BoxItems[0],501,502,503,504; set .rand, rand(100); if (.rand <= 5){ getitem .BoxItems[0],1;} if (.rand <= 10 && .rand > 5){ getitem .BoxItems[1],1;} if (.rand <= 25 && .rand > 10){ getitem .BoxItems[2],1;} if (.rand > 25){ getitem .BoxItems[3],1; getitem .BoxItems[2],1;} end; } in this function, i just can get only one item (like red potion). how about if i want to get random item on same percentage? for example, if .rand <= 5 , i have a chance to get random item like red potion, aloe leaflet, mastela fruit? i've try to add 1 more line , (the red font) but it just give me two item together X_X. thank you before best regards, Liu
  4. thanks Annie yes it can be done with that command for everyone who have same problem with me, the solve is : OnInstanceInit: disablenpc instance_npcname ("npc name"); npc name can be found at npc / warps / once again, thank you Annie and thank you everyone who help me to solve this problem Best regards, Liu
  5. ah i see. thanks for answer my post. is there any idea to make the party not enter the warp? @@
  6. hello, i'm making an instance on map glast heim (gl_chyard) is it posible to disable warp only on instance map without disabling warp on the normal map (gl_chyard)? if i remove the warp on npc warp (trunk/npc/warp), it will remove the warp on normal map too thank you Best regards, Liu
  7. evening all. can i ask something about WOE >.< 1. my server using nxtream (ppl said it was a custom from rathena) my problem is when a guild leader using Emergency call skill, all skill are delayed. the guild leader become can not use any skill any solution for this? 2. how can i restrict some skill during WOE. for example, high jump skill are forbidden during WOE. thx before best regards, Shinz
  8. not annieru, i found it on rathena forum ^^ when i use annieru, the npc cant be click T__T
  9. sorry i'm newbie here. may i ask for quest master script? i need a quest script for hunting mob, but when party member kill the mob, another party member get count too.. (for example, an assassin kill a mob, a high priest get count too) i've search the script in the script release but i'didnt found it. i've used the missionboard 2.1 but when party member kill mob, another party member didnt get count.
×
×
  • Create New...