Jump to content

astralprojection

Members
  • Content Count

    333
  • Joined

  • Last visited

  • Days Won

    8

Reputation Activity

  1. Like
    astralprojection reacted to Cretino in Menu Pagination (Is it possible?)   
    Hey, this is one way to do it.
     
     
  2. Like
    astralprojection reacted to Tome130 in Trying to remove the tip of the day popup   
    conf/map/battle/client.conf
    last line
    show_tip_window: false
  3. Like
    astralprojection got a reaction from evilpuncker in I want to use cash shop npc.   
    Refer to this
    https://github.com/HerculesWS/Hercules/blob/4991d6905ca999a74824181f1677429d2de409e3/doc/sample/npc_trader_sample.txt#L18
     
  4. Like
    astralprojection got a reaction from evilpuncker in What's happen, I found weird IP ?   
    IP's are recycled upon termination of machine rental or services. maybe previous user moved/migrated to new ip but there are clients is still trying to send packets to old ip.  i dont know.
  5. Upvote
    astralprojection got a reaction from bWolfie in What's happen, I found weird IP ?   
    IP's are recycled upon termination of machine rental or services. maybe previous user moved/migrated to new ip but there are clients is still trying to send packets to old ip.  i dont know.
  6. Like
    astralprojection got a reaction from Caspian in MvP Controller   
    //===== Hercules Script ====================================== // MVP Spawn Controller //===== By: ================================================== // astralprojektion //===== Current Version: ===================================== // 1.3 //===== Description: ========================================= // Control MVP Spawn with script. MVP will not respawn on server start or reload using flag. // Delete or Comment all MVP and mini boss spawn at npc/pre-re/mobs/dungeons/ or /fields. // Make sure set at NifInvasion to make it work. // OnLoDDead: // // Set LOD as dead ang next respawn is 5580sec // $S11373 = 2; $T11373 = (gettimetick(2) + 5580); // //===== Additional Comments: ================================= // 1.0 Initial Release // 1.1 Use TimeStamp when mvp is killed // Fixed typo on MVP_Map array. // 1.2 Set Variables to Global. // 1.3 Include some Mini Boss on the controller // Added PvP On/Off MvP is alive // Integrate LOD invasion // Added @mvpcontroller command to reset all or a specific mvp and other settings. //============================================================ /* Credits to Meko https://herc.ws/board/files/file/326-array-manipulation-functions/ */ function script array_find { .@size = getarraysize(getarg(0)); .@neq = getarg(2, false); freeloop(true); for (.@i = getarrayindex(getarg(0)); .@i < .@size; ++.@i) { if ((.@neq && (getelementofarray(getarg(0), .@i) != getarg(1))) || (!(.@neq) && (getelementofarray(getarg(0), .@i) == getarg(1)))) { freeloop(false); return .@i; } } freeloop(false); return -1; } - script mvpcontroller FAKE_NPC,{ end; OnNPCKillEvent: if(array_find(.mvpid, killedrid) >= 0 ){ for( .@i = 0; .@i < getarraysize(.mvpid); .@i++ ) { if( killedrid == .mvpid[.@i] && strcharinfo(PC_MAP) == .mvpmaps$[.@i]) { // 1 - Alive 2 - Dead setd("$S"+.mvpa[.@i]+.mvpid[.@i], 2); // current time + respawn time (seconds) setd("$T"+.mvpa[.@i]+.mvpid[.@i],gettimetick(2)+(.mvptime[.@i]*60)); setd("$P"+.mvpa[.@i]+.mvpid[.@i]+"$", strcharinfo(PC_NAME)); if( killedrid == 1120 || killedrid == 1096 || killedrid == 1388 ) { if(.announce) announce "A mini boss monster [ "+strmobinfo(1,killedrid)+" ] at "+strcharinfo(PC_MAP)+" has been slain.",bc_all; } else { if(.announce) announce "A boss monster [ "+strmobinfo(1,killedrid)+" ] at "+strcharinfo(PC_MAP)+" has been slain.",bc_all; if(.pvp){ removemapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpoff .mvpmaps$[.@i]; } } break; } } } end; OnSettings: while(1){ switch(select( " ~ PvP On Map [ "+((.pvp)?"^28bf00Yes^000000":"^ff0000No^000000")+" ]:"+ " ~ Announce [ "+((.announce)?"^28bf00Yes^000000":"^ff0000No^000000")+" ]:"+ " ~ Reset All MvP:"+ " ~ Reset Specific MvP:"+ " ~ ^777777Close^000000" )) { case 1: .pvp =! .pvp; for( .@i = 0; .@i < getarraysize(.mvpid); .@i++ ) { if ( getd("$S"+.mvpa[.@i]+.mvpid[.@i]) < 2 || getd("$T"+.mvpa[.@i]+.mvpid[.@i]) <= gettimetick(2) ) { // if mini boss, just ignore pvp if(.pvp){ if(.mvpid[.@i] == 1120 || .mvpid[.@i] == 1096 || .mvpid[.@i] == 1388 ){ //PASS THROUGH } else { setmapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpon .mvpmaps$[.@i]; } } else { removemapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpoff .mvpmaps$[.@i]; } } } break; case 2: .announce =! .announce; break; case 3: freeloop(1); for( .@i = 0; .@i < getarraysize(.mvpid); .@i++ ) { setd("$S"+.mvpa[.@i]+.mvpid[.@i], 1); setd("$T"+.mvpa[.@i]+.mvpid[.@i], 0); setd("$P"+.mvpa[.@i]+.mvpid[.@i]+"$",""); killmonsterall .mvpmaps$[.@i]; } for( .@i = 0; .@i < getarraysize(.mvpid); .@i++ ) { if( compare( .mvpmaps$[.@i], "prt_maze03" ) && .mvpid[.@i] == 1039 ) { // Baphomet monster .mvpmaps$[.@i],100,100,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "treasure02" ) && .mvpid[.@i] == 1112 ) { // Drake monster .mvpmaps$[.@i],101,151,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "pay_dun04" ) && .mvpid[.@i] == 1150 ) { // moonlight monster .mvpmaps$[.@i],120,115,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "tur_dun04" ) && .mvpid[.@i] == 1312 ) { // turtle monster .mvpmaps$[.@i],99,93,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "moc_pryd06" ) && .mvpid[.@i] == 1511 ) { // amon monster .mvpmaps$[.@i],102,166,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "ayo_dun02" ) && .mvpid[.@i] == 1688 ) { // lady monster .mvpmaps$[.@i],150,90,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "niflheim" ) && .mvpid[.@i] == 1373 ) { // LOD donpcevent("NifInvasion::OnSpawn"); } else { monster .mvpmaps$[.@i],0,0,"--ja--",.mvpid[.@i],1; } if(.pvp){ if(.mvpid[.@i] == 1120 || .mvpid[.@i] == 1096 || .mvpid[.@i] == 1388 ){ //PASS THROUGH } else { setmapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpon .mvpmaps$[.@i]; } } else { removemapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpoff .mvpmaps$[.@i]; } } freeloop(0); dispbottom "All MVP has been reset."; break; case 4: set .@menu$,""; freeloop(1); for( .@i = 0; .@i < getarraysize(.mvpid); .@i++ ) set .@menu$, .@menu$+getmonsterinfo(.mvpid[.@i],0)+" - ("+.mvpmaps$[.@i]+"):"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; freeloop(0); set .@i, select(.@menu$)-1; setd("$S"+.mvpa[.@i]+.mvpid[.@i], 1); setd("$T"+.mvpa[.@i]+.mvpid[.@i], 0); setd("$P"+.mvpa[.@i]+.mvpid[.@i]+"$",""); killmonsterall .mvpmaps$[.@i]; monster .mvpmaps$[.@i],0,0,"--ja--",.mvpid[.@i],1; if(.pvp){ if(.mvpid[.@i] == 1120 || .mvpid[.@i] == 1096 || .mvpid[.@i] == 1388 ){ //PASS THROUGH } else { setmapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpon .mvpmaps$[.@i]; } } else { removemapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpoff .mvpmaps$[.@i]; } dispbottom "Monster [ "+strmobinfo(1,.mvpid[.@i])+" ] at "+.mvpmaps$[.@i]+" has been reset."; break; default: close; } } close; OnTimer60000: // Let recheck after a minute. for( .@i = 0; .@i < getarraysize(.mvpid); .@i++ ) { /* $S 1 - Alive $S 2 - Dead */ // If MvP status is not yet set if ( getd("$S"+.mvpa[.@i]+.mvpid[.@i]) == 2 && getd("$T"+.mvpa[.@i]+.mvpid[.@i]) <= gettimetick(2) ) { // check if MvP has fixed spawn location in the map. if( compare( .mvpmaps$[.@i], "prt_maze03" ) && .mvpid[.@i] == 1039 ) { // Baphomet monster .mvpmaps$[.@i],100,100,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "treasure02" ) && .mvpid[.@i] == 1112 ) { // Drake monster .mvpmaps$[.@i],101,151,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "pay_dun04" ) && .mvpid[.@i] == 1150 ) { // moonlight monster .mvpmaps$[.@i],120,115,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "tur_dun04" ) && .mvpid[.@i] == 1312 ) { // turtle monster .mvpmaps$[.@i],99,93,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "moc_pryd06" ) && .mvpid[.@i] == 1511 ) { // amon monster .mvpmaps$[.@i],102,166,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "ayo_dun02" ) && .mvpid[.@i] == 1688 ) { // lady monster .mvpmaps$[.@i],150,90,"--ja--",.mvpid[.@i],1; // Initiate LOD invasion at Niflheim } else if( compare( .mvpmaps$[.@i], "niflheim" ) && .mvpid[.@i] == 1373 ) { // LOD donpcevent("NifInvasion::OnSpawn"); } else { // Spawn the MvP at random location. monster .mvpmaps$[.@i],0,0,"--ja--",.mvpid[.@i],1; } if(.announce) announce "Monster [ "+strmobinfo(1,.mvpid[.@i])+" ] at "+.mvpmaps$[.@i]+" has been spawned.",bc_all; // set status of MvP as ALIVE! setd("$S"+.mvpa[.@i]+.mvpid[.@i], 1); // reset killer name. setd("$P"+.mvpa[.@i]+.mvpid[.@i]+"$", ""); if(.pvp){ // if mini boss, just ignore pvp if(.mvpid[.@i] == 1120 || .mvpid[.@i] == 1096 || .mvpid[.@i] == 1388 ){ //PASS THROUGH } else { setmapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpon .mvpmaps$[.@i]; } } else { removemapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpoff .mvpmaps$[.@i]; } } } initnpctimer(); end; OnCheck: OnPCLoginEvent: .@rank = 0; query_sql "SELECT DATABASE()", .@rag_db$; query_logsql "SELECT DATABASE()", .@log_db$; query_sql( "SELECT COUNT(`monster_id`) AS `total`,`char`.`name`,`kill_char_id` FROM "+.@log_db$+".`mvplog`"+" LEFT JOIN "+.@rag_db$+".`char` ON `char`.`char_id` = `mvplog`.`kill_char_id` WHERE `map` <> 'guild_vs5' AND DATE_FORMAT( `mvp_date`, '%Y-%m-%d') = DATE_FORMAT( now(), '%Y-%m-%d') GROUP BY `kill_char_id` ORDER BY `total` DESC LIMIT 10",.@mvptotal,.@mvpname$,.@kill_char_id ); for( .@i = 0; .@i < getarraysize(.@kill_char_id); .@i++ ) { if(getcharid(CHAR_ID_CHAR) == .@kill_char_id[.@i]){ .@rank = .@i+1; .@total = .@mvptotal[.@i]; } } if ( .@rank > 0 && .@rank < 4 ) { if(countitem(.topreward) == 0){ dispbottom "Congratulations you ranked as #"+.@rank+" MvP Hunter for today. Total kill "+.@total; getitembound .topreward,1,4; equip(.topreward); } } else { if(countitem(.topreward) > 0){ delitem .topreward,countitem(.topreward); dispbottom "Sorry you have lost your rank as Top 3 MvP Hunter of the day."; } } addtimer 300000,strnpcinfo(0) + "::OnCheck"; end; OnInit: .topreward = 31488; // top mvp daily reward .toprange = 3; // Only Top 3 gets the reward .announce = 1; // shall we announce mvp kills and spawn? (yes = 1 no = 0) .pvp = 1; // shall will make the map pvp? (yes = 1 no = 0) bindatcmd("mvpcontroller","mvpcontroller::OnSettings",99,99); // Mvp ids setarray .mvpid[0],1511,1096,1096,1388,1039,1272,1272,1046,1046,1389,1112,1115,1115,1418,1252,1120,1120,1120,1120,1086,1492,1251,1147,1147,1059,1150,1087,1190,1038,1157,1159,1312,1373,1630,1688; // Mvp Index is used because there are same mvp that spawn on different maps. setarray .mvpa[0],1,1,2,1,1,1,2,1,2,1,1,1,2,1,1,1,2,3,4,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1; // MvP maps setarray .mvpmaps$[0],"moc_pryd06","pay_fild04","xmas_dun01","yuno_fild02","prt_maze03","gl_chyard","gld_dun04","gef_dun02","gld_dun02","gef_dun01","treasure02","gld_dun01","pay_fild11","gon_dun03","xmas_fild01","gld_dun04","pay_fild04","prt_maze03","treasure02","prt_sewb4","ama_dun03","xmas_dun02","anthell02","gld_dun03","mjolnir_04","pay_dun04","gef_fild14","gef_fild10","moc_pryd04","in_sphinx5","moc_fild15","tur_dun04","niflheim","lou_dun03","ayo_dun02"; // How many minutes to respawn? setarray .mvptime[0],60,60,60,60,120,60,480,120,480,60,120,480,120,95,120,240,60,114,32,60,91,60,120,480,120,60,60,120,60,60,120,60,93,117,420; freeloop(1); for( .@i = 0; .@i < getarraysize(.mvpid); .@i++ ) { // If MvP status is not yet set if ( getd("$S"+.mvpa[.@i]+.mvpid[.@i]) < 2 || getd("$T"+.mvpa[.@i]+.mvpid[.@i]) <= gettimetick(2) ) { // check if MvP has fixed spawn location in the map. if( compare( .mvpmaps$[.@i], "prt_maze03" ) && .mvpid[.@i] == 1039 ) { // Baphomet monster .mvpmaps$[.@i],100,100,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "treasure02" ) && .mvpid[.@i] == 1112 ) { // Drake monster .mvpmaps$[.@i],101,151,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "pay_dun04" ) && .mvpid[.@i] == 1150 ) { // moonlight monster .mvpmaps$[.@i],120,115,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "tur_dun04" ) && .mvpid[.@i] == 1312 ) { // turtle monster .mvpmaps$[.@i],99,93,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "moc_pryd06" ) && .mvpid[.@i] == 1511 ) { // amon monster .mvpmaps$[.@i],102,166,"--ja--",.mvpid[.@i],1; } else if( compare( .mvpmaps$[.@i], "ayo_dun02" ) && .mvpid[.@i] == 1688 ) { // lady monster .mvpmaps$[.@i],150,90,"--ja--",.mvpid[.@i],1; // Initiate LOD invasion at Niflheim } else if( compare( .mvpmaps$[.@i], "niflheim" ) && .mvpid[.@i] == 1373 ) { // LOD donpcevent("NifInvasion::OnSpawn"); } else { // Spawn the MvP at random location. monster .mvpmaps$[.@i],0,0,"--ja--",.mvpid[.@i],1; } // set status of MvP as ALIVE! setd("$S"+.mvpa[.@i]+.mvpid[.@i], 1); // status is alive (1) // reset killer name. setd("$P"+.mvpa[.@i]+.mvpid[.@i]+"$", ""); // killer name reset if(.pvp){ // if mini boss, just ignore pvp if(.mvpid[.@i] == 1120 || .mvpid[.@i] == 1096 || .mvpid[.@i] == 1388 ){ //PASS THROUGH } else { setmapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpon .mvpmaps$[.@i]; } } else { removemapflag .mvpmaps$[.@i], mf_pvp_nocalcrank; pvpoff .mvpmaps$[.@i]; } } } freeloop(0); initnpctimer(); end; } /* If you want your player have access to spawn time, you can use this function to display status of each MvP and who killed them { Id: 501 AegisName: "Red_Potion" Name: "Red Potion" Type: "IT_HEALING" Buy: 50 Weight: 70 Script: <" callfunc "F_MVPTime"; "> }, */ function script F_MVPTime { mes "^FF0000MvP Status^000000"; for( .@i = 0; .@i < getarraysize(getvariableofnpc(.mvpid,"mvpcontroller")); .@i++ ) { .@time = getd("$T" +getvariableofnpc(.mvpindex[.@i],"mvpcontroller") + getvariableofnpc(.mvpid[.@i],"mvpcontroller")); .@alive = getd("$S" +getvariableofnpc(.mvpindex[.@i],"mvpcontroller") + getvariableofnpc(.mvpid[.@i],"mvpcontroller")); set .@hours, (.@time - gettimetick(2)) / 3600; set .@mins, (.@time - gettimetick(2))%3600/60; set .@secs, (.@time - gettimetick(2))%60; set .@mobname$,getmonsterinfo( getvariableofnpc(.mvpid[.@i], "mvpcontroller"),0 ); set .@map$,getvariableofnpc(.mvpmaps$[.@i], "mvpcontroller"); set .@player$,getd("$P"+getvariableofnpc(.mvpindex[.@i], "mvpcontroller") + getvariableofnpc(.mvpid[.@i], "mvpcontroller") +"$"); mes ((.@alive == 1) ? "[ ^01DF01+^000000 ]" : "[ ^FF0000x^000000 ]")+((getstrlen( .@mobname$ ) > 10 ) ? " ^0055FF"+substr(.@mobname$,0, 10)+"^000000" : " ^0055FF"+.@mobname$+"^000000")+" ^777777"+.@map$+"^000000 "; if( .@alive == 2 ) { mes "^FF0000"+((.@hours) ? .@hours +"h" : "")+" "+((.@mins) ? .@mins +"m" : "")+" "+((.@secs) ? .@secs +"s" : "")+"^000000 "+"^777777 kiiled by "+.@player$+"^000000"; } } close; } What does it do?
    -  prevents spawn of mvp on each server starts or reload.
    -  spawns mvp or mini only at specific time based when it was killed + spawn time
    -  reward x top mvp killers.

    Cons:
    - you can not use convex mirrors to show mvp in the map
    - you can not find mvp using @whereis.

    How to use:
    - Delete or Comment target MVP and mini boss spawn from your npc/pre-re/mobs/dungeons/ or /fields.
    - Add these mvps to array.

    FAQ:
    #Q1 What the heck is this?
    setarray .mvpa[0],1,1,2,1,1,1,2,1,2,1,1,1,2,1,1,1,2,3,4,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1; #A1: since there are same kind of MVP spawn on multile map (i.e Angeling spawns at pay_fild04, xmas_dun01, yuno_fild03) those numbers are the unique identifiers. 
    if there is only 1 spawn, then just write 1. 
    succeeding spawn is 2  then 3 ....

    All other suggestions to simplify and improve @AnnieRuru yohoo! my master.  
     
  7. Like
    astralprojection got a reaction from evilpuncker in Hunting Mission   
    its very impossible to fix that unless you showing the script.
  8. Upvote
    astralprojection got a reaction from Dduwsmitt in Decarding Bug   
    @4144 i can confirm this bug.
  9. Like
    astralprojection got a reaction from Kuroyama in Decarding Bug   
    @4144 i can confirm this bug.
  10. Upvote
    astralprojection got a reaction from Kuroyama in Disable/dispell certain skill buff in certain map   
    try OnPCLoadMapEvent:
     
    - script OnPCLoadMapEvent HIDDEN_NPC,{ end; OnPCLoadMapEvent: if ( strcharinfo(PC_MAP) == "new_1-1" ) if(getstatus(SC_BLESSING)) sc_end SC_BLESSING; end; Oninit: setmapflag "new_1-1", mf_loadevent; end; }  
  11. Upvote
    astralprojection got a reaction from xJhay in Disable/dispell certain skill buff in certain map   
    try OnPCLoadMapEvent:
     
    - script OnPCLoadMapEvent HIDDEN_NPC,{ end; OnPCLoadMapEvent: if ( strcharinfo(PC_MAP) == "new_1-1" ) if(getstatus(SC_BLESSING)) sc_end SC_BLESSING; end; Oninit: setmapflag "new_1-1", mf_loadevent; end; }  
  12. Upvote
    astralprojection got a reaction from Kuroyama in Server closing after exiting putty   
    use screen. 
    $ cd yourROFolder
    $ screen -S login  (this will create screen named "login")
    $ ./login-server
    $  ctrl+a+d to exit screen.
     
    To restore screen, use
    $ screen -r login
     
  13. Upvote
    astralprojection got a reaction from xJhay in Server closing after exiting putty   
    use screen. 
    $ cd yourROFolder
    $ screen -S login  (this will create screen named "login")
    $ ./login-server
    $  ctrl+a+d to exit screen.
     
    To restore screen, use
    $ screen -r login
     
  14. Upvote
    astralprojection reacted to AnnieRuru in Charms   
    1.6 - plugin
    - fix it run status_calc_pc on every charms pickup and drop
    - fix OnEquipScript doesn't run when player login
    - fix nullpo, it wasn't needed at all
     
    in other words, fix everything, hopefully no more bug or run extra stuffs
    and ... its better to loop player's inventory count rather than run whole status_calc_pc thingy, way more resource friendly
  15. Like
    astralprojection got a reaction from AnnieRuru in Charms   
    charm.c: In function 'npc_parse_unknown_mapflag_pre': charm.c:173:31: warning: declaration of 'cidata' shadows a previous local [-Wshadow] struct charm_item_data *cidata = getFromITEMDATA(idata, 0); ^ charm.c:131:26: warning: shadowed declaration is here [-Wshadow] struct charm_item_data *cidata = NULL; ^ charm.c:131:26: warning: unused variable 'cidata' [-Wunused-variable] Some minor warning
  16. Like
    astralprojection got a reaction from AnnieRuru in inventoryselect   
    is it okay with this warning?

  17. Like
    astralprojection got a reaction from AnnieRuru in Castle Guild Member Limit   
    - script woelimit HIDDEN_NPC,{ end; OnPCLoadMapEvent: .@rid = playerattached(); if ( !compare(strcharinfo(PC_MAP), "g_cas") || !agitcheck() ) end; getguildmember getcharid(CHAR_ID_GUILD), 1; getguildmember getcharid(CHAR_ID_GUILD), 2; .@count = 0; for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if (attachrid($@guildmemberaid[.@i])) { if( compare(strcharinfo(PC_MAP), "g_cas") ) .@count++; } } if ( .@rid ) attachrid(.@rid); else detachrid; if(.@count > .max){ message strcharinfo(0), "WARNING: Max of "+.max+" members can simultaneously join the WOE."; warp "SavePoint",0,0; } end; OnInit: .max = 25; end; } try this
  18. Like
    astralprojection got a reaction from AnnieRuru in Castle Guild Member Limit   
    THanks @AnnieRuru so much learning.!
  19. Upvote
    astralprojection got a reaction from Kuroyama in Castle Guild Member Limit   
    - script woelimit HIDDEN_NPC,{ end; OnPCLoadMapEvent: .@rid = playerattached(); if ( !compare(strcharinfo(PC_MAP), "g_cas") || !agitcheck() ) end; getguildmember getcharid(CHAR_ID_GUILD), 1; getguildmember getcharid(CHAR_ID_GUILD), 2; .@count = 0; for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if (attachrid($@guildmemberaid[.@i])) { if( compare(strcharinfo(PC_MAP), "g_cas") ) .@count++; } } if ( .@rid ) attachrid(.@rid); else detachrid; if(.@count > .max){ message strcharinfo(0), "WARNING: Max of "+.max+" members can simultaneously join the WOE."; warp "SavePoint",0,0; } end; OnInit: .max = 25; end; } try this
  20. Like
    astralprojection got a reaction from Kuroyama in Castle Guild Member Limit   
    i will try also  i will share if i get it right.
  21. Like
    astralprojection got a reaction from MikZ in Null Returned   
    Yes its from the Extended Battleground. I have have lot of those in logs  also.  @Dastgir
  22. Like
    astralprojection reacted to Functor in Old Character Creation   
    I'm happy for you if you have so high skills and it isn't just in words.  But what is the sense to inform about it if you aren't going to help Khonsu? As I see you even created account to tell about it. It was very useful info for the community. Please, keep us informed. 
    P.S. I can go into space in a couple hours easily, but I will not do it. 
  23. Upvote
    astralprojection reacted to Takari in Question about Using Git to update   
    `git pull` to pull updates from the repository
    `git merge {branch_to_merge}` to merge two branches together
    It's the same for all platforms (Linux, MacOS, Windows, etc)
  24. Upvote
    astralprojection got a reaction from banhelba2019 in Trigger OnMobDrop Event   
    Is there a way to trigger on ion mob drop a specific item?
    - scrip    itemdrop   -1,{
    end;
    OnMobDrop:
         If(nameid = 601)
         dispbottom "Monster dropped ^+getitemname(601):
         end;
    }
     
  25. Upvote
    astralprojection reacted to 4144 in How to enclose qoutation to string variable   
    better use way how suggested @Asheraf, because it allow use good translation,
    but if you want strings concatenations, use this code:
    atcommand "#warp \"" + .@playername$ + "\" " + .arena_map$ + " 22 50";  
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.