Jump to content

Capuche

Developer
  • Posts

    2407
  • Joined

  • Last visited

  • Days Won

    52

Everything posted by Capuche

  1. you can use OnNPCKillEvent - script jinonono -1,{ OnNPCKillEvent: if ( killedrid == 1002 ) getexp 10000,5000;// + <base xp>, + <job xp> end; }
  2. http://www.eathena.ws/board/index.php?showtopic=237765
  3. try prt_fild01,1,1,0 script #dummy 111,2,2,{ end; OnTouch: unitkill getcharid(3); } - script main_bolt -1,{ OnInit: while(1) { do { .@x = rand(400); .@y = rand(400); } while( !checkcell( "prt_fild01",.@x,.@y,cell_chkpass ) ); movenpc "#dummy",.@x,.@y; enablenpc "#dummy"; specialeffect EF_LIGHTBOLT,AREA,"#dummy"; sleep 1000; disablenpc "#dummy"; sleep 30000; } }
  4. try prt_fild01,170,322,5 script sdfg 56,{ setarray .@equipped, getequipid( EQI_COSTUME_HEAD_LOW ), getequipid( EQI_COSTUME_HEAD_MID ), getequipid( EQI_COSTUME_HEAD_TOP ), getequipid( EQI_COSTUME_GARMENT ); .@s = select( ( .@equipped[0] > 0 ? "Deslot costume low" : "" ), ( .@equipped[1] > 0 ? "Deslot costume mid" : "" ), ( .@equipped[2] > 0 ? "Deslot costume top" : "" ), ( .@equipped[3] > 0 ? "Deslot costume garment" : "" ) ) -1; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) if ( .@equipped[.@s] == @inventorylist_id[.@i] && @inventorylist_equip[.@i] > 1000 && @inventorylist_equip[.@i] < 9000 ) break; if ( !@inventorylist_card1[.@i] && !@inventorylist_card1[.@i] && !@inventorylist_card1[.@i] && !@inventorylist_card1[.@i] ) { mes "none card inserted"; close; } delequip (11+.@s); getitem2 .@equipped[.@s],1,1,@inventorylist_refine[.@i],@inventorylist_attribute[.@i],0,0,0,0; for ( .@j = 1; .@j <= 4; .@j++ ) if ( getd( "@inventorylist_card"+ .@j +"["+ .@i +"]" ) > 0 ) getitem getd( "@inventorylist_card"+ .@j +"["+ .@i +"]" ),1; end; }
  5. well to set the faction id 10 to 0 in a npc query_sql "update `your_faction_table` set `faction_id` = 0 where `faction_id` = 10";
  6. trust is there are none cmd in the main repo to insert an item in the storage of a player online, and none command to check if the player online opened his storage. Also it's not efficient by sql, and there is a possibility to exceed the max storage. The best way should be a source mod, "additemstorage"
  7. Capuche

    Named Weapon

    By enchant you mean sth like insert a card in a slot of an named item? if so you can't
  8. Capuche

    Job changer

    add a resetstatus; after the jobchange in a jobmaster and it's done
  9. Capuche

    Named Weapon

    yes btw slot 1 is busy with the enchant is made in slot 2
  10. Capuche

    Named Weapon

    Read getitem2 in docs/script_commands to enchant an item to check if an item is made by someone, same thing as above check if @card4 > 150000, if so it's an item named .@char_id = @card3 + ( @card4 << 16 ) to retrieve the char id
  11. alright then replace 0 by 1 in if( compare( .@concat$, strcharinfo(3) ) == 0 ){
  12. wut? this script is working from my test.. I have none issue
  13. OnInit: bindatcmd "sleep",strnpcinfo(3)+"::OnSLEEP", 1,100; end;// <-- add this
  14. setarray .Map$[0],"n_pvp","ufc_pvp2","ufc_pvp3","aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05","gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05","payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05","prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05"; .@concat$ = implode( .Map$, "|" ); if( compare( .@concat$, strcharinfo(3) ) == 0 ){ message strcharinfo(0),"This Command goes here not !";
  15. it's not a bug joven15 wanted add an Announce after getitem
  16. the event will automatically start if it's not already on - it won't stop the previous one yes
  17. Try to increase in pc.h #define MAX_PC_BONUS 10
  18. there is a mistake makeitem .@itemid, 1, .@map$, .@x + .@dx, .@y + dy; should be makeitem .@itemid, 1, .@map$, .@x + .@dx, .@y + .@dy;
  19. prontera,150,150,4 script load 112,5,5,{ if ( @delay_reused > gettimetick(2) ) end; if ( BaseLevel >= 90 ) { if ( free_one_hour <= gettimetick(2) ) { if ( free_one_hour ) free_one_hour = 0; if ( Zeny < 1500 ) { dispbottom "you need 1500 zeny"; end; } Zeny = Zeny - 1500; } else dispbottom "The healer is free for "+ callfunc( "timeleft__", ( free_one_hour - gettimetick(2) ) ); } specialeffect2 313; percentheal 100,100; sc_start SC_BLESSING,360000,5; sc_start SC_INCREASEAGI,360000,5; if ( BaseLevel <= 50 ) { sc_start SC_KYRIE,360000,5; skilleffect "PR_KYRIE",0; sc_start SC_GLORIA,360000,5; skilleffect "PR_GLORIA",0; sc_start SC_MAGNIFICAT,360000,5; skilleffect "PR_MAGNIFICAT",0; } @delay_reused = gettimetick(2) + 3; end; OnTouch: if ( BaseLevel < 90 ) end; if ( free_one_hour && free_one_hour <= gettimetick(2) ) free_one_hour = 0; if ( free_one_hour ) { mes "The healer is free for "+ callfunc( "timeleft__", ( free_one_hour - gettimetick(2) ) ); mes "you can only pay for 1 hour."; mes "update?"; } else mes "You can pay a fee for one hour of use at 20,000z"; next; if ( select( "Leave", "Pay" ) == 1 ) close; if ( Zeny < 20000 ) { mes "You need 20000 zeny"; close; } Zeny = Zeny - 20000; free_one_hour = gettimetick(2) + 3600; mes "The healer is free for 1 hour"; close; } function script timeleft__ { function s { return ( getarg(0) > 1 ? "s " : " " ); } if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0); .@week = .@left / ( 86400 * 7 ); .@day = .@left / 86400; .@hour = .@left % 86400 / 3600; .@min = .@left % 3600 / 60; .@sec = .@left % 60; if( .@week ) return ( .@week +" week"+ s( .@week ) + .@day +" day"+ s( .@day ) + .@hour +" hour"+ s( .@hour ) ); else if ( .@day ) return ( .@day +" day"+ s( .@day ) + .@hour +" hour"+ s( .@hour ) ); else if ( .@hour ) return ( .@hour +" hour"+ s(.@hour) + .@min +" min" +s( .@min ) ); else if ( .@min ) return ( .@min +" min"+ s( .@min ) + .@sec +" sec"+ s( .@sec ) ); else return ( .@sec +" sec"+ s( .@sec ) ); }
  20. you probably use an option to display the hat on the player from what he said.. Your 'hacker' clearly said it's a script issue. Maybe post the script ? otherwise I don't understand what you want from us
  21. - script Haze2 -1,{ Onitemrain: .@itemid = atoi( .@atcmd_parameters$ ); .@amount = atoi( .@atcmd_parameters$[1] ); if ( getitemname( .@itemid ) == "null" ) { message strcharinfo(0), "Invalid Item ID"; end; } if ( .@amount <= 0 || .@amount > 100 ) .@amount = 100; .@area = getbattleflag("area_size"); getmapxy .@map$, .@x, .@y, 0; while ( .@i < .@amount ) { do { .@dx = rand( -.@area, .@area ); .@dy = rand( -.@area, .@area ); } while( !checkcell( .@map$,(.@x+.@dx),(.@y+.@dy),cell_chkpass ) ); makeitem .@itemid, 1, .@map$, .@x + .@dx, .@y + dy; .@i++; } end; OnInit: bindatcmd "itemrain", strnpcinfo(0) +"::Onitemrain", 60,100; end; }
  22. no problem try checkriding() to check if the player mount a peco peco ismounting() to check if the player use a cash mount on a side note I'm not sure what you want to check in this condition if(roclass(eaclass()|EAJL_UPPER)) but be aware that roclass will return -1 if there is no valid class and if(-1) is true
  23. try if(roclass(eaclass()|EAJL_UPPER)) changebase BaseJob;
×
×
  • Create New...