-
Posts
513 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Ninja
-
-
this is the "short way." The long way? Implement a hug database of costumes for each headgear in the game + create an NPC that will trade in the costume counterpart.
-
Hey buddy,
use the latest rathena, then copy-pasta.
const.hpp
Quote// Renewal variable cast time reduction
#ifdef RENEWAL_CAST
#define VARCAST_REDUCTION(val){ \
if( (varcast_r += val) != 0 && varcast_r >= 0 ) \
time = time * (1 - (float)min(val, 100) / 100); \
}
#define FIXCAST_REDUCTION(val){ \
if( (fixcast_r += val) != 0 && fixcast_r >= 0 ) \
time = time * (1 - (float)min(val, 100) / 100); \
}
#endifskill.cpp
Quoteif (sc->data[SC_SUFFRAGIUM]) {
//VARCAST_REDUCTION(sc->data[SC_SUFFRAGIUM]->val2);
FIXCAST_REDUCTION(sc->data[SC_SUFFRAGIUM]->val2);
status_change_end(bl, SC_SUFFRAGIUM, INVALID_TIMER);
}Quoteif (sc->data[SC_POEMBRAGI])
FIXCAST_REDUCTION(sc->data[SC_POEMBRAGI]->val2);
//reduce_cast_rate += sc->data[SC_POEMBRAGI]->val2; -
Hi, long time no see. Here I am again having some free time but now, only for leisure purposes and maybe help out on anything I can.
I've search the forums and didn't find anything related. I am stuck with one problem, I am trying to learn how to catch responses from menus generated via source.
I know it's easy to do this via script and I've done a lot of them but I'm stuck on figuring out how to handle PC responses from source.
Below is a snippet of my code that I'm trying to play with.
skill.inc
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder #include "..\map\clif.hpp" #include "..\map\script.hpp" #include "..\common\socket.hpp" #include "..\common\malloc.hpp" #include "..\common\strlib.hpp" void test_skill_inc(struct map_session_data *sd){ struct s_packet_db* info = &packet_db[RFIFOW(sd->fd,0)]; if(sd->npc_id == 0){ //create and display the menu char* menu; menu = "this:is:a:test"; clif_scriptmenu(sd, -1, menu); } else { uint8 select = RFIFOB(sd->fd,info->pos[1]); //parse response switch(select){ case 1: clif_scriptmes(sd, sd->npc_id, "chose this"); break; case 2: clif_scriptmes(sd, sd->npc_id, "chose is"); break; case 3: clif_scriptmes(sd, sd->npc_id, "chose a"); break; case 4: clif_scriptmes(sd, sd->npc_id, "chose test"); break; } clif_scriptclose(sd, sd->npc_id); } }
skill.cpp
#include "../custom/skill.inc" int skill_castend_nodamage_id(...) ... case MC_VENDING: if(sd) { //Prevent vending of GMs with unnecessary Level to trade/drop. [Skotlex] if ( !pc_can_give_items(sd) ) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); else { test_skill_inc(sd); } } ...
My aim is to pop up a menu - in this case, "this," "is," "a," "test" - when the vending skill(or generally any skill) is pressed then creates a message window that contains the chosen item from the menu.
Will be grateful for the help thanks.
-
On 05/11/2016 at 9:15 AM, Secrets said:
If you are going to donate, donate to rA instead. I'd like some money for some coffee, but this project is solely for the community.
Thank you for your feedback. You might be afraid that 100% of time available by our team will be dedicated to this project, but, no, we still improve our current emulator (rA) with current information we have. As for the void you mentioned, I'd like to fill those where I can, too. However, it was mostly caused by no official server files being leaked since a year or two years ago. New features were datamined from official servers, and it takes longer time than converting stuffs directly from official server files.
If I may suggest, maybe you can also "open" the task list, if it exists, even just the minor to medium ones to the public and let them contribute? I know issues are there to get worked on but how about features and all that? That way you can offload/streamline some of the minor stuff to other people who wants to contribute. This is my 2 cents.
-
I just want to confirm if it's really impossible at the moment.
-
On 8/5/2017 at 8:23 AM, phit666 said:
I will soon, Ive also set libevent to use IOCP as backend when compiling to windows, we knew how slow is select in windows so using the IOCP as backend will really add an edge for those windows users.
That's great. But if you can also optimize the Linux part then that would also be nice. Most users prefer Linux as they cost way less than a WindowsVPS.
-
Yes you can, but you have to make sure that your internet connection is giving you public IP instead of NAT'd IPs.
-
if it's rAmod, I don't think it's better to ask the rAmod devs themselves.
-
-
can you create a merge request for this and provide the link here? thanks
and also I think I recall @Secrets planning to replace RFIFOs with packet structures with c++. I'm not sure if she's also considering refactoring this part.
-
////////////////////////////////////////////////////////////////////////////////// // Returns time remaining in a readable format. // The argument is subtracted from UNIX epoch time, or 'gettimetick(2)'. // -- callfunc "Time2Str",<tick in UNIX epoch time> // Example: // // Displays "Time left: 1 day, 1 hour, 8 minutes, 20 seconds" // set .@Timer, gettimetick(2) + 90500; // mes "Time left: " + callfunc("Time2Str",.@Timer); //////////////////////////////////////////////////////////////////////////////////
- 1
-
I use it a lot to be honest. especially when I'm at work with no tasks to do.
-
On 7/12/2017 at 3:08 AM, Vykimo said:
Thanks for you support all, but I've still nobody who is interested in that project... I've the feeling that it's gonna die. :/
like I said, you should post what skillset you need so someone could check and help you
don't give up. You can work on it slowly.
-
Do for loops.
-
8 hours ago, Vykimo said:
I guess that their projects are dead...
Doesnt matter if theirs is dead. It's your motive goodluck and hope you do well
-
47 minutes ago, Vykimo said:
So this topic is because I am currently looking for 1-2 developpers motivated (and experienced for God's sake) to help me on this hard task.
You prolly want to mention what specific skillset you want from people to help you out I've seen potential in this too. Too bad, inspite of working for a web dev company doing tests, I've never coded stuff for web. I hope you do well with this project. Cheers!
-
first you have to check if your WAN IP is the same as your Public IP. How?
Check your router and see your WAN IP then compare it with the IP address you see in www.ipchicken.com, if they're the same. Then you're good to go. If not, you'll need to do some talks with your telecom company to give you a static IP.
-
7 hours ago, Zell said:
In browedit2 source you can't find this formula?
can you give the link to the src? thanks
-
maybe you can give us a full list so we can pitch in information for you?
-
The rendering is so crispy. I wonder if you already using DX11? and I'm excited to see how 3D monster would look like (Bow Guardian, Sword Guardian, etc.)
-
1 minute ago, Noctis said:
I thought it was only for me ty xD, Do we have any date when rodex will be merge?
I don't know. I think it will be for @Lemongrass to say
-
we have the same issue for rodex + achievement. we will just have to wait for it to be merged with the latest rA commit and I think it'll work just fine.
- 1
-
I think a better way to handle this is to add a player variable that holds a timestamp when he last finished a quest you've made.
example:
OnQuestFinish: set CustomQuestTimeStamp, gettimetick(2); end; OnQuestCheck: set @TimeDelay, gettimetick(2) - CustomQuestTimeStamp; if (@TimeDelay < (.TimeBeforeAplayerCanDoThisQuestAgain)) mes "Sorry you can't do this quest right now. Please come back later."; close; else { //... quest stuff here } end; OnInit: set .TimeBeforeAplayerCanDoThisQuestAgain, 1 * 86400; //60 secs/min * 60 mins/hr * 24 hrs/day * how many days you want end;
-
Are you trying to edit the iteminfo.lua? if so, make sure that you're using "Windows-1252" encoding. At least it works for me.
I'm using notepad++
- 1
Configure 1 login for 2 different servers
in General Support
Posted · Edited by Ninja
You can actually use Cydh's tutorial for Multi Servers
Though in his context, the servers are located inside 1 VM only. To get around that, setup 1 full server inside 1 VM, let's call it VM#1.
In this VM#1, Make sure that your database, login-server and map-server are accessible externally by using the Public IP of your VM#1 in your conf files. Other than that, make sure that the user you created for your databases isn't bounded to 'localhost' rather should be '%' which means from anywhere. In your VM#2, use the Public IP of VM#2 in your conf files. You don't need to create a new login-server, just configure the char-server and inter-server to point to your VM#1. then point your map-server in VM#2 to your char-server in your VM#2. hence, graphically:
Example: You have two VMs:
VM#1: 1.1.1.1
VM#2: 2.2.2.2