Jump to content

utofaery

Members
  • Content Count

    101
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by utofaery

  1. prontera,158,167,3 script Sample 4_M_SIT_NOVICE,{ if (#xTaken + .next_take> gettimetick(2)) { mes "[Random Item Giver]"; mes "Please talk to me after 24 hours."; close; } else { mes "[Random Item Giver]"; mes "Have some of these!"; .@riRate1 = rand (.@Ai11,.@Ai12); .@riRate2 = rand (.@Ai21,.@Ai22); .@riRate3 = rand (.@Ai31,.@Ai32); .@rItemid1 = .@Aitem1[rand(getarraysize (.@Aitem1))]; .@rItemid2 = .@Aitem2[rand(getarraysize (.@Aitem2))]; .@rItemid3 = .@Aitem3[rand(getarraysize (.@Aitem3))]; getitem ( .@rItemid1, .@riRate1 ) ; // dispbottom ( "rItemid1 :: " + .@rItemid1 + " riRate1 :: " + .@riRate1 + " Name :: " + getitemname ( .@rItemid1 ) ) ; // debug use only !!! getitem ( .@rItemid2, .@riRate2 ) ; // dispbottom ( "rItemid2 :: " + .@rItemid2 + " riRate2 :: " + .@riRate2 + " Name :: " + getitemname ( .@rItemid2 ) ) ; // debug use only !!! getitem ( .@rItemid3, .@riRate3 ) ; // dispbottom ( "rItemid3 :: " + .@rItemid3 + " riRate3 :: " + .@riRate3 + " Name :: " + getitemname ( .@rItemid3 ) ) ; // debug use only !!! #xTaken = gettimetick(2); next; close; } OnInit: //set cooldown to take item again. .next_take = 24*60*60; //set item here setarray .Aitem1[0],501,502,503,504,505,14510; setarray .Aitem2[0],601,602,603,604,605,14510; setarray .Aitem3[0],701,702,703,704,705,14510; //set rate here .Ai11 = 1; .Ai12 = 10; .Ai21 = 5; .Ai22 = 15; .Ai31 = 10; .Ai32 = 20; end; } Refined and fixed up npc variable..
  2. This should means on PvP enabled map? When player A kill player B, Show effect xxx on player A. But what is "manner"? Side note : Why can't I delete code box (and content of code box) on Android chrome? And it's same with quote box!
  3. utofaery

    Update map

    Lucas I assumed. Issue :: You have incomplete conf folder. Explaination :: Which means you got something missing from "Hercules/conf/plugins.conf" folder Recovery Step :: Re-Clone or Re-Update your hercules installation. Vital.
  4. By script (easier), skill is source (harder). make a clone npc at destination with on touch then announce something Database support not script anymore! anyway~ any filename that has "skill" 1. hercules\db\ 2.1 hercules\db\pre-re\ or 2.2 hercules\db\re\ OR 3 you want customly made stuff ( aka custom skill ) https://herc.ws/wiki/Adding_new_skills ( BENEFICIAL read) ( sorry to make it caps, no people takes reading stuff seriously these days ) Yes we know the good old floating npc which no normal play can click see or OnTouch...
  5. Bad suggestion: Erm another thing is to try hunting private server (which used 2015) for the "questid2display.txt"
  6. First thing first this line is found on the first page of https://github.com/Asheraf/Translation This fork meant to work only for the lastest RagexeRE client release, backward compatibility is not maintained. 1. Thing is if you use 2015 client make sure you get translation package that target 2015 client only not anything 2018 or etc. old client need old translation. so you need to do homework to get translation for 2015 client searching in github. 2. or you could use new client with new translation? which is easier and maintain'ed for current version of client. 3. or if you insist to use 2015, then wait for someone to save you .. Side Note: Any way this is found in rathena with 1 hour difference.. same topic same description. https://rathena.org/board/topic/118479-quest-log-crash/
  7. Question about 1: Q1. Do I use this npc as duplicate like woe FE did?? like the guild manager or guild starter npc? Q2. about the bindatcmd it only work if I duplicate them?
  8. Q>what does this warning means This happen'd when I tried to do this: Map server error: A function call'ed on another npc with getmapflag check...of all mapflag found in constants
  9. Since this is sample questlog, Might be wise to include sample Instance?
  10. Hercules\conf\char\char-server.conf // Player-related configuration player: { new: { // Start point (Renewal) start_point_re: { map: "iz_int" x: 18 y: 27 } // Start point (Pre-Renewal) start_point_pre: { map: "new_1-1" x: 53 y: 111 }
  11. From this file : plugin-sample.vcxproj can it be modified to load multiple .c file? as in mapcache.c customplugin1.c .... etc inside one plugin-sample.vcxproj? The reason to mash up plugin ==> SSD is hyper expensive storage option... compare to HDD
  12. 1. What to change if this occur? 2. can that be created?? somehow? 3. On the pass some forum restrict people from flooding topic in forum...which is something I faced before so ... the reason I did mashup topic. this forum encourage flooding then??
  13. Another thing I forgot 1. Can plugins be "rojak" into one plugin? 2. Is that consider healthy practice ???
  14. 1. ok what should be changed to fix that?? should I change that variable to instance variable?? or should it be player temporary variable?? whenever player starts the instance by talking to the npc? this instance script need to chew upon to understand. 2. The cases is that in that particular instance it runs till killed monster 75 or 77 then it terminates or randomly terminate.
  15. prontera,150,180,5 script Instance Challenger 4_M_EINMINER,{ mes ( " Big sun Big day ! " ) ; dispbottom ( " #GRRoomDelay :: " + #GRRoomDelay ) ; switch ( select( "~ Create Instance", "~ Exit.", "~ Clear Instance" )){ case 3: instance_destroy( );//.@instance ); close; case 1: .@mapname$ = "1@dth1"; #GRHunt = 0; if( #GRRoomDelay > gettimetick(2) ) { .last = #GRRoomDelay - gettimetick(2); .@min = .last % ( 24 * 3600 ) % 3600 / (60); mes "Wait for ^FF0000"+.@min+" Minutes^000000."; close; } .@instance = instance_create( .@Zone4$, getcharid( 3 ), IOT_CHAR); if( .@instance < 0 ) { dispbottom "Instance Failed."; close; } dispbottom "" + .@mapname$ + "- Attempting to create Farm Instance."; if( instance_attachmap("1@dth1",.@instance) == "" ) { instance_destroy( .@instance ); dispbottom "Failed to instance 1@dth1"; end; } dispbottom "" + .@Zone4$ + " attempt successful on Instance attach!"; instance_set_timeout( 3600, 300, .@instance ); instance_init( .@instance ); instance_attach .@instance; 'cid = getcharid(0); 'aid = getcharid(3); FarmIns_cooldown = gettimetick(2) + 3600; // 1 hour cooldown warp instance_mapname("1@dth1",.@instance),166,130; end; case 2: close; end; } close; } //===================================================== /* [Farm Zone] Gold Room Information/How-To Setup: 'GRRate - The rate at which they obtain Gold, which is in %. So 50 = 50%. .GRDelayMin - Controls Time Limit of Re-entering: 1 = 1 Minute, 2 = 2 Minute, etc. .MaxGRLimit - Max amount of Gold they can Farm until instance is complete, if they don't reach max amount they just complete the instance. 'MOB1ID/MOB2ID - Select the ID of the monster you want. 'MOB1AM/MOB2AM - Select the Amount of designated Monsters you want to spawn. NOTE: Don't make the .MaxGRLimit exceed the total amount of monsters you selected to spawn. Otherwise, they will never reach the Max Limit. All other variables do not touch, especially the Count, and the Start. ('Farm_Count and 'Farm_Start) */ //===================================================== 1@dth1,28,23,1 script IxGR#Ins FAKE_NPC,{ OnInstanceInit: .GRDelayMin = (1/10); .MaxGRLimit = 1000; 'GRRate = 5; 'MOB1ID = 1002; 'MOB2ID = 1113; 'MOB1AM = 40; 'MOB2AM = 35; 'MobTOTAL = 'MOB1AM+'MOB2AM; 'Farm_Count = 0; 'Farm_Start = 0; if (!'Farm_Start) { donpcevent instance_npcname("IxGR#Ins")+"::OnGRFarmStart"; 'Farm_Start++; end; } OnGRFarmStart: //instance_announce -1,"[Farming Instance] Enjoy farming some Gold!",bc_map; monster instance_mapname("1@dth1"),0,0,"[ Farm Zone ] Gold Holder",'MOB1ID,'MOB1AM,instance_npcname("IxGR#Ins")+"::OnFarmGR"; monster instance_mapname("1@dth1"),0,0,"[ Farm Zone ] Gold Guest",'MOB2ID,'MOB2AM,instance_npcname("IxGR#Ins")+"::OnFarmGR"; end; OnFarmGR: 'dMon = killedrid; if ( #GRHunt >= .MaxGRLimit ) { dispbottom "[ Farm Zone ] : You are trying to abuse Farm Zone! Prematurely ending."; sleep2 500; #GRRoomDelay = gettimetick(2) + ( .GRDelayMin * 60 ); #GRHunt = 0; warp "prontera",150,185; instance_destroy(); end; } monster instance_mapname("1@dth1"),0,0,"[ Farm Zone ] Gold Holder",'dMon,'MOB1AM,instance_npcname("IxGR#Ins")+"::OnFarmGR"; if ( rand(100) < 'GRRate ) { #GRHunt++; 'Farm_Count++; dispbottom "[ Farm Zone ] : Farmed "+#GRHunt+" / "+.MaxGRLimit+" Gold."; if( #GRHunt >= .MaxGRLimit ) { getitem 969, 1; message strcharinfo(0),"Limit Reach , you may join again later."; sleep2 500; #GRRoomDelay = gettimetick(2) + ( .GRDelayMin * 60 ); warp "prontera",150,150; instance_destroy(); end; } getitem 969, 1; dispbottom ( " Current farm Count :: " + 'Farm_Count + " Hunted Gold Count :: " + #GRHunt ) ; donpcevent instance_npcname("IxGR#Ins")+"::OnGRFarmCount"; } else { 'Farm_Count++; dispbottom ( " Current farm Count :: " + 'Farm_Count + " Hunted Gold Count :: " + #GRHunt ) ; donpcevent instance_npcname("IxGR#Ins")+"::OnGRFarmCount"; end; } end; OnGRFarmCount: if ('Farm_Count >= 'MobTOTAL) { // modified >> .MaxGRLimit << if( attachrid('aid) ) if( getcharid(0) == 'cid ) { instance_announce -1,"[Farming Instance] Farming instance Completed.",bc_map; #GRRoomDelay = gettimetick(2) + ( .GRDelayMin * 60 ); sleep2 5000; instance_destroy(); end; } else end; } } 1. I was borrowing instance script ( Forgot where I collected this script from but it's from herc.ws) but it's always randomly terminate by this line: dispbottom "[ Farm Zone ] : You are trying to abuse Farm Zone! Prematurely ending."; or some time randomly terminate. 2. the script is suppose to let you player to kill 1000 mobs with repeated spawning of dead mobs but it's working randomly because of random termination of instance.
  16. thanks for 2 and 3 but what am I right about 1?? I thought I make something broken??? and about 3 if I put this part into item script strnpcinfo(NPC_NAME)+"::Onaaa" I need change the part strnpcinfo(NPC_NAME) to make it work, correct?
  17. #include "common/hercules.h" #include "map/pc.h" #include "common/nullpo.h" #include "plugins/HPMHooking.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "blockexp", SERVER_TYPE_MAP, "0.1", HPM_VERSION, }; bool pc_authok_post( bool retVal, struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, const struct mmo_charstatus *st, bool changing_mapservers ) { if ( retVal == false ) return false; if ( pc_readglobalreg( sd, script->add_variable("blockexp") ) == true ) clif->message( sd->fd, "@blockexp turn ON." ); return true; } bool pc_gainexp_pre( struct map_session_data **sd, struct block_list **src, uint64 *base_exp, uint64 *job_exp, bool *is_quest ) { nullpo_ret(*sd); if ( *src == NULL && pc_readglobalreg( *sd, script->add_variable("blockexp") ) == true ) *base_exp = 0; return true; } void pc_calcexp_post( struct map_session_data *sd, uint64 *base_exp, uint64 *job_exp, struct block_list *src ) { if ( pc_readglobalreg( sd, script->add_variable("blockexp") ) == true ) *base_exp = 0; return; } ACMD(blockexp) { if ( pc_readglobalreg( sd, script->add_variable("blockexp") ) ) { clif->message( sd->fd, "@blockexp turn OFF." ); pc_setglobalreg( sd, script->add_variable("blockexp"), false ); } else { clif->message( sd->fd, "@blockexp turn ON." ); pc_setglobalreg( sd, script->add_variable("blockexp"), true ); } return true; } HPExport void plugin_init(void) { addHookPre( pc, gainexp, pc_gainexp_pre ); addHookPost( pc, calcexp, pc_calcexp_post ); addAtcommand( "blockexp", blockexp ); } As Topic
  18. - script BmapMobList -1,{ OnInit: bindatcmd "mapmoblist2", strnpcinfo(0)+"::Onaaa"; end; Onaaa: if ( .@atcmd_numparameters ) { if ( getmapusers(.@atcmd_parameters$) == -1 ) { dispbottom "Map not exist"; end; } .@map$ = .@atcmd_parameters$; } else .@map$ = strcharinfo(3); .@size = getunits( BL_MOB, .@bl, false, .@map$ ); freeloop true; for ( .@i = 0; .@i < .@size; ++.@i ) { .@string$ = rid2name(.@bl[.@i]); if ( !getd(".@"+ .@string$) ) { .@mobname$[.@c] = .@string$; getmapxy .@map$, .@x, .@y, UNITTYPE_MOB, .@bl[.@i]; .@mobx[.@c] = .@x; .@moby[.@c] = .@y; .@mobhp[.@c] = getunitdata( .@bl[.@i], UDT_HP ); .@mobmaxhp[.@c] = getunitdata( .@bl[.@i], UDT_MAXHP ); ++.@c; } setd ".@"+ .@string$, getd(".@"+ .@string$) +1; } dispbottom " === These are monsters in "+ .@map$ +" ==="; for ( .@i = 0; .@i < .@c; ++.@i ) if ( getd(".@"+ .@mobname$[.@i]) ) dispbottom ( ++.@j )+". "+ .@mobname$[.@i] +" : "+ getd(".@"+ .@mobname$[.@i])+"x"; if ( getgmlevel() < 99 ) end; // Hercules doesn't catch dead monsters as being alive dispbottom " === Location of unique monsters === "; for ( .@i = 0; .@i < .@c; ++.@i ) if ( getd(".@"+ .@mobname$[.@i]) == 1 ) dispbottom .@mobname$[.@i] +" --> X = "+ .@mobx[.@i] +" Y = "+ .@moby[.@i] +" | Hp left = "+ .@mobhp[.@i] +"/"+ .@mobmaxhp[.@i]; end; } As topic as requested don't blame me multi topic spamming..
  19. 1. how to make it not list clone monster? or slaveclone? 2. can it be use as script onPCLogin?? and does this one stop gaining exp from mvp too? 3. is there a way to sort inventory item ?? be it by item id or item name (ascending sort) ? 4 how to make sanctuary only heal allies ( party guild and slave clone ) but not enemies ( anything that is hostile to player ) 5 clone or slave clone or evil clone can kill emperium how do I prevent this happen? when player are not in guild.. 6 why is it only when player are in guild it shows your party and when player are not in guild not showing party name??? 7. can we combine multiple plugins into one file ?? What my plugin way is edit >> plugin-sample.vcxproj search for word sample replace with PluginName then save as plugin-PluginName.vcxproj then add existing project in visual studio and compile which resulting in multiple folder in vcproj-15 with various sizes of multiple file so the end question is can I combine different multiple plugins into one file??
  20. 1. I was trying to make this work by donpcevent "Guardian#"+.RTaken$[.@i]+"::OnSpawnGuardians"; but it's not working how do I fix this? deletearray (.RTaken$); .@menu$ = ""; .@c = 0; for ( .@i = 0 ; .@i < getarraysize(.castle$); ++.@i ) { if ( getcastledata( .castle$[.@i], 1 ) == getcharid(CHAR_ID_GUILD) && (.RTaken$[.@i] == .castle$[.@i]) == false ) { // CD_GUILD_ID ++.@c; dispbottom ( .@c + " " + getcastlename(.castle$[.@i]) + " is currently controlled by " + strcharinfo(PC_GUILD) + " " + .RTaken$[.@i] ) ; setarray .RTaken$[getarraysize(.RTaken$)],.castle$[.@i]; .@menu$ = .@menu$ + getcastlename( .castle$[.@i] ); .@menu$ = .@menu$ + ":"; } } if (.@c < 1) { mes ( ".@c < 1 You have to work harder to obtain glory, chief!"); close; } else { mes ( ".@c == " + .@c); mes ( " Select a Castle." ); .@i = select( .@menu$ ) - 1; mes "You selected menu : "+ .@menu$[.@i]; while(true) { switch ( select ( "Maximize Castle Economy & Defense", //xsa//2, 3 "Enable Kafra", //xsa//9 "Disable Kafra", //xsa//9 "Enable All Guardian", // 10 11 12 13 14 15 16 17 "Check Guild Status", "Exit" )) { case 1: setcastledata(.RTaken$[.@i], 2, 100 ); setcastledata(.RTaken$[.@i], 3, 100 ); break; case 2: setcastledata(.RTaken$[.@i], 9, 1 ); enablenpc "Kafra Staff#"+.RTaken$[.@i]; break; case 3: setcastledata(.RTaken$[.@i], 9, 0 ); disablenpc "Kafra Staff#"+.RTaken$[.@i]; break; case 4: setcastledata(.RTaken$[.@i], 10, 1 ); setcastledata(.RTaken$[.@i], 11, 1 ); setcastledata(.RTaken$[.@i], 12, 1 ); setcastledata(.RTaken$[.@i], 13, 1 ); setcastledata(.RTaken$[.@i], 14, 1 ); setcastledata(.RTaken$[.@i], 15, 1 ); setcastledata(.RTaken$[.@i], 16, 1 ); setcastledata(.RTaken$[.@i], 17, 1 ); donpcevent "Guardian#"+.RTaken$[.@i]+"::OnSpawnGuardians"; break; case 5: dispbottom ( "Guld Name :: " + getcastledata(.RTaken$[.@i], 1) ) ; dispbottom ( "Guild Economy Level :: " + getcastledata(.RTaken$[.@i], 2) ) ; dispbottom ( "Guild Defense Level :: " + getcastledata(.RTaken$[.@i], 3) ) ; dispbottom ( "Guild Kafra :: " + getcastledata(.RTaken$[.@i], 9) ) ; dispbottom ( "Guild 1st Guardian Soldier :: " + getcastledata(.RTaken$[.@i], 10) ) ; dispbottom ( "Guild 2nd Guardian Soldier :: " + getcastledata(.RTaken$[.@i], 11) ) ; dispbottom ( "Guild 3rd Guardian Soldier :: " + getcastledata(.RTaken$[.@i], 12) ) ; dispbottom ( "Guild 4th Guardian Archer :: " + getcastledata(.RTaken$[.@i], 13) ) ; dispbottom ( "Guild 5th Guardian Archer :: " + getcastledata(.RTaken$[.@i], 14) ) ; dispbottom ( "Guild 6th Guardian Knight :: " + getcastledata(.RTaken$[.@i], 15) ) ; dispbottom ( "Guild 7th Guardian Knight :: " + getcastledata(.RTaken$[.@i], 16) ) ; dispbottom ( "Guild 8th Guardian Knight :: " + getcastledata(.RTaken$[.@i], 17) ) ; break; case 6: close; } } close; } OnInit: setarray .castle$[0], "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", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; end; } 2. can we disable default woe system and create custom woe system? 3. by doing this .@i = 1; .@x = 10; while ( .@i <= .@x ) { atcommand "@slaveclone "+strcharinfo(0); .@i += 1; } dispbottom ("spawn'ed " + (.@i-1) + " clones" ); can it able to announce when a slave clone die or should it be changed to something else? if yes please show me how. and can it be used with *setunitdata ??
  21. question 1: what is HULD compatible??? question 2: you mean there's a merge of Feature 1~4 in one script of this lotti girl? which I wonder if it's seperated or merged.
  22. Yes woe script is messy for me to get my hand on .. its a web hard to know where to where.. 1 original guardian + extra guardian (auto respawn) Was meant for harder woe conquering. If not conquer can it be spawned too? With auto respawn. 2 correcto..I fail to get the point of it. If you will do show me how will I merge those extra part into the woe-fe and worse script.
  23. I dont really know how to change that, all I do is copy paste from previous post then go on typing then it became colourful...
×
×
  • Create New...

Important Information

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