Jump to content

Haruka Mayumi

Members
  • Posts

    477
  • Joined

  • Last visited

  • Days Won

    27

Posts posted by Haruka Mayumi

  1. mes "^0000FF"+getd("." + albertaquest$ + "_collectionname$")+"^000000";

    This is a variable(red).. the #Town is called Hidden NPC Name.. Still too lazy to read the whole script. but I guess there would be some complications even if you change that variable if you didn't copy the whole code and paste it on another .txt instead of using duplicate.

  2. I used OVH, Digital Ocean and Vultr for server.. I tried this 3 and all I can say.. their performance is almost the same. yes almost.. OVH have all it's VPS, Dedicated Server DDoS Protected while Vultr Asian Servers don't have.. but Vultr Provides BGP configuration which also has ups and downs.. I've been to digital ocean last 2 years but all I can say is.. They are mediocre, Price and Performance based.

    As Akkarin Says.. You really don't need dedicated server just to run the server.. but the downside non-dedicated servers are shared resources, if the main server goes down, your server goes down too, but that's just mostly not the case anymore on hosting industry.. The good side on shared VPS is, it will just cost you a penny and still can run your server.. good for small time servers.

    As for Vy Low says.. If you have the budget and you are expecting a lot of players.. Dedicated server is the best choice as you are the only one using your server resources.. The downside is yeah it just Cost you 10x or more than the VPS monthly. and yes just sharing my experience too. you will mostly lag on vps not like dedicated server :3

  3. Since you are exchanging it already.. the input is from 1 to 1000

    input .@in,1,1000;

    You just need to change this line and add 1 line after it.. should be like this

    input .@in,0,1000;
    if(!.@in) end;
    • Upvote 1
  4. prontera,155,181,3	script	Yumi Test	94,{
    
    	for(.@i=0;.@i<getarraysize(.Require);.@i++)
    		.@menu$ += (countitem(.Require[.@i]) ? "- Exchange ^0055FF"+.ReqAmount[.@i]+"^000000 "+getitemname(.Require[.@i])+" to ^0055FF"+.ExcAmount[.@i]+"^000000 "+getitemname(.Exchange[.@i])+":":":");
    	.@sel = select(.@menu$)-1;
    	message strcharinfo(0),"Input amount 1-1000";
    	input .@in,1,1000;
    	if(countitem(.Require[.@sel]) < .ReqAmount[.@sel]*.@in){
    		message strcharinfo(0),"Insufficient "+getitemname(.Require[.@sel])+"";
    		end;
    	}
    	if(!checkweight(.Exchange[.@sel],.@in*.ExcAmount[.@sel])){
    		message strcharinfo(0),"Insufficient inventory space";
    		end;
    	}
    	delitem .Require[.@sel],.ReqAmount[.@sel]*.@in;
    	getitem .Exchange[.@sel],.@in*.ExcAmount[.@sel];
    end;
    	
    OnInit:
    	setarray .Require[0],501,502,503,504,505;
    	setarray .ReqAmount[0],1,1,1,1,1;
    	setarray .Exchange[0],512,513,514,515,516;
    	setarray .ExcAmount[0],50,25,20,30,45;
    end;
    }

     

  5. prontera,155,181,3	script	Yumi Test	94,{
    
    	for(.@i=0;.@i<getarraysize(.Require);.@i++)
    		.@menu$ += (countitem(.Require[.@i]) ? "- Exchange ^0055FF"+.ReqAmount[.@i]+"^000000 "+getitemname(.Require[.@i])+" to "+getitemname(.Exchange[.@i])+":":":");
    	.@sel = select(.@menu$)-1;
    	message strcharinfo(0),"Input amount 1-1000";
    	input .@in,1,1000;
    	if(countitem(.Require[.@sel]) < .ReqAmount[.@sel]*.@in){
    		message strcharinfo(0),"Insufficient "+getitemname(.Require[.@sel])+"";
    		end;
    	}
    	if(!checkweight(.Exchange[.@sel],.@in)){
    		message strcharinfo(0),"Insufficient inventory space";
    		end;
    	}
    	delitem .Require[.@sel],.ReqAmount[.@sel]*.@in;
    	getitem .Exchange[.@sel],.@in;
    end;
    	
    OnInit:
    	setarray .Require[0],501,502,503,504,505;
    	setarray .ReqAmount[0],5,2,3,4,1;
    	setarray .Exchange[0],512,513,514,515,516;
    end;
    }

     

    • Upvote 1
  6. 1. Maybe you forgot to reloadquestdb.
    2. Did you perhaps add it on import/quest_db.yml?. if yes, Don't forget to add the "Body:" after the header section. it should look like this..

    Header:
      Type: QUEST_DB
      Version: 1
    
    Body:
      - Id: 61000
        Title: Hourly Rewards Cooldown
        TimeLimit: +60m

     

    • Upvote 1
  7. prontera,155,181,3	script	Yumi Test	94,{
    
    	for(.@i=0;.@i<getarraysize(.Require);.@i++)
    		.@menu$ += (countitem(.Require[.@i]) ? "- Exchange with "+getitemname(.Require[.@i])+":":":");
    	.@sel = select(.@menu$)-1;
    	npctalk "Exchange with "+getitemname(.Require[.@sel]);
    	
    OnInit:
    	setarray .Require[0],501,502,503,504,505;
    end;
    }

     

    • Love 1
  8. I see that your IP on xml and the ip from error is not the same.. you probably forgot to fix it.

    if the IP is correct: 
    Do you have gepard?.. this happens when your server gepard is on.. but your client side is off and vice versa.

  9. @ra11 hmm.. It should be scripting. and database management for rAthena.. C,C++ I learned them on school so I skipped it here lmao.

    Here's a link from where you should start.. there's Sample folder located in that link. You can try to understand it via script_commands.txt
    https://github.com/rathena/rathena/tree/master/doc

     

    Hmm.. a lot like...

    C,C++,SQL.. Some ruby expressions, (some yaml parsing knowledge if you want to be kind of updated) and some stuff for advance administering the server like networking to provide some better experience and protection, linux setup, windows setup, Php, javascript, html, bootstrap etc for web..

    for client side.. Photoshop knowledge, Spriting, Lua Programming Language, Browedit, hex edit, resource hacking etc.. well I haven't mention them all since I forgot things I mostly don't use. also, some things I listed were not that much needed like bootstrap and javascript.. 

    • Upvote 1
  10. prontera,145,193,3	script	Dogoo	508,{
    
    while(1){
    	mes .name$;
    	mes "Hello there nyaa~ring";
    	mes "I'm a hired guide by gee-gee here.";
    	mes "I help people that have trouble or lost on what to do.";
    	next;
    	.@menu$ = "";
    	for(.@i=0;.@i<getarraysize(.GuideMenu$);.@i++);
    		.@menu$ = .@menu$ + .GuideMenu$ + ":";
    	.@menu$ = .@menu$ + "> Just passing by..";
    	.@select = select(.@menu$)-1;
    	if(.@select >= getarraysize(.GuideMenu$)){
    		mes .name$;
    		mes "I see, Hope you have a fun adventures to come.";
    		end;
    	}
    	callsub OnGuideSelect,.@select;
    	next;
    }
    end;
    
    OnGuideSelect:
    	//arg(0) = Selected Context;
    	.@size = getarraysize(getd(".GuideContext_"+getarg(0)+"$"));
    	for(.@i=0;.@i<.@size;.@i++){
    		mes .name$;
    		mes getd(".GuideContext_"+getarg(0)+"$["+.@i+"]");
    		next;
    	}
    return;
    
    OnInit:
    	.name$ = "[ ^FF5500Dogoo^000000 ]";
    	
    	setarray .GuideMenu$[0],
    					"> This is Menu 1","> This is Menu 2","> This is Menu 3";
    	
    	setarray .GuideContext_0$[0],	//This is Menu 1
    					"Menu 1 - First Bubble.",
    					"Menu 1 - Second Bubble.",
    					"Menu 1 - Third Bubble";
    	
    	setarray .GuideContext_1$[0],	//This is Menu 2
    					"Menu 2 - First Bubble.",
    					"Menu 2 - Second Bubble";
                                     
    	setarray .GuideContext_2$[0],	//This is Menu 3
    					"Menu 3 - First Bubble.",
    					"Menu 3 - Second Bubble",
    					"Menu 3 - Third Bubble.",
    					"Menu 3 - Fourth Bubble";
                                     
    end;
    }

    All you need to do is create .GuideContext_(MenuNumber-1)$[0],

  11. prontera,155,181,3	script	Test	94,{
    
    	setarray .@Options$[1],"Option 1","Option 2","Option 3";
    	for(.@i=1;.@i<=getarraysize(.@Options$);.@i++)
    		.@menu$ += (SaveOption[.@i] ? "":.@Options$[.@i])+":";
    	.@sel = select(.@menu$);
    	mes "You have chosen option "+.@sel;
    	mes "Option "+.@sel+" is now gone.";
    	SaveOption[.@sel] = 1;
    	close;
    }

     

  12. *noreturn
    
    Disables usage of map-warping items on a map:
     - Butterfly Wing (ID 602)
     - Yellow/Green/Red/Blue Butterfly Wing (IDs 14582-14585)
     - Siege Teleport Scroll (ID 14591)
     - Dungeon Teleport Scroll 1/2/3 (IDs 14527, 14581, 12352)
    
    The 'warpparty' and 'warpguild' script commands are also blocked for destinations outside the
    player's current map.

    you can also check ingame via @mapflag to see the mapflags associated on the map.

  13. I'm looking for a NEMO or better WARP patch to change the directory to read the .spr file of a robe/garment act..

    New Clients such as 20200902 can use another directory to read the sprite of an act file. 

    The image below shows you that .act and .spr are in the same directory.

    image.png.c1c03db0d2178ab3353dd6ce11b39950.png

    While on new clients.. the act and spr can be separated. Image Shown Below:
    1. Sprite directory/path
    image.png.bbe683cc253b7271e3af755fe05236e1.png
    2. Act directory/path
    image.png.cb068c81cb588c5a4a17a10392f205e7.png

    So, the goal on this request is to make a patch to read the sprite from the another directory such as the Image shown for valkyrie wing..
    Why need this for old clients? As we know, .spr can be more than 100kb+[Some custom can go 1mb+] , with the help of only reading 1 sprite file for the robe/garment.. we can lessen (125 * .spr size) for the grf.

    I saw the there are 2 path for robe in 20200902 client while there's only 1 path on older clients. i saw this through a hex editor.

    Hoping that Neo, 4144 or Functor could help on this. ?

    • Upvote 1
  14. 22 minutes ago, nishulovez said:

    there is no map or warp 

    \trunk\npc\warps\cities\morocc.txt
    //morocc,160,183,0    warp    moc002    2,1,moc_castle,94,181

    This is before episode of destruction of morocc. he can enable it on warps + npcs + maps_athena.conf

  15. 20 hours ago, Fanthasy said:

    My second question is, in this npc there is a charge to access the instance, but I was not able to make this charge only once every 24 hours for example, I was wondering how do I charge it only once during the period that I set, it's possible, I know, I just don't know how to develop this function, could you please help me?

    Since i'm lazy to read the whole content and just saw this.. I will answer only this one.

    you can do it by adding a variable to the player which contains timestamp ?

×
×
  • Create New...