Jump to content

Hyroshima

Members
  • Posts

    159
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by Hyroshima

  1. On 7/15/2023 at 11:34 PM, Frost Diver said:

    It's coming from the npc script in this line:

    specialeffect(EF_FIREWALL2, AREA, .@cid);

    and this line:

    specialeffect(EF_HEAL, AREA, getcharid(3));

     

    Alter:

    specialeffect(EF_FIREWALL2, AREA, .@cid);

    To:

    specialeffect(EF_FIREWALL2, AREA, convertpcinfo(.@cid,CPC_NAME));

     

    And:

    specialeffect(EF_HEAL, AREA, getcharid(3));

    To:

    specialeffect(EF_HEAL, AREA, strcharinfo(0));

     

  2. On 6/22/2023 at 2:14 PM, playniks said:

    Hello! I really need help about this ASURA STRIKE. My asura strike doesn't seem to activate instant cast even when dex reach x+y=150, I even maxed it out to 999 but still casting is  super duper fast cast.  All other skills working fine, doing insta cast when dex reach 150.  
    Tried to reduce the casting of Asura Strike level 5 in skill_db.yml to 1 and 0, but problem still persist.

    Please help, how do I resolve this issue?

    Had the same problem with an older revision, I solved it by just displaying the effect if the player is already nocasted (instant skill), as the effect works normally below the nocast cap.

    in the skill.cpp file look for the function: int skill_castend_damage_id

    then look for the asura skill: case MO_EXTREMITYFIST:

    find this function in the asura function case: skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); 

    add this below it:

    if(status_get_dex(&sd->bl) >= battle_config.castrate_dex_scale)
    	clif_specialeffect(&sd->bl,328,AREA);

     

    Obs: It's not the best solution, but it will work.

  3. On 6/25/2023 at 10:09 AM, Orce said:

    Normalmente este .lub pode vir cryptografado e uma.maneira de abrir ele e converter ele sem erro e já com as tabula oes corretas e usando o programa grf editor. Aqui no fórum mesmo vc encontra ele.

    No caso dele está cryptografado então no editor de texto não vai adiantar. 

    @all

    Uma dica de editor de texto eficiente é o Notepad++

    Realmente se ele estiver pegando os arquivos do RO oficial estão criptografados, mas muita gente já usa um patch/client com arquivos que já foram decompilados como base.

    Esses 2 tópicos podem ajudar a decompilar os lub:

  4. According to a need I had, I didn't find another way to check how many items were left in a npc shop like marketshop, so I made this command to return the amount that still exists in the npc.
     

    *npcshopstock("<name>",<item_id>);
      
      Obs: In case of -1 return the item was not found in the shop.

    Example:

    prontera,157,168,5	script	Stock View	113,{
    
    	if(!npcshopstock("Bugigangas",607))
    	{
    		mes "Item "+getitemname(607)+" is out of stock.";
    		close;
    	}
    	mes "Item "+getitemname(607)+" has "+npcshopstock("Bugigangas",607)+"x in stock.  is out of stock.";
    	if(select("Open Shop:Cancel")==2) close;
    	close2;
    	callshop "Bugigangas",1;
    	end;
    }
    -	marketshop	Bugigangas	112,607:5000:150

    I have little experience in src but I can do some things lol ?

    npcshopstock.diff

    • MVP 1
  5. 17 hours ago, Rook1es said:

    Hello can you fixed the bug when buying an item through vend it say 'You don't have enough items'

    which revision are you using?

    if it is before 2021 you must use the previous versions of the mod here in the topic.

    @Edit
      I found the fault related to coins and tcgs, i will make the corrections later and update the previous post with the 9.2 file (Cash and Zeny find themselves normal).

  6. 17 hours ago, solid2005 said:

    item_db.exists need  to be enhance.

    at the time of uploading I sent the file that still had this warning ?

    as I ended up deleting the file that I had already fixed, I'll do it again and send it here as 9.1 (fix itemdb_exists())

    I will edit the post where I make rev9 available and put 9.1 under it

     

    8 hours ago, abdol said:

    is it working on 2018 clients?

     

    has been tested on client 2017 and 2020

  7. I made some corrections, it was tested on revisions 17687 and 17700.
    ExtendedVending_Rev9.1.diff

     

    @Edit

     Manual fix for 'You do not have enough items' (diff 9.1)

    in src/map/vending.cpp search for:

    if (battle_config.ex_buying_bound) {
    	for (k = 0; k < MAX_INVENTORY; k++) {
    		if (sd->inventory.u.items_inventory[k].nameid == vsd->vend_loot) {
    			if (sd->inventory.u.items_inventory[k].bound) {
    				clif_displaymessage(sd->fd, msg_txt(sd,1604));
    				return;
    			}
    			loot_count += sd->inventory.u.items_inventory[k].amount;
    		}
    	}
    }

    and replace with:

    for (k = 0; k < MAX_INVENTORY; k++) {
    	if (sd->inventory.u.items_inventory[k].nameid == vsd->vend_loot) {
    		if (sd->inventory.u.items_inventory[k].bound && !battle_config.ex_buying_bound) {
    			clif_displaymessage(sd->fd, msg_txt(sd,1604));
    			return;
    		}
    		loot_count += sd->inventory.u.items_inventory[k].amount;
    	}
    }

    Obs: When I have some time I will update the diff to 9.2 and remove this manual fix.

    • Love 1
    • Like 1
  8. 10 hours ago, Jayz said:

    Whats wrong here, this is actually working but have [Warning]: script:query_sql: Too many columns, discarding last 1 columns. In the part of UPDATE

    .@s = query_sql("SELECT `account_id` FROM `points_system` WHERE `account_id` = " + getcharid(3));
    if (.@s) {
    query_sql("UPDATE `points_system` SET `hpoints` = (`hpoints` + "+.@amount+") WHERE `account_id` = "+getcharid(3)+" LIMIT 1");
    } else {
    query_sql("INSERT INTO `points_system` (`account_id`, `hpoints`) VALUES (" + getcharid(3) + ", " + .@amount + ")");
    }

     

     

    what is the points_system table  structure?

  9. 11 hours ago, LadyNanuia said:

    Basically, a script / way to make it so that if you have 5 ppl in an instance, whenever a monster dies, all of them have a chance of obtaining the drop instead of it just dropping on the floor like normally, this would be encourage party play since many times people will not want to party due to having to share the loot, to clarify i dont want want just 1 person to randomly get it, i want the roll to done individually for all members and if it wouldve dropped, they get it in their inventory.

     

    I hope this makes sense and any guide / help / assistance would be greatly appreciated and if required im willing to pay for a working version of this for my instances,

     

    Thank you in advance.

     

    That way you just need to adapt it to your instance script, in the simple way you would only need to add the code in the mob death label of your instance.

    	setarray .@Drops[0],
    		607,5,10000,	//5x Ygg 100%
    		523,10,5000,	//10x Holy Water 50%
    		12090,5,488,	//5x Steamed Desert Scorpions 4,88%
    		5086,1,2200;	//1x Alarm Mask 22%
    
    
    	getpartymember getcharid(1),1;
    	getpartymember getcharid(1),2;
    
    	for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1)
    	{	
    		if(isloggedin($@partymemberaid[.@i],$@partymembercid[.@i]))
    		{
    			attachrid($@partymemberaid[.@i]);		
    			else if(strcharinfo(3) == instance_mapname("map_instance"))
    			{	
    				for(set .@i,0; .@i<getarraysize(.@Drops); set .@i,.@i+3)
    				{
    					set .@rnd,rand(1,10000);
    					if(.@rnd <= .@Drops[.@i+2])
    					{
    						getitem .@Drops[.@i],.@Drops[.@i+1];
    						if(.@Drops[.@i+2] <= 500)
    						{
    							set .@calc,(.@Drops[.@i+2]*100);
    							set .@cRess$,(.@calc%10000 ? (.@calc/10000)+","+substr(""+(.@calc%10000),0,1):(.@calc/10000))+"%";
    							announce "[IN INSTANCE]: "+strcharinfo(0)+" gained "+.@Drops[.@i+1]+"x "+getitemname(.@Drops[.@i])+" ~ "+.@cRess$+"",bc_all;
    						}
    					}
    				}
    			}
    			detachrid;
    		}
    	}
    	end;

     

    • Upvote 1
    • Love 1
  10. 3 hours ago, Dolphin86 said:

    i actually have something similar to that and its currently running on my server, but without that fancy graphic.

    I started this idea because rag has a lot of limitations, and for things to get interesting there are a lot of obstacles, I had help from some friends in parts that I don't have enough knowledge in the src part and in the client part.

    After a long time working on this idea, I'm finalizing it.

    • Upvote 1
    • Love 1
  11. maybe many here know mir4 nft (or maybe not lol), but I found their mining system pretty cool and I'm developing it for rag.

    a lot of problems appeared, a lot of headache lol, I have friends who also help me both on the client and src side.

    much of it is already functional including @autofarm.

    I've been running out of time lately but I have several cool projects that I'll bring to the community soon

     

    @Edit

    rarity effect more similar to the original idea

    C1aa7ZntrL.gif.2d60534800a00653613de0343c2d5f67.gif

     

    Current system operation#1


     

    This script is currently in a fundraising campaign to make it free.

    I cannot post a link to the campaign to avoid breaking the community rule.

    If you want to contribute, call me on discord: Hyroshima#1621

     

    • Upvote 7
    • Love 1
    • MVP 1
    • Like 1
  12. then you use to create like this:

    	setarray .@Instance_Name$[0], "gld_dun01", "gld_dun02", "gld_dun03";
    
    	switch (select("Create Instance", "Enter Instance", "Exit")) {
    		case 1:
    			set @menu_slt, select("Guild Dungeon 1","Guild Dungeon 2","Guild Dungeon 3");
    			set @myInstance$,.@Instance_Name$[(@menu_slt-1)];
    			switch(@menu_slt) {
    				case 1:
    					<create instance for gld01>
    					break;
    				case 2:
    					<create instance for gld02>
    					break;
    				case 3:
    					<create instance for gld03> 
    					break;
    			}			
    			
    		//NOW AFTER THE PLAYER CREATES INSTANCE THE NPC WILL THEN CLOSE DIALOGUE AND THE PLAYER WILL BE UNATTACHED TO NPC.              
    		//THE PROBLEM IS HERE IN CASE 2. MY QUESTION IS.... HOW WILL NPC REGNIZE YOUR CURRENT INSTANCE???
    		case 2:
    			if(@myInstance$ == ""){ mes "instance not created..."; close; }
    			instance_enter(@myInstance$);
    			set @myInstance$,"";
    			break;
    	}
    	end;

    that way you can use case 2 on another npc too.

     

  13. 	setarray .@Instance_Name$[0], "gld_dun01", "gld_dun02", "gld_dun03";
    
    	switch (select("Create Instance", "Enter Instance", "Exit")) {
    		case 1:
    			set @menu_slt, select("Guild Dungeon 1","Guild Dungeon 2","Guild Dungeon 3");
    			switch(@menu_slt) {
    				case 1:
    					<create instance for gld01>
    					break;
    				case 2:
    					<create instance for gld02>
    					break;
    				case 3:
    					<create instance for gld03> 
    					break;
    			}
    			
    		//NOW AFTER THE PLAYER CREATES INSTANCE THE NPC WILL THEN CLOSE DIALOGUE AND THE PLAYER WILL BE UNATTACHED TO NPC.              
    		//THE PROBLEM IS HERE IN CASE 2. MY QUESTION IS.... HOW WILL NPC REGNIZE YOUR CURRENT INSTANCE???
    		case 2:
    			if(!@menu_slt){ mes "instance not created..."; close; }
    			instance_enter(.@Instance_Name$[(@menu_slt-1)]);
    			break;
    	}
    	end;

    this might solve your problem, but you need to check if the instance was created before teleporting.

    I did a generic check

    • Upvote 1
  14. hello everyone xD, could someone tell me if it's possible to make the player run an atk on npc? so that the animation appears when the player attacks something?

    I tried skilleffect 457;

    it even makes an animation but it's not the attack ;/

    or if there is any way to make the player simulate the animation effect when it is attacking a mob but on an npc ;/

    grateful for your time ?

×
×
  • Create New...