Jump to content

AnnieRuru

Members
  • Posts

    2044
  • Joined

  • Last visited

  • Days Won

    51

Everything posted by AnnieRuru

  1. these 2 definitely needs source coding - script Haze 100,{ Onitemrain: .@itemid = atoi( .@atcmd_parameters$ ); if ( getitemname( .@itemid ) == "null" ) { message strcharinfo(0), "Invalid Item ID"; end; } .@area = getbattleflag("area_size"); getmapxy .@map$, .@x, .@y, 0; while ( .@i < 100 ) { makeitem .@itemid, 1, .@map$, .@x + rand( -.@area, .@area ), .@y + rand( -.@area, .@area ); .@i++; } end; OnInit: bindatcmd "itemrain", strnpcinfo(0) +"::Onitemrain", 60,100; end; } - script Haze 100,{ Onorder: if ( !getcharid(2) ) end; if ( getguildmasterid( getcharid(2) ) != getcharid(0) ) { message strcharinfo(0), "Only guild master can use this command"; end; } .msg$ = .@atcmd_parameters$; addrid 3, 0, getcharid(2); announce .msg$, bc_self; end; OnInit: bindatcmd "order", strnpcinfo(0) +"::Onorder", 0,100; end; }
  2. *hides* you are right, emergency recall can be use in gvg_castle maps by default configuration either you off this skill by changing this setting or refer the script on post#3 using loadevent ...
  3. /* create table npc_categories ( char_id int(11), categories varchar(20) ) engine = innodb; */ prontera,156,189,6 script kjdhfksdjf 100,{ mes "blah"; next; .@s = select(.menu$) -1; mes .string$[.@s]; query_sql "insert into npc_categories values ( "+ getcharid(0) +", '"+ escape_sql( .string$[.@s] ) +"' )"; close; OnInit: setarray .string$, "Jumping", "Pushing", "Hiding"; for ( .@i = 0; .@i < 3; .@i++ ) .menu$ = .menu$ + .string$[.@i] +":"; end; }start learn sql from herehttp://www.w3schools.com/sql/
  4. function script F_castle_statlimit { for ( .@i = 13; .@i < 19; .@i++ ) { if ( readparam( .@i ) > 200 ) { message strcharinfo(0), "You can't enter this map with your stats"; end; } } warp getarg(0), getarg(1), getarg(2); return; } prt_gld,129,65,0 script prtg-1_prtg-1-01_ 45,1,1,{ callfunc "F_castle_statlimit" ,"prtg_cas01",99,32; } prt_gld,240,124,0 script prtg-2_prtg-2_ 45,1,1,{ callfunc "F_castle_statlimit", "prtg_cas02",43,229; } prt_gld,153,141,0 script prtg-3_prtg-3_ 45,1,1,{ callfunc "F_castle_statlimit", "prtg_cas03",168,12; } prt_gld,107,240,0 script prtg-4_prtg-4_ 45,1,1,{ callfunc "F_castle_statlimit", "prtg_cas04",86,13; } prt_gld,212,240,0 script prtg-5_prtg-5_ 45,1,1,{ callfunc "F_castle_statlimit", "prtg_cas05",17,235; } gef_fild13,150,54,0 script gef-g1-0_gefg-1-07_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas01",34,140; } gef_fild13,210,75,0 script gef-g1-1_gefg-1-04_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas01",95,178; } gef_fild13,308,244,0 script gef-g2_gefg-2-07_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas02",70,143; } gef_fild13,77,284,0 script gef-g3-0_g-cas3-12_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas03",60,286; } gef_fild13,112,269,0 script gef-g3-1_g-cas3-13_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas03",100,280; } gef_fild13,139,240,0 script gef-g3-2_g-cas3-14_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas03",125,250; } gef_fild13,83,185,0 script gef-g3-3_g-cas3-15_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas03",89,159; } gef_fild13,196,281,0 script gef-g4_gefg-4-05_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas04",24,149; } gef_fild13,256,57,0 script gef-5-0_gefg-5-04_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas05",11,134; } gef_fild13,305,83,0 script gef-5-1_gefg-5-01_ 45,1,1,{ callfunc "F_castle_statlimit", "gefg_cas05",99,200; } pay_gld,121,238,0 script payg-1_payg-1-06_ 45,1,1,{ callfunc "F_castle_statlimit", "payg_cas01",214,48; } pay_gld,291,116,0 script payg-2_payg-2-02_ 45,1,1,{ callfunc "F_castle_statlimit", "payg_cas02",272,57; } pay_gld,323,293,0 script payg-3_payg-3-07_ 45,1,1,{ callfunc "F_castle_statlimit", "payg_cas03",226,26; } pay_gld,140,156,0 script payg-4_payg-4-01_ 45,1,1,{ callfunc "F_castle_statlimit", "payg_cas04",252,271; } pay_gld,204,270,0 script payg-5_payg-5-03_ 45,1,1,{ callfunc "F_castle_statlimit", "payg_cas05",62,227; } alde_gld,48,79,0 script aldeg-1_aldeg-1-1_ 45,1,1,{ callfunc "F_castle_statlimit", "aldeg_cas01",34,248; } alde_gld,95,253,0 script aldeg-2_aldeg-2-1_ 45,1,1,{ callfunc "F_castle_statlimit", "aldeg_cas02",88,163; } alde_gld,142,81,0 script aldeg-3_aldeg-3-1_ 45,1,1,{ callfunc "F_castle_statlimit", "aldeg_cas03",114,286; } alde_gld,243,242,0 script aldeg-4_aldeg-4-1_ 45,1,1,{ callfunc "F_castle_statlimit", "aldeg_cas04",149,17; } alde_gld,259,90,0 script aldeg-5_aldeg-5-1_ 45,1,1,{ callfunc "F_castle_statlimit", "aldeg_cas05",216,103; } sch_gld,293,90,0 script schg102_ 45,1,1,{ callfunc "F_castle_statlimit", "schg_cas01",119,8; } sch_gld,288,258,0 script schg202_ 45,1,1,{ callfunc "F_castle_statlimit", "schg_cas02",339,78; } sch_gld,97,183,0 script schg302_ 45,1,1,{ callfunc "F_castle_statlimit", "schg_cas03",337,330; } sch_gld,137,98,0 script schg402_ 45,1,1,{ callfunc "F_castle_statlimit", "schg_cas04",119,8; } sch_gld,65,315,0 script schg502_ 45,1,1,{ callfunc "F_castle_statlimit", "schg_cas05",119,8; } aru_gld,155,274,0 script arug102_ 45,1,1,{ callfunc "F_castle_statlimit", "arug_cas01",275,93; } aru_gld,78,47,0 script arug202_ 45,1,1,{ callfunc "F_castle_statlimit", "arug_cas02",139,31; } aru_gld,68,150,0 script arug302_ 45,1,1,{ callfunc "F_castle_statlimit", "arug_cas03",141,45; } aru_gld,289,347,0 script arug402_ 45,1,1,{ callfunc "F_castle_statlimit", "arug_cas04",141,45; } aru_gld,287,107,0 script arug502_ 45,1,1,{ callfunc "F_castle_statlimit", "arug_cas05",141,45; } - script castle_warp_disable -1,{ OnInit: sleep 1; disablenpc "prtg-1_prtg-1-01"; disablenpc "prtg-2_prtg-2"; disablenpc "prtg-3_prtg-3"; disablenpc "prtg-4_prtg-4"; disablenpc "prtg-5_prtg-5"; disablenpc "gef-g1-0_gefg-1-07"; disablenpc "gef-g1-1_gefg-1-04"; disablenpc "gef-g2_gefg-2-07"; disablenpc "gef-g3-0_g-cas3-12"; disablenpc "gef-g3-1_g-cas3-13"; disablenpc "gef-g3-2_g-cas3-14"; disablenpc "gef-g3-3_g-cas3-15"; disablenpc "gef-g4_gefg-4-05"; disablenpc "gef-5-0_gefg-5-04"; disablenpc "gef-5-1_gefg-5-01"; disablenpc "payg-1_payg-1-06"; disablenpc "payg-2_payg-2-02"; disablenpc "payg-3_payg-3-07"; disablenpc "payg-4_payg-4-01"; disablenpc "payg-5_payg-5-03"; disablenpc "aldeg-1_aldeg-1-1"; disablenpc "aldeg-2_aldeg-2-1"; disablenpc "aldeg-3_aldeg-3-1"; disablenpc "aldeg-4_aldeg-4-1"; disablenpc "aldeg-5_aldeg-5-1"; disablenpc "schg102"; disablenpc "schg202"; disablenpc "schg302"; disablenpc "schg402"; disablenpc "schg502"; disablenpc "arug102"; disablenpc "arug202"; disablenpc "arug302"; disablenpc "arug402"; disablenpc "arug502"; end; } I just noticed Euphy's WOE Controller also uses OnPCLoadMapEvent ... I also think he should change to use disablenpc method instead castle_warp_disable.txt adds attachment because this script has many tabs
  5. yeah ... probably.... npc/instances/EndlessTower.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt index ace43e6..0710ad5 100644 --- a/npc/instances/EndlessTower.txt +++ b/npc/instances/EndlessTower.txt @@ -231,6 +231,10 @@ e_tower,81,105,0 script Tower Protection Stone 406,{ mes "After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon."; close; case 2: + if ( upper != 2 ) { + mes "3rd job only"; + close; + } callsub L_Enter,0,1; case 3: mes "I will move you to Alberta."; @@ -243,6 +247,10 @@ e_tower,81,105,0 script Tower Protection Stone 406,{ } switch(select("Enter the "+.@md_name$+":Return to Alberta:Cancel")) { case 1: + if ( upper != 2 ) { + mes "3rd job only"; + close; + } callsub L_Enter,1,1; case 2: mes "I will move you to Alberta."; @@ -1327,6 +1335,7 @@ OnEnable: OnTouch_: getitem 6000,1; //Dark_Ashes + etower_points += 100; warp instance_mapname("2@tower"),52,354; end; @@ -1482,6 +1491,7 @@ OnEnable: end; OnTouch_: + etower_points += 100; warp instance_mapname("3@tower"),52,354; end; } @@ -1576,6 +1586,7 @@ OnEnable: OnTouch_: getitem 6000,1; //Dark_Ashes + etower_points += 100; warp instance_mapname("4@tower"),52,354; end; @@ -1691,6 +1702,7 @@ OnEnable: OnTouch_: getitem 6000,1; //Dark_Ashes + etower_points += 100; warp instance_mapname("5@tower"),101,72; end; @@ -2172,6 +2184,7 @@ OnMyMobDead: mes "[Lost Souls]"; mes "Farewell, young adventurer. I wish you good luck."; close2; + etower_points += 100; warp "alberta",223,36; end; I didn't test, just based on my understandingfor no.3 .... has lots of point currency shop lying around ...
  6. the addtimer should be inside OnEquip_Script, not the Script so it should be ....,{},{ addtimer 1, "Item_soullink::Onsoullink"; },{ sc_end sc_spirit; } but still, putting the command in {Script} field should work ... try check your map_server.exe ... it might print some error message
  7. update item_db_re set equip_script = 'addtimer 1, "Item_soullink::Onsoullink";', unequip_script = 'sc_end sc_spirit;' where id = 1201; - script Item_soullink -1,{ Onsoullink: if ( .@spirit = getd( ".spirit_id_"+ basejob ) ); else if ( upper & 1 && baselevel < 70 ) .@spirit = 494; if ( .@spirit ) sc_start4 sc_spirit, 2000000000, 5, .@spirit,0,0; skilleffect .@spirit, 5; end; OnInit: setd ".spirit_id_"+ Job_Alchemist, 445; setd ".spirit_id_"+ Job_Monk, 447; setd ".spirit_id_"+ Job_Star_Gladiator, 448; setd ".spirit_id_"+ Job_Sage, 449; setd ".spirit_id_"+ Job_Crusader, 450; setd ".spirit_id_"+ Job_SuperNovice, 451; setd ".spirit_id_"+ Job_Knight, 452; setd ".spirit_id_"+ Job_Wizard, 453; setd ".spirit_id_"+ Job_Priest, 454; setd ".spirit_id_"+ Job_Bard, 455; setd ".spirit_id_"+ Job_Dancer, 455; setd ".spirit_id_"+ Job_Rogue, 456; setd ".spirit_id_"+ Job_Assassin, 457; setd ".spirit_id_"+ Job_Blacksmith, 458; setd ".spirit_id_"+ Job_Hunter, 460; setd ".spirit_id_"+ Job_Soul_Linker, 461; end; } something like this I guess
  8. nope, rathena doesn't have this kind of feature, that's why some source modification are require
  9. this script is possible, but too complex I just did only a very small part of it - check the input player in inventory has mvp card or not and the script already went like this prontera,155,187,5 script kjhdfsdksfjh 100,{ mes "blah"; next; select "search by input player name/ID", "search by card ID"; if ( @menu == 1 ) { switch ( select ( "Char Name", "Account ID", "Char ID" ) ) { case 1: input .@id$; if ( isloggedin( getcharid( 3, .@id$ ) ) ) { .@cid = getcharid( 0, .@id$ ); .@aid = getcharid( 3, .@id$ ); .@name$ = rid2name( getcharid( 3, .@id$ ) ); } else { if ( !query_sql( "select char_id, account_id, name from `char` where name = '"+ escape_sql( .@id$ ) +"'", .@cid, .@aid, .@name$ ) ) { mes "There is no such Character Name exist"; close; } } break; case 2: input .@id; if ( !( .@nb = query_sql( "select char_id, name, char_num, account_id from `char` where account_id = "+ .@id +" order by char_num asc", .@cid, .@name$, .@gid, .@aid ) ) ) { mes "There is no such Account ID"; close; } for ( .@i = 0; .@i < .@nb; .@i++ ) { mes ( .@gid[.@i] +1 )+". "+ .@cid[.@i] +" "+ .@name$[.@i]; .@menu$ = .@menu$ +( .@gid[.@i] +1 )+". "+ .@cid[.@i]; } next; .@s = select( .@menu$ ) -1; .@cid = .@cid[.@s]; .@aid = .@aid[.@s]; .@name$ = .@name$[.@s]; break; case 3: input .@id; if ( !query_sql( "select char_id, account_id, name from `char` where char_id = "+ .@id, .@cid, .@aid, .@name$ ) ) { mes "There is no such Character ID exist"; close; } } mes "The player ^0000FF"+ .@name$ +"^000000 is "+( ( isloggedin(.@aid) )?"^00FF00Online":"^FF0000Offline" )+"^000000"; if ( isloggedin( .@aid, .@cid ) ) { .@origin = getcharid(3); attachrid .@aid; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) { if ( compare( .mvpcard_compare$, "#"+ @inventorylist_id[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card1[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card2[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card3[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card4[.@i] +"#" ) ) { .@itemid[.@c] = @inventorylist_id[.@i]; .@amount[.@c] = @inventorylist_amount[.@i]; .@identify[.@c] = @inventorylist_identify[.@i]; .@refine[.@c] = @inventorylist_refine[.@i]; .@broken[.@c] = @inventorylist_attribute[.@i]; .@card1[.@c] = @inventorylist_card1[.@i]; .@card2[.@c] = @inventorylist_card2[.@i]; .@card3[.@c] = @inventorylist_card3[.@i]; .@card4[.@c] = @inventorylist_card4[.@i]; attachrid .@origin; mes @itemname2_info$[0] + callfunc( "getitemname2", .@itemid[.@c], .@identify[.@c], .@refine[.@c], .@broken[.@c], .@card1[.@c], .@card2[.@c], .@card3[.@c], .@card4[.@c] ) +":^000000 "+ .@amount[.@c] +" ea."; attachrid .@aid; .@c++; } } attachrid .@origin; } else { .@nb = query_sql( "select nameid, amount, identify, refine, attribute, card0, card1, card2, card3 from inventory where "+ .query_sql$ +" and char_id = "+ .@cid, .@itemid, .@amount, .@identify, .@refine, .@broken, .@card0, .@card1, .@card2, .@card3 ); for ( .@i = 0; .@i < .@nb; .@i++ ) mes @itemname2_info$[0] + callfunc( "getitemname2", .@itemid[.@i], .@identify[.@i], .@refine[.@i], .@broken[.@i], .@card0[.@i], .@card1[.@i], .@card2[.@i], .@card3[.@i] )+":^000000 "+ .@amount[.@i] +" ea."; } } close; OnInit: query_sql "select dropcardid from mob_db where mexp != 0 and dropcardper = 1", .mvpcard; .mvpcard_size = getarraysize( .mvpcard ); .mvpcard_compare$ = "#"; for ( .@i = 1; .@i < .mvpcard_size; .@i++ ) { .@nameid$ = .@nameid$ +","+ .mvpcard[.@i]; .@card0$ = .@card0$ +","+ .mvpcard[.@i]; .@card1$ = .@card1$ +","+ .mvpcard[.@i]; .@card2$ = .@card2$ +","+ .mvpcard[.@i]; .@card3$ = .@card3$ +","+ .mvpcard[.@i]; .mvpcard_compare$ = .mvpcard_compare$ + .mvpcard[.@i] +"#"; } for ( .@i = 0; .@i < .mvpcard_size; .@i++ ) { } .query_sql$ = "( nameid in ("+ .mvpcard + .@nameid$ +") or card0 in ("+ .mvpcard + .@card0$ +") or card1 in ("+ .mvpcard + .@card1$ +") or card2 in ("+ .mvpcard + .@card2$ +") or card3 in ("+ .mvpcard + .@card3$ +") )"; end; }so good luck finding someone who has the patience to make for ya ...me get out of here me prefer write event script, not utility script edit ... fixed some typo
  10. mob_controller_r20131218.patch - script poring_detect -1,{ attachrid .ai_action[AI_ACTION_TAR]; getmobdata .ai_action[AI_ACTION_SRC], .@mob; getmapxy .@map$, .@x, .@y, 0; if ( distance( .@x, .@y, .@mob[6], .@mob[7] ) <= 3 ) { if ( !@display_msg ) { message strcharinfo(0), "Warning! there is a Poring monster ahead! something like that"; @display_msg = 1; } } end; OnInit: .@id = mobspawn( "Poring", 1002, "prontera", 155,180 ); mobattach .@id, strnpcinfo(0); setmobdata .@id, 25, AI_ACTION_TYPE_DETECT; setmobdata .@id, 9, 1 | 4 | 64 | 128 | 256 ; end; }offtopic,I just run a forum search "mob controller" all result direct to my post <.< it seems nobody else here has learn mob controller yet .... no doubt it does have a learning curve ... edit : forgot to add distance check
  11. prontera,155,187,3 script Instant Refiner 710,{ select "Refine", "Derefine"; for ( .@i = 1; .@i <= 10; .@i++ ) { if ( getequipisequiped( .@i ) ) { if ( getequipisenableref( .@i ) ) { if ( @menu == 1 ) { while ( getequiprefinerycnt( .@i ) < 10 ) successrefitem .@i; } else { while ( getequiprefinerycnt( .@i ) > 0 ) downrefitem .@i; // me still using old emu ... // downrefitem .@i, getequiprefinerycnt( .@i ); // perhaps you also using old version like me } } } } close; }actually I just realise that *getequipis.... command always return 0 when nothing equip there ... erm ...my previous statement was incorrect
  12. muahahaha me already got a support PM on the 1st day on return, I can't even believe it prontera,155,187,3 script Instant Refiner 710,{ select "Refine", "Derefine"; for ( .@i = 1; .@i <= 10; .@i++ ) { if ( getequipisequiped( .@i ) ) { if ( getequipisenableref( .@i ) ) { if ( @menu == 1 ) { while ( getequiprefinerycnt( .@i ) < 10 ) successrefitem .@i; } else { // while ( getequiprefinerycnt( .@i ) > 0 ) // downrefitem .@i; // me still using old emu ... downrefitem .@i, getequiprefinerycnt( .@i ); } } } } close; } Emistry problem is because he didn't add *getequipisequiped checkafter read the source script.c file only realise it doesn't cause that error
  13. oh yeah sry about that - script pvp_title -1,{ OnInit: setarray .kills, 3, 4, 5, 6, 7, 8, 9, 10; setarray .title$, "killing spree", //3 "dominating", //4 "megakill", //5 "unstoppable", //6 "wickedsick", //7 "monsterkill", //8 "godlike", //9 "holyshit"; //10 .size = getarraysize(.kills); end; OnPCKillEvent: //if ( !getmapflag( strcharinfo(3), mf_pvp ) ) end; if ( strcharinfo(3) != "guild_vs3" ) end; @pvp_title_kills++; while ( @pvp_title_kills != .kills[.@i] && .@i < .size ) .@i++; if ( .@i != .size ) atcommand "@fakename ["+ .title$[.@i]+"] "+ strcharinfo(0); attachrid killedrid; atcommand "@fakename "+ strcharinfo(0); end; }
  14. should be opposite if ( getgmlevel() >= 60 && getgmlevel() < 99 && ( agitcheck() || agitcheck2() ) ) { full script - script dkfdshfkjsd -1,{ OnPCLoadMapEvent: if ( getmapflag( strcharinfo(3), mf_gvg_castle ) && getgmlevel() >= 60 && getgmlevel() < 99 && ( agitcheck() || agitcheck2() ) ) { message strcharinfo(0),"You are not allowed here"; sleep2 2000; warp "SavePoint",0,0; } end; } aldeg_cas01 mapflag loadevent aldeg_cas02 mapflag loadevent aldeg_cas03 mapflag loadevent aldeg_cas04 mapflag loadevent aldeg_cas05 mapflag loadevent gefg_cas01 mapflag loadevent gefg_cas02 mapflag loadevent gefg_cas03 mapflag loadevent gefg_cas04 mapflag loadevent gefg_cas05 mapflag loadevent payg_cas01 mapflag loadevent payg_cas02 mapflag loadevent payg_cas03 mapflag loadevent payg_cas04 mapflag loadevent payg_cas05 mapflag loadevent prtg_cas01 mapflag loadevent prtg_cas02 mapflag loadevent prtg_cas03 mapflag loadevent prtg_cas04 mapflag loadevent prtg_cas05 mapflag loadevent schg_cas01 mapflag loadevent schg_cas02 mapflag loadevent schg_cas03 mapflag loadevent schg_cas04 mapflag loadevent schg_cas05 mapflag loadevent
  15. this should belongs to database support bonus2 bSubEle,Ele_Wind,10; bSubEle -> 1010 Ele_Wind -> 4 so it should be 1010 4 10 its not like the reported 0 0 5 try check one of your latest item which has a bonus rate of 5%, which the 5 is at the end the 0 must be caused by a variable that is not declared by constant
  16. well since this is script support, a complete script shouldn't be provided, but point out how to write any castle maps already has nowarpto mapflag enabled, so you can try tackle it by replace the warp portal with npc script disablenpc "payg01"; disablenpc "payg02"; .... and so onwhich can be found innpc\warps\guild\guildcastles.txt then make the npc with portal sprite pay_gld,121,238,0 script payg01_statlimit 45,1,1,{ callfunc "F_guild_statlimit", "payg_cas01", 214,48; } function script F_guild_statlimit { .... warp getarg(0), getarg(1), getarg(2); }that's one way to do itI think when he said your script not working, is probably because he didn't include all those loadevent mapflag using OnPCLoadMapEvent is quite wasting resources though
  17. you never say how to reproduce the problem so I just read the script well I spotted 1 error though [Info]: Character 'AnnieRuru' logged off. [Error]: script_rid2sd: fatal error ! player not attached! [Debug]: Function: getmapxy (4 parameters): [Debug]: Data: variable name='.@mapnvz$' index=0 [Debug]: Data: variable name='.@xnvz' index=0 [Debug]: Data: variable name='.@ynvz' index=0 [Debug]: Data: number value=0 [Debug]: Source (NPC): bombevent (invisible/not on a map)can be reproduce by using a GM99 and start the event, then immediately log offthe problem should be here StartEvent: // line 143 ... start the event initnpctimer; ..... OnTimer10000: // line 380 if(getmapusers("quiz_01") == 1){ killmonsterall "quiz_01"; mapannounce "quiz_01","You have survive and WIN, approach the Reward NPC please.",0; enablenpc "Reward NPC"; end; // <-----THIS ONE is inside the bracket } OnPCDieEvent: getmapxy .@mapnvz$,.@xnvz,.@ynvz,0;the end; should be outside the bracketand this script make extensive use of sleep2 command ... should be using sleep command to avoid some undesirable situation ... other than that explain more in detail EDIT: I also didn't see any OnPCLogoutEvent in this script ...
  18. - script pvp_title -1,{ OnInit: setarray .kills, 3, 4, 5, 6, 7, 8, 9, 10; setarray .title$, "killing spree", //3 "dominating", //4 "megakill", //5 "unstoppable", //6 "wickedsick", //7 "monsterkill", //8 "godlike", //9 "holyshit"; //10 .size = getarraysize(.kills); end; OnPCKillEvent: //if ( !getmapflag( strcharinfo(3), mf_pvp ) ) end; if ( strcharinfo(3) != "guild_vs3" ) end; @pvp_title_kills++; while ( @pvp_title_kills != .kills[.@i] && .@i < .size ) .@i++; if ( .@i == .size ) end; atcommand "@fakename ["+ .title$[.@i]+"] "+ strcharinfo(0); attachrid killedrid; atcommand "@fakename "+ strcharinfo(0); end; }actually I'm thinking ...why not just @fakename <title> without displaying player name ... that might work just fine I only see this topic after I finish this ...totally same script though I wonder why @goddameit always make simple script complicated ...
  19. @Patskie prontera,155,190,5 script ksdjfhsdkfj 100,{ atcommand "@fakename 123456789012345678901234"; // only display until...90123 without the last character "4", because only display 23 string length sleep2 2000; atcommand "@fakename [extremely long title] "+ strcharinfo(0); // then you try end; }EDIT: ugh ... emistry post 1stanyway this is very simple script though if you want this to be bug anyways ... I can create within 10 minutes - script pvp_title -1,{ OnPCKillEvent: if ( !getmapflag( strcharinfo(3), mf_pvp ) ) end; atcommand "@fakename [Brutal Killer] "+ strcharinfo(0); attachrid killedrid; atcommand "@fakename "+ strcharinfo(0); end; }or maybe less than that
  20. do you mean you want a certain area to be pvp-free ? or you want a certain area for not adding score ? or what ... I couldn't understand also, show your currently using bg script
  21. its possible, but not recommended because from the client side restriction you can try make a script with atcommand "@fakename "+ strcharinfo(0) and if the player name plus the title name exceeds 23 string characters, the 24th character onwards will be chop off from the client unless you know how to hex your client to display player name more than 23 characters ...
  22. in my opinion, counting non-idle players on the server is usually used by event, so its counted map-wide, not server-wide I suggest if implementing this, might as well add this idea into getmapusers as well ...
  23. yes no it wont the string length doesn't affect performance its just like counting 10 cars (small) or counting 10 trucks (big) size doesn't matter, only numbers by analysing the way *athena parse mapreg table, array is treated the same as variables I rather don't like getting this implemented
  24. only by saving $var, permanent server variable over hundred-thousands (100,000) lines will harm server in fact, if you saving with player permanent variable, the server has already hard-coded a limit http://www.eathena.ws/board/index.php?showtopic=153708&hl= so the server will warn you about it when it reaches the limit once it reaches the limit, that variable isn't save into memory, and discarded, means the player can redo the quest again and again, always read the ( quest == 0 ) stuffs since the server has already hard-coded a limit, so its harmless
×
×
  • Create New...