I've used plenty of proxy servers, so this is just a heads up from my experience.
VPS are a waste of time as far as proxy servers are concerned. I had some really expensive vps in some of the Asian and S.A. countries and they helped very little or slowed down most people. This is because most vps use a crap port speed which doesn't help anyone. But I even upgraded the port speed to 1 Gbps on some and still didn't help. Shared connection is a bish.
I had the same experience with cloud servers. These all claimed 1 gbps port speeds and great connection, but same result.
My positive results have been and continue to be dedicated servers as proxies. Sure it's significantly more expensive, but players that use dedicated proxies confirm that the delay and ping are noticeably better. You can slightly reduce the cost if you do not get the proxy ddos protected and just set up the ip to get nullrouted if it gets spammed. That way people can just go on your main ip in case of an attack.
Location of proxies is extremely important. I'll use Brazil as an example since this is here we found this to be very important. We first got a proxy somewhere towards the middle of Brazil, since we could target the most people. Even though people there have crap connections, the ones that were further up north than the proxy ended up getting more delay by using the proxy. That's because our main server was in Canada. The people that were coming from southern Brazil had a better connection using the proxy than going directly to the main.
Lastly to the people that say proxies don't help, you are right for the most part. You have to set it up properly and get proper equipment for it to make any noticeable difference. But doing it right does help quite a lot of people. We are currently running a West Coast proxy optimized for Asian connections and about 20-30% of our total players use it over the main connection.
Just my own experience in the matter.
yes it should be different. webhosting and your server to less stress for the load of process. if you having a hard time to fix it you can contact me thru supports.
there is another solution for that change the name in system/itemlua.lub and change these item ¿ëÀÇ?¸Á?È« name to your specific name. i think also it is client hex? lets wait other reply.
So i had to go over my brandish spear again but figured out most of it
Can be used a few different ways..... splash on a grid with movement is really smooth with it
The results of this modification is my magicalbullet and desperado is a UNT skill
No idea how to explain it other then for you to try it yourself :
struct square {
int val1[19];
int val2[19];
};
This number for square should be increased as high as you can if you wanna keep using this square grid... Ill have to verify this later because re declaring it causes issues but its relative to the amount of cells were hitting
static void skill_brandishspear_first(struct square *tc, uint8 dir, int16 x, int16 y)
{
nullpo_retv(tc);
if(dir == 0){
tc->val1[0]=x;
tc->val1[1]=x+1;
tc->val1[2]=x-1;
tc->val1[3]=x;
tc->val1[4]=x+1;
tc->val1[5]=x+1;
tc->val1[6]=x;
tc->val1[7]=x+1;
tc->val1[8]=x-1;
tc->val1[9]=x;
tc->val1[10]=x+1;
tc->val1[11]=x-1;
tc->val1[12]=x;
tc->val1[13]=x+1;
tc->val1[14]=x-1;
tc->val1[15]=x;
tc->val1[16]=x+1;
tc->val1[17]=x-1;
tc->val2[0]=y;
tc->val2[1]=y;
tc->val2[2]=y;
tc->val2[3]=y-1;
tc->val2[4]=y-1;
tc->val2[5]=y-1;
tc->val2[6]=y-2;
tc->val2[7]=y-2;
tc->val2[8]=y-2;
tc->val2[9]=y-3;
tc->val2[10]=y-3;
tc->val2[11]=y-3;
tc->val2[12]=y-4;
tc->val2[13]=y-4;
tc->val2[14]=y-4;
tc->val2[15]=y+1;
tc->val2[16]=y+1;
tc->val2[17]=y+1;
} else if(dir==2){
tc->val1[0]=x+3;
tc->val1[1]=x+3;
tc->val1[2]=x+3;
tc->val1[3]=x+4;
tc->val1[4]=x+4;
tc->val1[5]=x+4;
tc->val1[6]=x+2;
tc->val1[7]=x+2;
tc->val1[8]=x+2;
tc->val1[9]=x+1;
tc->val1[10]=x+1;
tc->val1[11]=x+1;
tc->val1[12]=x-1;
tc->val1[13]=x-1;
tc->val1[14]=x-1;
tc->val1[15]=x;
tc->val1[16]=x;
tc->val1[17]=x;
tc->val2[0]=y;
tc->val2[1]=y+1;
tc->val2[2]=y-1;
tc->val2[3]=y;
tc->val2[4]=y+1;
tc->val2[5]=y+1;
tc->val2[6]=y;
tc->val2[7]=y+1;
tc->val2[8]=y-1;
tc->val2[9]=y;
tc->val2[10]=y+1;
tc->val2[11]=y-1;
tc->val2[12]=y;
tc->val2[13]=y+1;
tc->val2[14]=y-1;
tc->val2[15]=y;
tc->val2[16]=y+1;
tc->val2[17]=y-1;
} else if(dir==4){
tc->val1[0]=x;
tc->val1[1]=x+1;
tc->val1[2]=x-1;
tc->val1[3]=x;
tc->val1[4]=x+1;
tc->val1[5]=x+1;
tc->val1[6]=x;
tc->val1[7]=x+1;
tc->val1[8]=x-1;
tc->val1[9]=x;
tc->val1[10]=x+1;
tc->val1[11]=x-1;
tc->val1[12]=x;
tc->val1[13]=x+1;
tc->val1[14]=x-1;
tc->val1[15]=x;
tc->val1[16]=x+1;
tc->val1[17]=x-1;
tc->val2[0]=y;
tc->val2[1]=y;
tc->val2[2]=y;
tc->val2[3]=y+1;
tc->val2[4]=y+1;
tc->val2[5]=y+1;
tc->val2[6]=y+2;
tc->val2[7]=y+2;
tc->val2[8]=y+2;
tc->val2[9]=y+3;
tc->val2[10]=y+3;
tc->val2[11]=y+3;
tc->val2[12]=y+4;
tc->val2[13]=y+4;
tc->val2[14]=y+4;
tc->val2[15]=y-1;
tc->val2[16]=y-1;
tc->val2[17]=y-1;
} else if(dir==6){
tc->val1[0]=x-3;
tc->val1[1]=x-3;
tc->val1[2]=x-3;
tc->val1[3]=x-4;
tc->val1[4]=x-4;
tc->val1[5]=x-4;
tc->val1[6]=x-2;
tc->val1[7]=x-2;
tc->val1[8]=x-2;
tc->val1[9]=x-1;
tc->val1[10]=x-1;
tc->val1[11]=x-1;
tc->val1[12]=x+1;
tc->val1[13]=x+1;
tc->val1[14]=x+1;
tc->val1[15]=x;
tc->val1[16]=x;
tc->val1[17]=x;
tc->val2[0]=y;
tc->val2[1]=y+1;
tc->val2[2]=y-1;
tc->val2[3]=y;
tc->val2[4]=y+1;
tc->val2[5]=y+1;
tc->val2[6]=y;
tc->val2[7]=y+1;
tc->val2[8]=y-1;
tc->val2[9]=y;
tc->val2[10]=y+1;
tc->val2[11]=y-1;
tc->val2[12]=y;
tc->val2[13]=y+1;
tc->val2[14]=y-1;
tc->val2[15]=y;
tc->val2[16]=y+1;
tc->val2[17]=y-1;
} else if(dir==1){
tc->val1[0]=x;
tc->val1[1]=x+1;
tc->val1[2]=x+2;
tc->val1[3]=x;
tc->val1[4]=x;
tc->val1[5]=x+1;
tc->val1[6]=x+2;
tc->val1[7]=x+2;
tc->val1[8]=x+1;
tc->val1[9]=x+1;
tc->val1[10]=x+2;
tc->val1[11]=x+2;
tc->val1[12]=x+3;
tc->val1[13]=x+3;
tc->val1[14]=x+3;
tc->val1[15]=x+4;
tc->val1[16]=x+3;
tc->val1[17]=x+4;
tc->val1[18]=x+4;
tc->val2[0]=y;
tc->val2[1]=y;
tc->val2[2]=y;
tc->val2[3]=y-1;
tc->val2[4]=y-2;
tc->val2[5]=y-1;
tc->val2[6]=y-1;
tc->val2[7]=y-2;
tc->val2[8]=y-2;
tc->val2[9]=y-3;
tc->val2[10]=y-3;
tc->val2[11]=y-4;
tc->val2[12]=y-4;
tc->val2[13]=y-1;
tc->val2[14]=y-2;
tc->val2[15]=y-2;
tc->val2[16]=y-3;
tc->val2[17]=y-3;
tc->val2[18]=y-4;
} else if(dir==3){
tc->val1[0]=x+4;
tc->val1[1]=x+4;
tc->val1[2]=x+4;
tc->val1[3]=x+3;
tc->val1[4]=x+3;
tc->val1[5]=x+3;
tc->val1[6]=x+3;
tc->val1[7]=x+2;
tc->val1[8]=x+2;
tc->val1[9]=x+2;
tc->val1[10]=x+2;
tc->val1[11]=x+2;
tc->val1[12]=x+1;
tc->val1[13]=x+1;
tc->val1[14]=x+1;
tc->val1[15]=x+1;
tc->val1[16]=x;
tc->val1[17]=x;
tc->val1[18]=x;
tc->val2[0]=y+4;
tc->val2[1]=y+3;
tc->val2[2]=y+2;
tc->val2[3]=y+4;
tc->val2[4]=y+3;
tc->val2[5]=y+2;
tc->val2[6]=y+1;
tc->val2[7]=y+4;
tc->val2[8]=y+3;
tc->val2[9]=y+2;
tc->val2[10]=y+1;
tc->val2[11]=y;
tc->val2[12]=y+3;
tc->val2[13]=y+2;
tc->val2[14]=y+1;
tc->val2[15]=y;
tc->val2[16]=y+2;
tc->val2[17]=y+1;
tc->val2[18]=y;
} else if(dir==5){
tc->val1[0]=x-4;
tc->val1[1]=x-3;
tc->val1[2]=x-2;
tc->val1[3]=x-4;
tc->val1[4]=x-3;
tc->val1[5]=x-2;
tc->val1[6]=x-1;
tc->val1[7]=x-4;
tc->val1[8]=x-3;
tc->val1[9]=x-2;
tc->val1[10]=x-1;
tc->val1[11]=x;
tc->val1[12]=x-3;
tc->val1[13]=x-2;
tc->val1[14]=x-1;
tc->val1[15]=x;
tc->val1[16]=x-2;
tc->val1[17]=x-1;
tc->val1[18]=x;
tc->val2[0]=y+4;
tc->val2[1]=y+4;
tc->val2[2]=y+4;
tc->val2[3]=y+3;
tc->val2[4]=y+3;
tc->val2[5]=y+3;
tc->val2[6]=y+3;
tc->val2[7]=y+2;
tc->val2[8]=y+2;
tc->val2[9]=y+2;
tc->val2[10]=y+2;
tc->val2[11]=y+2;
tc->val2[12]=y+1;
tc->val2[13]=y+1;
tc->val2[14]=y+1;
tc->val2[15]=y+1;
tc->val2[16]=y;
tc->val2[17]=y;
tc->val2[18]=y;
} else if(dir==7){
tc->val1[0]=x-4;
tc->val1[1]=x-3;
tc->val1[2]=x-2;
tc->val1[3]=x-4;
tc->val1[4]=x-3;
tc->val1[5]=x-2;
tc->val1[6]=x-1;
tc->val1[7]=x-4;
tc->val1[8]=x-3;
tc->val1[9]=x-2;
tc->val1[10]=x-1;
tc->val1[11]=x;
tc->val1[12]=x-3;
tc->val1[13]=x-2;
tc->val1[14]=x-1;
tc->val1[15]=x;
tc->val1[16]=x-2;
tc->val1[17]=x-1;
tc->val1[18]=x;
tc->val2[0]=y-4;
tc->val2[1]=y-4;
tc->val2[2]=y-4;
tc->val2[3]=y-3;
tc->val2[4]=y-3;
tc->val2[5]=y-3;
tc->val2[6]=y-3;
tc->val2[7]=y-2;
tc->val2[8]=y-2;
tc->val2[9]=y-2;
tc->val2[10]=y-2;
tc->val2[11]=y-2;
tc->val2[12]=y-1;
tc->val2[13]=y-1;
tc->val2[14]=y-1;
tc->val2[15]=y-1;
tc->val2[16]=y;
tc->val2[17]=y;
tc->val2[18]=y;
}
}
this is my grid
need to make sure you mark the cell YOU ARE STANDING ON if you wanna use it with RANGED
I cant explain the grid but hold on maybe i can draw it
basically you have a slot for x and y as you look at this
tc->val1[17]=x;
tc->val1[18]=x;
tc->val2[0]=y+4;
tc->val2[1]=y+3;
tc->val2[2]=y+2;
you see how Y starts after 18 Xs for this direction ?
so these two would be a pair
tc->val1[0]=x-4;
tc->val2[0]=y-4;
Im looking at direction 7 which is...facing the top right from center
That would be the out most cells
static void skill_brandishspear_dir(struct square *tc, uint8 dir, int are)
{
int c;
nullpo_retv(tc);
for( c = 0; c < 19; c++ ) {
switch( dir ) {
case 0: tc->val2[c]+=are; break;
case 1: tc->val1[c]-=are; tc->val2[c]+=are; break;
case 2: tc->val1[c]-=are; break;
case 3: tc->val1[c]-=are; tc->val2[c]-=are; break;
case 4: tc->val2[c]-=are; break;
case 5: tc->val1[c]+=are; tc->val2[c]-=are; break;
case 6: tc->val1[c]+=are; break;
case 7: tc->val1[c]+=are; tc->val2[c]+=are; break;
}
}
}
I changed this to increase the max of growth function
for( c = 0; c < 19; c++ ) {
so now we wont get stack errors
and finally
static void skill_brandishspear(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
{
int c,n=0;
uint8 dir;
struct square tc;
int x, y;
nullpo_retv(bl);
x = bl->x;
y = bl->y;
dir = map->calc_dir(src, x, y);
skill->brandishspear_first(&tc,dir,x,y);
skill->brandishspear_dir(&tc,dir,4);
skill->area_temp[1] = bl->id;
for(c=0;c<19;c++){
if(c==0||c==19) skill->brandishspear_dir(&tc,dir,-1);
map->foreachincell(skill->area_sub,
bl->m,tc.val1[c%19],tc.val2[c%19],BL_CHAR,
src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1,
skill->castend_damage_id);
}
}
first line
int c,n=0;
No idea what N does but to me it is useless, im pretty sure N is the amount of tiers in brandish spear.. lvl 1 3 7 and 9
skill->brandishspear_dir(&tc,dir,4);
So this is why its flipped, the final number is the placement , so if you set it to 0, it would be closer to you... its weird but id leave it -4 for the same results that i get
for(c=0;c<19;c++){
if(c==0||c==19) skill->brandishspear_dir(&tc,dir,-1);
map->foreachincell(skill->area_sub,
bl->m,tc.val1[c%19],tc.val2[c%19],BL_CHAR,
src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1,
skill->castend_damage_id);
}
finally set all these otherwise just get stack errors
so if you wanna re use it which ill verify, you just need to set a large struct sqaure and youll be all good
View File
Botong-ui | FluxCP Theme
Hi! This is kind of my "sorry for appearing and disappearing, please accept my apology" beta release.
It's not exactly a theme, there are changes to some of the library files as well as changes to the configuration files. Very minor, really. You can see all the changes here: https://github.com/marqroldan/FluxCP
There are also fixes that support the changes to the structures of the tables, if I missed any please notify me.
Note that this is currently for Hercules version of FluxCP and not compatible with rAthena's.
This theme is based on Bootstrap 4 (so it still includes jQuery). It is responsive.
What you see on the main page isn't something I created. It's just a random Bootstrap 4 template that I downloaded.
That Bootstrap 4 Template Details:
Theme Name: Rapid
Theme URL: https://bootstrapmade.com/rapid-multipurpose-bootstrap-business-template/
Author: BootstrapMade.com
License: https://bootstrapmade.com/license/
Video Preview:
FAQ:
Why is the file so big? Yeah normally it's less than 20MB but it's due to the inclusion of the item icons and thumbnails.
Where are the images? You can get them from here: https://github.com/marqroldan/FluxCP/tree/dataImages or http://rathena.org/board/files/file/2509-item-images/
It's not working! Nani? Well it should be working fine (if you've installed all the necessary and required tables). Should you encounter any bugs or problems feel free to reply on this topic so I could patch it on the repo.
Will you update your Stellar FluxCP skin? No. It will forever stay that way and will not provide any support. This Botong-ui theme however will be updated from time to time.
How frequent is the update to this theme? Always check the repository for recent changes, not this forum's download section. For faster updates.
How to change to another theme? Simple, open your browser's developer tools and go to the console and type: updatePreferredTheme("[themename]") where you replace the bold text to the name of the theme you want to switch to.
Can I contribute? Of course! Just make a pull request on the repo
Your repository is so messy. I have no valid excuse for this. I'm still learning how to properly use Git / version control system and would greatly appreciate it if you have tips.
Thank you!
Submitter
Hyvraine
Submitted
07/12/19
Category
Web Resources
Why did you enable bind_ip: on login-server.conf you dont need to change these lines.
Revert the change on login-server.conf and then try this
char-server.conf
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip: "192.168.1.5"
// The character server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: "127.0.0.1"
// Login Server Port
login_port: 6900
// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
char_ip: "192.168.1.5
// Character Server Port
char_port: 6121
map-server.conf
// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip: "192.168.1.5"
// The map server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: "127.0.0.1"
// Character Server Port
char_port: 6121
// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
map_ip: "192.168.1.5"
// Map Server Port
map_port: 5121
}
Now you should able to ping these ports on your client pc.