utofaery
Members-
Content Count
101 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by utofaery
-
As we know that Thursday is emperium war day... on server start map server spiting multiple error of these few lines may be 30 or more time. [Error]: script_rid2sd: fatal error ! player not attached! [Debug]: Function: strcharinfo (1 parameter): [Debug]: Data: constant name='PC_MAP' value=3 [Debug]: Source (NPC): testflag at guild_vs2 (52,52) [Status]: NPC_Event:[OnAgitStart] Run (49) Events by @AgitStart. << and then it ends here..
-
Sir, What will be the max expandable limit of this expandable Inventory expanding?
-
Yes my script is total mess. Which is why am posting for help. Only those don't want to be helped will refuse to ask for it or worst reject it. But something else comes in my mind. Curiously... Why is there got bhatch; And there hasn't got any breturntoegg; ? Or could you create something like that too? Side stuff: At this time I am using phone to browsing here But out of curiosity why there is so many guess which outnumbered members which logged in.
-
I have a broken pet egg exchanging old egg to new egg script which need help in fixing. - script F_PetTrader FAKE_NPC,{ disable_items; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { .@item_type = getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE ); if ( .@item_type == IT_PETEGG ) { if ( .petid[ @inventorylist_id[.@i] ] && !.@compare[ @inventorylist_id[.@i] ] ) { .@found[.@c++] = @inventorylist_id[.@i]; .@compare[ @inventorylist_id[.@i] ] = false; } } } .@menu$ = "+&Sort&Count&Item&Name+&^FF0000Quit^000000:"; for ( .@i = 0; .@i < getarraysize(.@found); ++.@i ) { mes getitemname( .@found[.@i] ); .@menu$ += .@i + " " + countitem(.@found[.@i] ) + " " + getitemname(.@found[.@i]) + " :"; dispbottom ( " .@i :: " + .@i + " Count item :: " + countitem(.@found[.@i] ) + " ItemName :: " + getitemname(.@found[.@i]) ) ; } .@i = select(.@menu$)-1; if ( .@i > getarraysize(.@found) ) { dispbottom ( " Dont mess with bug or I bug you! " ) ; close2; end; } else { mes (" .@i " + .@i ); .@EggItemId = .@found[.@i]; .@EggCount = countitem(.@found[.@i] ); if ( .@EggItemId ) { delitem ( .@EggItemId, .@EggCount ) ; makepet ( .@EggItemId ); mes ( " Exchanged :: " + .@EggCount + " of " + .@EggItemId ) ; } else { dispbottom ( " .@EggItemId :: " + .@EggItemId + " .@EggCount :: " + .@EggCount ) ; } } close; OnInit: .@nb = query_sql( "select id from item_db where type & "+( 7 ), .@id ); freeloop true; for ( .@i = 0; .@i < .@nb; ++.@i ) .petid[ .@id[.@i] ] = true; end; } It is suppose to list what egg in player inventory but always returning poring egg.. sometimes nothing is listed..or 0 somewhere is broken and I failed to find out where and the .@menu$ part is confusing for me since it's not something I always messing with.
-
.@nb = query_sql( "select id from item_db where equip_locations & "+( EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT ), .@id ); Say after collected this list EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT I want to put extra check which exclude some of the item from being listed in the .@id[.@c++] = @inventorylist_id[.@i]; like putting in an extra check so it doesn't get included in the .@id[.@c++]?? mes getitemname( .@id[.@i] ); then in this part it won't list the excluded "certain item"?
-
Scroll ... cant be done yet unless you create custom SC_ProtectGarment / SC_ProtectShoes. This can be put into Garment or Shoes or any combo items??? autobonus... autobonus "{ bonus bUnbreakableGarment,100 }",50,10000,BF_WEAPON,"{ specialeffect(EF_ENHANCE, AREA, playerattached()); }"; on attack has random chance to make garment unbreakable..
-
I really fix up a lot of other script I have by comparing your script with whatever is in my script folder... I guess it's my bad for not explaining this correctly.. on .nb part where it query_sql to fetch all the costumes, can I have another array to .@arrayA which include a list of item which not to be compared or "found"? from the big list of query_sql?
-
Importfolder getarg land_skill_limit ItemAvail.txt @summon
utofaery replied to utofaery's question in General Server Support
Not really since I am the one not get used to read all those source stuff so anything I change error'ed out on me... My original setting is 14 instead of default 9 say it has a lot to do with it lol. after I change that 14 to 31 no more tickset warning... I tested with this script for all the value 9, 14, and 31 only 14 has that error all the time. -
How to setup OFFLINE server for personal development use
utofaery replied to AnnieRuru's question in General Server Support
Not my suggestion but forced by microsoft to download that 17763 version of visual studio. it says i have something missing blablabla and need download a whole package of 8~10 GB of stuff which is so far away from what I intended. (which is the small visual studio download suggested by someone here and the download size would be (less than 2GB) which opps me out regarding the heal error I found it... original line in skill.c //xsa if (status->isimmune(bl) || (dstmd != NULL && (dstmd->class_ == MOBID_EMPELIUM || mob_is_battleground(dstmd)))) but I make it to this line: if ( dstmd->class_ == mob_is_battleground(dstmd))//xsa so it crash whenever I try to these skills. case HLIF_HEAL: // [orn] case AL_HEAL: case AB_HIGHNESSHEAL: case SU_TUNABELLY: but if I change that line to this It's not crashing anymore... if (status->isimmune(bl) || (dstmd != NULL && (mob_is_battleground(dstmd))))//xsa if (status->isimmune(bl) << how to make heal work on immuned Player (AKA GTB card equipped player) or anything??? -
browedit has not updated since I dont know when but I think it work perfectly fine with anything 2016 but not after...
-
Why and how does it repeat the costume at the first place ? was it because there is not enough limitation or conditions check that causing the loop then? and the loop can loop more than once?? because in some cases I have seen .@i got bigger than .@c in some test for ( .@i = 0; .@i < .@c; ++.@i ) side note: for the code box thing could changes be made so that it only run Codebox script after posting? so it load faster when trying to posting (aka before post is made) then after the post is made only then it load it's code? 1. How to add exclusion on this script like another array which exclude items from being found?
-
How to setup OFFLINE server for personal development use
utofaery replied to AnnieRuru's question in General Server Support
Nah all this time I am on window 7 Enterprise ultimate x32<<EDIT with visual studio 2017 and let the installer which downloaded from microsoft download all the package itself which resulted in 8~10GB total size and then when try to compile visual studio says retarget project or nothing... so I retarget ok build solution done. ... nothing happen lol. except where I did source edit which resulted heal(28) not working... The only sad thing about hercules is development is slowish compare to rathena but rathena is a ship with lots of hole and slow speed... -
First off don't get mad to link from rathena: https://rathena.org/board/topic/118192-on-checking-array-items-infinite-loop/ This is the test case I try to redo the thing but it's gotten into loop again and again. Don't get mad at me for not understanding this stuff. I always ask things till I get it.
-
How to setup OFFLINE server for personal development use
utofaery replied to AnnieRuru's question in General Server Support
I don't know if you realise this. You could retarget project even if you are not on Windows 10 SDK 10.0.15063 Windows 8.1 SDK I used 10.0.17763.0 and retarget project by rightclicking solution in solution explorer. function ok I think even in newer version of sdk for both rathena and hercules (retarget) and about download speed Do make use of internet download manager ... it's like "@speed 0" compare to normal way of download which is "@speed 100" it shorten download time by at least 75% if you use it. Nah I would not agree only developer grade or someone pro on source code stuff love linux more even when linux has nice and improved desktop environment the keyboard shortcut are all different if you are above pro window user you hate it (it's like your kitchen stuff is not where it should be and you need to learn or find them when you need them) I guess same here dah Westerner try to judge asian people's way to teach kid...sick and bad When I got the chance to learn to ride motorcycle I had nobody to teach me nothing all the adult say is keep your balance and hold on to the speed...including fall and break the bone. forgotten this: You should include the internet download manager into the guide too it helps with download speed with anything bigger than 500MB -
-
Crash rebellion random mapserver scriptcommand Class
utofaery replied to utofaery's question in General Server Support
k The down side is Only player can't play or use Heal(28) and some unknown crashy stuff... any way thanks for helping though. -
1. In the ancient age where everyone is still crawling around "eathena" which died out already, I ask a question, can we get something like Skill_avail.txt just like mob_avail.txt? and no answer or it's too complicated to do... I guess it's hard since skill are tied to source or what's not then.. 2. I see 2 way you could go from where you are right now. It would do you good if you would choose "plan D", since this "Plan C" of yours are currently dying. But if you do insist use custom skill way to implement it downside are you gonna have to do your own graphic for the "custom skill" (really cool sprite to showoff somehow)
-
Importfolder getarg land_skill_limit ItemAvail.txt @summon
utofaery replied to utofaery's question in General Server Support
5 because your answer simply is a single yes so i take it both can which is setarray #name[.@i] , blablabla setarray #name$[.@i] , blablabla can be done. and sql CREATE something blablabal? 6 means only need this line only? Sprite: 909 2 land_skill_limit: 14 // xsa // 9 < this is in config files and tested with @summon 1956 atleast 30 of them against target with really high hp about 7m and all 1956 casted aoe spell (multiple stormgust and meteorstorm) at the target like 10 minimum count of aoe spell on cell where target is at. then map server spit up alot of these ... [Warning]: skill_unitgrouptickset_search: tickset is full. ( failed for skill 'WZ_STORMGUST' on unit 2 ) 1. then it's weird last time it need me go to change every file but not import folder to take effect... 3 One simple question: does array start with -1 or 0? sometime it return 0 sometime -1 confusing... -
Specific Monster count on a map ( not mobcount command)
utofaery replied to utofaery's question in Script Support
May be high on coffee or something lol any way thanks for that script haven't test it yet. -
Have you search through this file already ?? Ragnarok\data\luafiles514\lua files\skillinfoskilltreeview.lub << this is the reason if it's not the server doing it. skillinfo_f.lub << and this is the script from the client doing the showing skill position << check it out... The reason I suggest you to go through the links is because it would be easier to add new skill lol. Skill are unique stuff not like mob can be avail'ed although hercules I have not found item_avail.txt.
-
Importfolder getarg land_skill_limit ItemAvail.txt @summon
utofaery posted a question in General Server Support
short questions first then long long question... 4. Why @summon'ed white plant or any thing can move but not @summon 2042 (SilverSniper) or @summon 1511 (Amon ra) can't move at all? in eathena amonra moves if summon ( if memory serves me correctly or was it otherwise. ) 5. in cases of storing arrays of Item Id from getinventorylist. can we make use of permanent player variable to store that array?? or should I create a custom sql table for that purpose? 6 have item avail gone from hercules? 1. tested multiple times on gunslinger against pupa... Hercules\conf\map\battle\battle.conf arrow_decrement: 0 << edits inside here works no using up any ammunitions of any kind Hercules\conf\import\battle.conf arrow_decrement: 0 << edits inside here NOT working at all??? ammunitions decreasing... so question is does the import folder of hercules actually working at all?? entries on Hercules\conf\map\battle.conf is unchanged. another case bow_unequip_arrow: false // xsa // true Setting placed in Hercules\conf\import\battle.conf no read but if place in Hercules\conf\map\battle\items.conf it got read and effective so how hercules import folder actually works for battle.conf? don't know if other files in import folder behaves like this or not. 2. When multiple stormgust cast'ed on the same cell and mapserver keep putting out [Warning]: skill_unitgrouptickset_search: tickset is full. ( failed for skill 'W Z_STORMGUST' on unit 2 ) does it has something to do with this setting? or should I set it to 31 instead so it don't put any warning of this type? land_skill_limit: 14 // xsa // 9 // Note 3: Value is a bit field. If no description is given, // assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) 3 I have script like this: How do I check if getarg(1) == empty or null which is suppose to be filled as .x1 but it's not filled (which is intended) -
Hercules\db\re\skill_tree.conf Follow through this and test again: https://herc.ws/wiki/Adding_new_skills
-
Specific Monster count on a map ( not mobcount command)
utofaery replied to utofaery's question in Script Support
Is there script way ?? apart from @mobsearch? -
Crash rebellion random mapserver scriptcommand Class
utofaery replied to utofaery's question in General Server Support
#include "common/hercules.h" #include "map/pc.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "getstoragelist", SERVER_TYPE_MAP, "x_O", HPM_VERSION, }; BUILDIN(getstoragelist) { struct map_session_data *sd = script->rid2sd(st); char card_var[SCRIPT_VARNAME_LENGTH]; int i = 0, j = 0, k = 0; if ( sd == NULL ) return true; for ( i = 0; i < VECTOR_LENGTH(sd->storage.item); i++ ) { pc->setreg( sd, reference_uid( script->add_variable("@storagelist_id"), j ), VECTOR_INDEX(sd->storage.item, i).nameid ); pc->setreg( sd, reference_uid( script->add_variable("@storagelist_amount"), j ), VECTOR_INDEX(sd->storage.item, i).amount ); pc->setreg( sd, reference_uid( script->add_variable("@storagelist_refine"), j ), VECTOR_INDEX(sd->storage.item, i).refine ); pc->setreg( sd, reference_uid( script->add_variable("@storagelist_identify"), j ), VECTOR_INDEX(sd->storage.item, i).identify ); pc->setreg( sd, reference_uid( script->add_variable("@storagelist_attribute"), j ), VECTOR_INDEX(sd->storage.item, i).attribute ); for ( k = 0; k < MAX_SLOTS; k++ ) { sprintf( card_var, "@storagelist_card%d", k +1 ); pc->setreg( sd, reference_uid( script->add_variable(card_var), j ), VECTOR_INDEX(sd->storage.item, i).card[k]); } pc->setreg( sd, reference_uid(script->add_variable("@storagelist_expire"), j ), VECTOR_INDEX(sd->storage.item, i).expire_time); pc->setreg( sd, reference_uid(script->add_variable("@storagelist_bound"), j ), VECTOR_INDEX(sd->storage.item, i).bound); for ( k = 0; k < MAX_ITEM_OPTIONS; k++ ) { sprintf( card_var, "@storagelist_opt_id%d", k + 1 ); pc->setreg(sd, reference_uid(script->add_variable(card_var), j), VECTOR_INDEX(sd->storage.item, i).option[k].index); sprintf( card_var, "@storagelist_opt_val%d", k + 1 ); pc->setreg(sd, reference_uid(script->add_variable(card_var), j), VECTOR_INDEX(sd->storage.item, i).option[k].value); sprintf( card_var, "@storagelist_opt_param%d", k + 1 ); pc->setreg(sd, reference_uid(script->add_variable(card_var), j), VECTOR_INDEX(sd->storage.item, i).option[k].param); } j++; } pc->setreg( sd, script->add_variable("@storagelist_count") , j ); return true; } HPExport void plugin_init (void) { addScriptCommand( "getstoragelist", "", getstoragelist ); } // src/plugins/xGetStorageList.c #include "common/hercules.h" #include "map/pc.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "maxbaselv", SERVER_TYPE_MAP, "x_O", HPM_VERSION, }; BUILDIN(maxbaselv) { struct map_session_data *sd = script->rid2sd(st); if ( sd == NULL ) return true; script_pushint( st, pc->maxbaselv(sd) ); return true; } BUILDIN(maxjoblv) { struct map_session_data *sd = script->rid2sd(st); if ( sd == NULL ) return true; script_pushint( st, pc->maxjoblv(sd) ); return true; } HPExport void plugin_init (void) { addScriptCommand( "maxbaselv", "", maxbaselv ); addScriptCommand( "maxjoblv", "", maxjoblv ); } // src/plugins/xMaxLvlCheck.c The 2 plugins. Mobbranch.txt << need seperate it. db/mob_customMVP.txt db/mob_customNormal.txt Unversioned files are not here, or do I need to pack them up as zip??? Mobbranch.txt Git Diff.txt -
Specific Monster count on a map ( not mobcount command)
utofaery posted a question in Script Support
I found this script 1. I hope to know how do I make a script to check for only a specific monster count from script without use bindatcmd? like directly check for specific monster count in a map but not other monster on the same map.