Jump to content

REKT

Members
  • Posts

    206
  • Joined

  • Days Won

    1

Posts posted by REKT

  1. Hi rAthena!

    I'm running a server on eAthena, since http://eAthena.wsis not avaiable I decided to ask here instead.

     

    First thing first kindly accept my apology if I posted in a wrong section.

     

    So, here's the thing, the Acolyte's skill Pneuma (skillID 25) sprite is not showing properly in my server.

    The skill's sprite is 3x3 cells, instead of 1x1, 

    FW9Ln9v.jpg

     

    I thought it was a client side error, so I've tried to replace the Pneuma skill sprite on my grfs [pneuma1.str, pneuma2.str, pneuma3.str] with a custom pneuma with timer. Still, the Pneuma was showing with 3x3 cells sprite. (with 3x3 3 seconds left pneuma-duration timer)

    iJkR7OSl.jpg

     

    So I suppose its not a client-sided error.

     

    But the Pneuma's range is working properly (3x3 instead of 4x4), and when I used @effect 141 (Pneuma's skill effect according to doc/effect_list.txt) the sprite was showing properly too.

    zt00ox3.jpg

     

    I tried to reverse Angelmelody of herc.ws solution to make "Old pneuma effect", but when I checked my db/skill_unit_db.txt its already

     25,0x85,    ,  1, 0,  -1,all,   0x003	//AL_PNEUMA
    

    So I check the eAthena's github db/skill_unit_db.txt and it's same as mine

     25,0x85,    ,  1, 0,  -1,all,   0x003	//AL_PNEUMA
    

    Is there any way to fix this? Thanks!

    I've attached my diffed client to see If there's any error on the client.

    attachicon.gifragnarok.zip

    Why ur still using eAthena? i don't understand this people they still keep on using an outdated emulator try to moved to rAthena.

    there's a big gap between this two emulator.

    If you don't want to encounter any error, i'd recommed to move to rAthena.

  2.  

     

     

    this is the new behavior of this skill using 2011-11-22 clients above.

     

    Oh thanks, I made it work in 2013-08-07. removed the sliding effect. :)

    May i know how did you managed it? Through hexing or source?

     

     

    sorry for the late reply. It was based on source code. 

     

    Mind share?

  3. Try to rediff your client.

    post-686-0-30990400-1468347650_thumb.jpeg

    I guess the mention above post said that he wanted to achieved something so, in his case he wanted to use a dual client.exe in that server he played. However he get disconnected. Reason, maybe th server use Gepard Shield Blocks dual client. Or the server use something that blocks other clients.

  4. Rich kid :) actually u can just find a GM without paid.. Except for Developer unless if u have heavy modifications u can pay them by $ per hour rate.

    You can check Paid services fo RO hosting however i'm not recommended to use them because of some issue reasons.

    Goodluck!

  5. Ok I got it!

     

    src/map/clif.c

    void clif_parse_cashshop_open_request( int fd, struct map_session_data* sd ){
    	sd->npc_shopid = -1; // Set npc_shopid when using cash shop from "cash shop" button [Aelys|Susu] bugreport:96
    	clif_cashshop_open( sd );
    ++	npc_script_event(sd, NPCE_CASHSHOP);
    }
    

    In any npc:

    -	script	dubnpc	-1,{
    OnCashShopOpening:
    	debugmes "it works!!";
    	end;
    }
    

    Tested and working

    09d6badbe5.png

     

    I edited my first post too so that everything's in one post

     

    This what i want :D pretty neat! i have an idea for this thank you again Kuro

  6. You could add an event label and then call it when opening the shop. I know how to create a label but I have no idea where you could put the call ^^

     

     

    Let's say you want to create a label named 'OnCashShopOpening' (yeah should think about something else ^^)

     

    src/map/npc.c :

    void npc_read_event_script(void)
    {
    	int i;
    	struct {
    		char *name;
    		const char *event_name;
    	} config[] = {
    		{"Login Event",script_config.login_event_name},
    		{"Logout Event",script_config.logout_event_name},
    		{"Load Map Event",script_config.loadmap_event_name},
    		{"Base LV Up Event",script_config.baselvup_event_name},
    		{"Job LV Up Event",script_config.joblvup_event_name},
    		{"Die Event",script_config.die_event_name},
    		{"Kill PC Event",script_config.kill_pc_event_name},
    		{"Kill NPC Event",script_config.kill_mob_event_name},
    		{"Stat Calc Event",script_config.stat_calc_event_name},
    ++		{"Cash Shop Event",script_config.cash_shop_event_name},
    	}; 

    src/map/npc.h :

    //Script NPC events.
    enum npce_event {
    	NPCE_LOGIN,
    	NPCE_LOGOUT,
    	NPCE_LOADMAP,
    	NPCE_BASELVUP,
    	NPCE_JOBLVUP,
    	NPCE_DIE,
    	NPCE_KILLPC,
    	NPCE_KILLNPC,
    	NPCE_STATCALC,
    ++	NPCE_CASHSHOP,
    	NPCE_MAX
    }; 

    src/map/script.c :

    struct Script_Config script_config = {
    	1, // warn_func_mismatch_argtypes
    	1, 65535, 2048, //warn_func_mismatch_paramnum/check_cmdcount/check_gotocount
    	0, INT_MAX, // input_min_value/input_max_value
    	"OnPCDieEvent", //die_event_name
    	"OnPCKillEvent", //kill_pc_event_name
    	"OnNPCKillEvent", //kill_mob_event_name
    	"OnPCLoginEvent", //login_event_name
    	"OnPCLogoutEvent", //logout_event_name
    	"OnPCLoadMapEvent", //loadmap_event_name
    	"OnPCBaseLvUpEvent", //baselvup_event_name
    	"OnPCJobLvUpEvent", //joblvup_event_name
    	"OnPCStatCalcEvent", //stat_calc_event_name
    	"OnTouch_",	//ontouch_name (runs on first visible char to enter area, picks another char if the first char leaves)
    	"OnTouch",	//ontouch2_name (run whenever a char walks into the OnTouch area)
    ++	"OnCashShopOpening",
    }; 

    src/map/script.h :

    extern struct Script_Config {
    	unsigned warn_func_mismatch_argtypes : 1;
    	unsigned warn_func_mismatch_paramnum : 1;
    	int check_cmdcount;
    	int check_gotocount;
    	int input_min_value;
    	int input_max_value;
    
    	const char *die_event_name;
    	const char *kill_pc_event_name;
    	const char *kill_mob_event_name;
    	const char *login_event_name;
    	const char *logout_event_name;
    	const char *loadmap_event_name;
    	const char *baselvup_event_name;
    	const char *joblvup_event_name;
    	const char *stat_calc_event_name;
    
    	const char* ontouch_name;
    	const char* ontouch2_name;
    ++	const char* cash_shop_event_name;
    } script_config;
    

    Then you can call for that label using 'npc_script_event(sd, NPCE_CASHSHOP);'

     

    I don't know if there's a way to call a specific npc event or even to call a script function, sorry but I don't know much about src at all so that's all I've got.

     

    The real matter here is where are you gonna put that command? I quickly checked the cash shop source and I don't have a clue, guess you'll have to try it out ^^

     

    Good luck ~~

     

    I was wondering how does it work via script? can anyone give an example?

  7.  

    *getitembound <item id>,<amount>,<bound type>{,<account ID>};

    *getitembound "<item name>",<amount>,<bound type>{,<account ID>};

    This command behaves identically to 'getitem', but the items created will be

    bound to the target character as specified by the bound type. All items created

    in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in

    some cases cannot be traded or stored.

    Valid bound types are:

     Bound_Account : Account Bound item

     Bound_Guild   : Guild Bound item

     Bound_Party   : Party Bound item

     Bound_Char    : Character Bound item

  8. Don't expect to much RO Private Hosting anymore (no offense) but its true. it same happens before with AsuraHosting.
    Just go hire a professional company that can host your RO. there are good companies out there however they don't support RO.

×
×
  • Create New...