Jump to content

Skorm

Forum Moderator
  • Posts

    1268
  • Joined

  • Last visited

  • Days Won

    33

Everything posted by Skorm

  1. " "+ generateRandSeq() With " Player"
  2. Maybe something like this? Still untested. - script fake_name -1,{ OnInit: .eventmap$ = "eventmap"; function generateRandSeq { .@len = getarg( 0, 3 ); .@lib$ = getarg( 1, "abcdefghijklmnopqrstuvwxyz" ); for ( .@i = 1; .@i <= .@len; .@i++ ) { .@rand = rand( getstrlen( .@lib$ ) ); .@seq$ += charat( .@lib$, .@rand ); if( getarg( 2, 0 ) ) .@lib$ = delchar( .@lib$, .@rand ); } return .@seq$; } end; OnPCLoadMapEvent: if( strcharinfo(3) == .eventmap$ ) { function generateRandSeq; @fakename = 1; detachrid; charcommand "#fakename "+ .@strcharinfo$ +" "+ generateRandSeq(); } end; OnPCDieEvent: if( strcharinfo(3) == .eventmap$ ) warp "SavePoint",0,0; end; OnPCStatCalcEvent: if ( @fakename && strcharinfo(3) != .eventmap$ ) { .@strcharinfo$ = strcharinfo(0); @fakename = 0; detachrid; charcommand "#fakename "+ .@strcharinfo$; } } eventmap mapflag loadevent
  3. OnPCLoginEvent: if( $TOPPK$ == strcharinfo(0) && itemget < gettimetick(2) ) { itemget = gettimetick(2) + 500000; getitem 501,1; }
  4. Yes but it depends on the script you're running for top pvp leader.
  5. use... freeloop(1); or with eAthena... if ( ! ( set(.@l,.@l+1) % 600) ) sleep2 1;
  6. Skorm

    GM Room

    izlude_in,30,171,5 script gm_house 139,{ // This is where the gm house is. end; OnRefreshCount: set(.gms,0); set(.usr,0); deletearray .a_gms; addrid(1); if(getgmlevel()>=.gmlvl) set .a_gms[set(.gms,.gms+1)], getcharid(3); else set(.usr,.usr+1); end; /* query_sql( "SELECT `login`.`account_id`"+ "FROM `login`"+ "INNER JOIN `char`"+ "ON `login`.`account_id`=`char`.`account_id`"+ "WHERE `login`.`group_id`>="+.gmlvl+" AND `char`.`online`=1;", .aid ); for(set(.gms,0);.gms<getarraysize(.aid);set(.gms,.gms+1)) { attachrid(.aid[.gms]); if(strcharinfo(3)!=.map$) deletearray .aid[.gms],1; set(.gms,.gms-1); } set(.gms,.gms+1); attachrid(.aid[0]); addrid(1); if(getgmlevel()<.gmlvl) set(.usr,.usr+1); end;*/ OnPlayerHelp: if(getgmlevel()>=.gmlvl) { warp .map$,.x,.y; end; } donpcevent "gm_house::OnRefreshCount"; if(.gms&&!.usr&&!.que) { donpcevent "gm_house::OnAttachGms"; message strcharinfo(0),"You'll be warped to the help desk in 10 seconds."; set(.que,1); showdigit -10,2; sleep2(10000); if(playerattached()) { showdigit 0,0; warp .map$,.x,.y; } set(.que,0); } else { message strcharinfo(0),"The GMs are currently busy or unavailable please try again later."; } end; /*OnAttachGms: for(set(.@a,0);.@a<.gms;set(.@a,.@a+1)) { attachrid(.aid[.@a]); showdigit 10,3; soundeffect "¹öÆ°¼Ò¸®.wav",0; message strcharinfo(0),"A player is entering you have 10 seconds to prepare."; } end;*/ OnAttachGms: for(set(.@a,1);.@a<=.gms;set(.@a,.@a+1)) { attachrid(.a_gms[.@a]); showdigit -10,2; soundeffect "aster_die.wav",0; message strcharinfo(0),"A player is entering you have 10 seconds to prepare."; sleep2(10000); showdigit 0,0; } end; OnInit: bindatcmd "gmhelpme","gm_house::OnPlayerHelp"; getmapxy(.map$,.x,.y,1); set .gmlvl, 60; } prontera,155,179,5 script gm_house 45,3,3,{ OnTouch: doevent("gm_house::OnPlayerHelp"); } // Warp Portal
  7. You could emulate that with my script. https://rathena.org/board/files/file/3064-server-news/
  8. Skorm

    Menu Script

    Could be done better with menus instead... prontera,100,100,1 script test_npc 100,{ donpcevent("test_npc::OnBuildList"); .@len = getarraysize(.gm_list$); mes "[ test_npc ]"; if( !.@len ) { mes "Sorry no gms are online right now."; close; } mes "Input the gms charid to view information."; for(.@a = 0; .@a < .@len; .@a++ ) mes ""+.gm_list$[.@a]; next; input(.@input); mes "[ test_npc ]"; for(.@a = 0; .@a < .@len; .@a++ ) if( .gm_list[.@a] == .@input ) mes .gm_info$; if( .@a == .@len ) mes "I couldn't find that ID Sorry..."; close; OnBuildList: deletearray .gm_list$; deletearray .gm_list; deletearray .gm_info$ addrid(0); if( getgmlevel() >= 60 ) { .gm_list$[getarraysize(.gm_list$)] = strcharinfo(0)+" - "+getcharid(0); .gm_list[getarraysize(.gm_list)] = getcharid(0); .gm_info$[getarraysize(.gm_info$)] = "Class: "+ Class +", Base Level: "+ BaseLevel +", Job Level: "+ JobLevel +"."; } end; }
  9. Yeah you screwed up big time! Next time use code box prt_in,73,132,3 script Squishy Pinky Poring 1002,{ //poring if ( checkquest(20501,HUNTING) != 0 || checkquest(20501,HUNTING) != 1 ) { //Active. mes "Still here?"; mes "Go Continue killing 500 Porings"; close; } if (checkquest(20501,HUNTING) != 2) { // Completed. mes "Po~~Poring~"; mes "Your a great Poring Killer"; emotion e_kis; close; } else { mes "[ " + strnpcinfo(1) + " ]"; mes "Po~~Poring~"; mes "Well Done"; getexp 3000,500; erasequest 20501; close; } mes "[ " + strnpcinfo(1) + " ]"; mes "Po~~Poring~"; mes "You seek adventure?"; next; switch( select("Yes:No") ) { case 1: mes "[ " + strnpcinfo(1) + " ]"; mes "Really?!"; mes "That's great!"; next; mes "[ " + strnpcinfo(1) + " ]"; mes "Please kill 500 Porings"; mes "The Reward will be of great Fortune"; next; mes "Po~~Poring~"; mes "Goodluck killing 500 Porings!"; close2; setquest 20501; end; case 2: mes "[ " + strnpcinfo(1) + " ]"; mes "Your Missing some great Treasure here"; close; } close; } Or I'll be mad.
  10. Disclaimer: ----------------------------------------------------------------------------------------------------------------------------------------------------------- Sorry if this isn't the best read ever. It's certainly not formal in anyway and it's super trimmed. I just wanted to write it down once. ------------------------------------------------------------------------------------------------------------------------------------------------------------ I'm kinda stuck in my own paradox of wanting to help everyone but in doing so unable to help anyone. Ultimately I think something needs to change and maybe this is it. Goodluck, everyone, stay golden.
  11. - script item_get -1,{ OnPCKillEvent: if(getmapflag(strcharinfo(3),mf_pvp)) getitem 501, 10; }
  12. Maybe like this? - script hold -1,{ OnInit: bindatcmd("hold", strnpcinfo(3)+"::OnHold"); end; OnHold: if ( !@Hold ) { set @Hold, 1; message strcharinfo(0), "Hold mode is ON."; pcblockmove getcharid(3), 1; } else { set @Hold, 0; message strcharinfo(0), "Hold mode is OFF."; pcblockmove getcharid(3), 0; } }
  13. - script item_get -1,{ OnPCKillEvent: getitem 501, 10; }
  14. Sounds like a client problem are you using the correct exe with packetver?
  15. I'm glad to see people are taking interest in this... I really need to just remake the whole thing... It's just a mess. In the process of debugging and optimizing it just got really convoluted.
  16. I imagine it's because your missing RixSquirrel_10.eot font. Btw I see your avatar and always think it's Annie ~... *sigh*
  17. Ive add code box through mobile but i recommend reposting the code to preserve tabs.
  18. Yeah I like that one. When I first learned of it I couldn't stop listening to it xD https://soundcloud.com/maxoelectronic/h-o-n-e-y-b-e-l-l
  19. Just sell the items you want to convert to cashpoints to this npc he also sells the items for cashpoints to convert them back. - shop exg_exp -1,501:50. prontera,100,100,5 script Exchanger Express 100,{ callshop "exg_exp",0; npcshopattach "exg_exp"; end; OnBuyItem: setarray .@choice$, "@bought_", "bought", "-1", "@item"; if( !checkweight2(getd(.@choice$+"nameid"),getd(.@choice$+"quantity")) ) { mes "I'm sorry but purchasing this many items would put you over weight!"; close; } OnSellItem: if( !getarraysize(.@choice$) ) setarray .@choice$, "@sold_", "sold", "1", "@delitem"; .@len = getarraysize(getd(.@choice$+"nameid")); for ( .@i = 0; .@i < .@len; .@i++ ) { if( .@choice$[1] == "sold" ) { if ( countitem(@sold_nameid[.@i]) < @sold_quantity[.@i] || @sold_quantity[.@i] <= 0 ) { mes "Something went wrong!"; close; } } else { if ( @bought_quantity[.@i] <= 0 ) { mes "Something went wrong..."; close; } } for ( .@a = 0; .@a < .len; .@a = .@a + 2 ) { if( getd(.@choice$+"nameid["+.@i+"]") == .item_base[.@a] ) { if ( #CASHPOINTS < .item_base[.@a+1] * @bought_quantity[.@i] && .@choice$[1] != "sold" ) { mes "You have insufficient cashpoints."; close; } atcommand .@choice$[3]+" "+.item_base[.@a]+" "+getd(.@choice$+"quantity["+.@i+"]"); .@cashpoints = ( getd(.@choice$+"quantity["+.@i+"]") * .item_base[.@a+1] ) * atoi(.@choice$[2]); #CASHPOINTS = #CASHPOINTS + .@cashpoints; dispbottom getitemname(.item_base[.@a]) +" x"+ getd(.@choice$+"quantity["+.@i+"]") +" "+ .@choice$[1] +" for "+ .@cashpoints +" CASHPOINTS!"; } } } deletearray getd(.@choice$+"quantity"); deletearray getd(.@choice$+"nameid"); mes "Deal completed."; close; OnInit: setarray .item_base, 7539, 3, 7227, 5, 671, 10; .len = getarraysize(.item_base); npcshopdelitem "exg_exp",501; for ( .@a = 0; .@a < .len; .@a = .@a + 2 ) npcshopadditem "exg_exp",.item_base[.@a],.item_base[.@a+1]; }
  20. Skorm

    Resting System

    Perhaps something like this? http://rathena.org/board/topic/93779-hourly-rewards-version-2
  21. Skorm

    ANTI DL IP

    prontera,102,102,3 script IP_WARP 45,3,3,{ end; OnTouch: if( getcharip() == "127.0.0.1" ) warp "prontera",0,0; end; }
  22. And you're sure you have /effect enabled? It works fine for me what emulator are you using?
×
×
  • Create New...