Joseph
Community Contributors-
Content Count
23 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Joseph
-
Oops I'm really late. Happy belated birthday, Emistry!
-
Probably not the official scripts, but other custom scripts.
-
I think this is the issue: http://herc.ws/board/tracker/issue-6988-monster-with-onkill-label/?gopid=16246#entry16246
-
Are those custom BGM?
-
Not as simple as I thought. function script F_EQP { // End all other sessions if (@totalSession > 0) { @totalSession--; return; } .@card_id = getarg(0); // Equipment Slot .@type[0] = EQI_HEAD_TOP; .@type[1] = EQI_ARMOR; .@type[2] = EQI_GARMENT; for (.@i = 0; .@i < getarraysize(.@type); .@i++) for (.@c = 0; .@c < getequipcardcnt(.@type[.@i]); .@c++) if (getequipcardid(.@type[.@i],.@c) == .@card_id) setd ".@tmp_eqp[" + .@i + "]", getd(".@tmp_eqp[" + .@i + "]") + 1; for (.@i = 0; .@i < getarraysize(.@type); .@i++) if (getd(".@tmp_eqp[" + .@i + "]") > 0) @totalSession++; if (@totalSession == 0) { debugmes "Unexpected return... o.o"; return; } for (.@i = 0; .@i < getarraysize(.@type); .@i++) if (getd(".@tmp_eqp[" + .@i + "]") != @eqp[.@i]) { .@check = .@check | (1 << .@i); break; } if (.@check < 1) @totalSession--; for (.@i = 0; .@i < getarraysize(.@type); .@i++) { switch (.@i) { // .@type index number case 0: bonus bStr,getd(".@tmp_eqp[" + .@i + "]") * 5; break; case 1: bonus bAgi,getd(".@tmp_eqp[" + .@i + "]") * 5; break; case 2: bonus bVit,getd(".@tmp_eqp[" + .@i + "]") * 5; break; } if (.@check & (1 << .@i) > 0) { @totalSession--; @eqp[.@i] = getd(".@tmp_eqp[" + .@i + "]"); } } return; } Usage: { callfunc("F_EQP",<card_id>); },{},{}
-
Solved Can i have PVP Warper that disable in WOE
Joseph replied to jpnazar's question in Script Requests
You can achieve that by using mapflag. -
Creating an item that can be used only in Battlegrounds
Joseph replied to mybitch's question in Database Support
You can try this. getmapflag("<map name>",mf_battleground) -
Solved Can i have PVP Warper that disable in WOE
Joseph replied to jpnazar's question in Script Requests
Yes. -
Solved Can i have PVP Warper that disable in WOE
Joseph replied to jpnazar's question in Script Requests
map,x,y,z script PvP Warper 100,{ if (!(agitcheck() || agitcheck2())) { warp "pvp map",0,0; announce strcharinfo(0) + " has entered the pvp room.",0; } end;} -
Solved Can i have PVP Warper that disable in WOE
Joseph replied to jpnazar's question in Script Requests
map,x,y,z script PvP Warper 100,{ if (!(agitcheck() || agitcheck2())) warp "pvp map",0,0; end;} map,x,y,z script PvP Warper 100,{ warp "pvp map",0,0; end;OnInit: if (!(agitcheck() || agitcheck2())) end;OnAgitStart:OnAgitStart2: disablenpc strnpcinfo(0); end;OnAgitEnd:OnAgitEnd2: enablenpc strnpcinfo(0); end;} -
I think it's better if you add a message window instead of using @refresh.
-
How you want to categorize those classes? I'll give you an example. Add this in the function: // Baby Wizard, Wizard, High Wizard, Warlock, Baby Warlockif (.@baseJob == Job_Wizard) { // Your effects here... // ...}
-
No, Masao! Like you said this script is very old and it does suck anyway.
-
You can use BaseJob instead, but this will also include baby classes and 3rd job classes for Assassin, Bard and Knight. Not necessary to create a function, if you're using this for like 1 or 2 equipment(s). {callfunc("Classes_Check");},{},{} function script Classes_Check { .@baseJob = BaseJob; if (.@baseJob == Job_Assassin || .@baseJob == Job_Bard || .@baseJob == Job_Knight) { bonus2 bAddRace,7,20; bonus bIntravision,0; if(getrefine()>=10) bonus bAllStats,5; } return;}
-
Sorry, silly mistake. Edited my post.
-
NPC: map,x,y,z script Group_ID 100,{ if (getgroupid()) end; // Group ID above 0 are not allowed to use mes "You're now granted with super powers."; close2; atcommand "@adjgroup 1"; // Temporary change, no need to relog query_sql("UPDATE `login` SET `group_id`=1 WHERE `account_id`='"+getcharid(3)+"'"); // Change permanently end;}
-
Add this: query_sql("UPDATE `login` SET `group_id`=1 WHERE `account_id`="+getcharid(3)+"'");
-
Changed .slot to .@slots[.@a-1]. Edit: P/S Masao: Hello! /* ||======================================================|| ||======================================================|| || NPC: || ||======================================================|| || Evolution Wings || ||======================================================|| || Version 1.3 || ||======================================================|| || Made by Streiker || ||======================================================|| || Updates: || || (5 latests) || || Version 1.1: || || Fixed: The npc didn't work. || || Added new configs. || || Changed the exp rates system. || || || || Version 1.1.1: || || Fixed: Mistakes. || || || || Version 1.2: || || Added rahuldev345 suggestion (spec. mobs)|| || Added AnnieRuru suggestion (refine) || || || || Version 1.3: || || Added new mode, new confs, new vars. || ||======================================================|| || Description: || || || || Make easily "evolution wings" with this. || ||======================================================|| || Additional Comments: || || || || At the moment none. || ||======================================================|| ||======================================================|| */ - script Wings_Conf -1,{ OnInit: /* Evolution modes: 1 = Every X numer of mobs (1%). 2 = Experience (1%). 3 = Every X number of mobs (100%). */ set .rates, 100; // % (Only for Mode 2). /* ID[...], evolution mode[...], mob id[...], neccesary to advance 1%[...]. (Configured for the 1st mode). If you want any monster, use 111. // Use callsub for add more wings. */ callsub Ids, 1101, 3, 111, 1, 1107, 3, 111, 1, 1113, 3, 111, 100, 1116, 3, 111, 0 ;/* 0 = Won't evolved automatically. 1 = Will be evolved automatically */ set .auto, 1; // Delay of evolution (miliseconds). set .time, 3000; // Announces color. setarray .c$[0],"4db557", // % of evolution. "d43438", // Wings evolving. "4da5b5"; // Wings evolved. set .w1, 0; end ; Ids: set .w1, .w1 + 1; for ( set .@a, 0; getarg ( .@a, 0 ) != 0 ; set .@a, .@a + 4 ) { set .w2[.w1 - 1], .w2[.w1 - 1] + 1; setd ".a1"+ .w1 +"_"+ .w2[.w1 - 1], getarg ( .@a ); // id. setd ".a2"+ .w1 +"_"+ .w2[.w1 - 1], getarg ( .@a + 1 ); // mode. setd ".a3"+ .w1 +"_"+ .w2[.w1 - 1], getarg ( .@a + 2 ); // mob id. setd ".a4"+ .w1 +"_"+ .w2[.w1 - 1], getarg ( .@a + 3 ); // amount. } return ; OnNPCKillEvent: setarray .@slots[0], 1, 3, 4, 9, 10; // put here your slots. for ( set .@a, 0; .@a < 3 && ! .@c ; set .@a, .@a + 1 ) { if ( set ( .@e, getequipid ( .@slots[.@a] ) ) < 0 ) continue ; set .@id, 0; set .@w, 1; while ( set ( .@id, .@id + 1 ) <= .w2[.@w - 1] && ! .@c ) { if ( .@e == getd ( ".a1"+ .@w +"_"+ .@id ) ) { set .@c, ( getd ( ".a4"+ .@w +"_"+ .@id ) > 0 ) * ( killedrid == getd ( ".a3"+ .@w +"_"+ .@id ) || getd ( ".a3"+ .@w +"_"+ .@id ) < 1001 ); if ( .@c ) break ; } if ( .@id >= .w2[.@w - 1] ) { set .@id, 0; set .@w, .@w + 1; } } } if ( ! ( .@c ) ) end ; set .@e2, getd ( "evo"+ .@e ); if ( getd ( ".a2"+ .@w +"_"+ .@id ) == 1 ) { setd "$Mobs_"+ getcharid ( 0 ) +"_"+ .@e, getd("$Mobs_"+ getcharid( 0 ) +"_"+ .@e ) + 1; if ( ( getd ( "$Mobs_"+getcharid ( 0 ) ) % getd ( ".a4"+ .@w +"_"+ .@id ) ) ) end ; setd "evo"+ .@e, getd ( "evo"+ .@e ) + 1; setd "$Mobs_"+ getcharid ( 0 ) +"_"+ .@e, 0; } else if ( getd ( ".a2"+ .@w +"_"+ .@id ) == 2 ) { setd "$Exp_"+ getcharid ( 0 ) +"_"+ .@e, getd ("$Exp_"+ getcharid ( 0 ) +"_"+ .@e ) + ( strmobinfo ( 6, killedrid ) * .rates / 100 ); if ( getd ( "$Exp_"+getcharid ( 0 ) +"_"+ .@e ) < getd ( ".a4"+ .@w +"_"+ .@id ) ) end ; setd "evo"+ .@e, getd ( "evo"+ .@e ) + 1; setd "$Exp_"+ getcharid ( 0 ), 0; } else if ( getd ( ".a2"+ .@w +"_"+ .@id ) == 3 ) { setd "$Mobs_"+ getcharid ( 0 ), getd ("$Mobs_"+ getcharid( 0 ) +"_"+ .@e ) + 1; if ( ( getd ( "$Mobs_"+ getcharid ( 0 ) +"_"+ .@e ) % getd ( ".a4"+ .@w +"_"+ .@id ) ) ) end ; setd "evo"+ .@e, getd ( "evo"+ .@e ) + 100; setd "$Mobs_"+ getcharid ( 0 ) +"_"+ .@e, 0; } else debugmes "Script Wings_Evo, error: wrong mode configuration."; if ( .@e2 != getd ( "evo"+ .@e ) ) { announce getd ( "evo"+ .@e ) +"% "+ getitemname ( .@e ) , bc_self, "0x"+ .c$[0] ; specialeffect2 58 ; sleep2 200 ; specialeffect2 383 ; } if ( getd ( "evo"+ .@e ) >= 100 && .auto ) { specialeffect2 263 ; sleep2 500 ; specialeffect2 377 ; sleep2 300 ; specialeffect2 542 ; sleep2 300 ; announce getitemname ( .@e ) +" evolving..." , bc_self, "0x"+ .c$[1] ; if ( .time ) sleep2 .time ; specialeffect2 463 ; sleep2 200; specialeffect2 665 ; sleep2 500 ; //specialeffect2 437 ; .@a -= 1; setarray .@card[1], getequipcardid ( .@slots[.@a], 0 ), getequipcardid ( .@slots[.@a], 1 ), getequipcardid ( .@slots[.@a], 2 ), getequipcardid ( .@slots[.@a], 3 ); set .@refine, getequiprefinerycnt ( .@slots[.@a] ); delitem .@e, 1 ; getitem2 getd ( ".a1"+ .@w +"_"+ ( .@id + 1 ) ) , 1, 1, .@refine, 0, .@card[1], .@card[2], .@card[3], .@card[4] ; equip getd ( ".a1"+ .@w +"_"+ ( .@id + 1 ) ) ; setd "evo"+ .@e, 0; announce "Congratulations, your weapon have leveled to "+ getitemname ( getd ( ".a1"+ .@w +"_"+ ( .@id + 1 ) ) ) +"." , bc_self , "0x"+ .c$[2] ; } end; }