-
Posts
505 -
Joined
-
Days Won
8
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Technoken
-
-
Any errors? And are you sure that the script is loaded?
-
Can you give a screenshot of your console errors?
Have you also set the username and password on your database?
And try to use localhost ip on these:
char_athena.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: 127.0.0.1
map_athena.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: 127.0.0.1
subnet_athena.conf
subnet: 255.0.0.0:127.0.0.1:127.0.0.1
-
Quote
MSVS 2008, 2010, and 2012 have been removed because their support from Microsoft has ended. We are sorry for the inconvenience and we understand these tools are fairly large for people to have to acquire again but this refactor has laid a foundation for the future development of rAthena!
There's no rathena10.sln bc it was removed from this update
But you can check this guide to compile your trunk
-
-
// Can you use _M/_F to make new accounts on the server? new_account: yes
just change it to no
33 minutes ago, celeron0134 said:how can i connect my website to my sql database for registration purposes
You need to install your fluxcp and allow access to your server database.
There are lot's of guides on the forum -
On view column of your item_db, add the view id which is 107. Currently it is NULL.
-
You can do it via sql query
query_sql( "UPDATE `guild_member` SET `position` = "+.@position+" WHERE `char_id` = "+.@char_id+" LIMIT 1" );
Hmm. But why would you use an npc based while guild leaders can change the guild member positions via guild tab(alt + g) ?
-
Remove the comment // on your npc/scripts_custom.conf
https://github.com/rathena/rathena/blob/master/npc/scripts_custom.conf#L13
-
Yep. Nemo supports 2015 clients, however some patch are not updated so you can't use it. Like custom jobs and custom aura patch.
-
-
You can try to add callsub under the script after creating instance.
case 1: if( instance_create(.@md_name$) < 0 ) { mes "Party Name: "+ getpartyname(.@party_id); mes "Party Leader: "+strcharinfo(0); mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!"; close; } //mes "^0000ff"+.@md_name$+"^000000 - Try to reserve"; //mes "After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon."; //close; callsub L_Enter,0,1,1; end;
- 1
-
19 minutes ago, neXus said:
It seems like its not warping the whole party automatically. What I am looking for is once the party leader enter the dungeon the whole party should be warp as well automatically.
It's working on me though
-
Just make sure that when you warped the whole party, all of them should go thru 'setquest' and set the variables that is needed when the player entered the instance.
I think you should also use "instance_enter" instead of "warp" to make sure they are on the right instance map.
I recently made an instance that warps the whole party when the party leader enter the instance for the first time. I use the script from endless tower and modified the warping part.
This one was the script. PS: I removed some checking part bc it was long so i wont recommend just copy pasting this one. Just wanted to give u an idea how warping was made
.@party_id = getcharid(1); .@md_name$ = "Dragons Dungeon"; .@dragon_timer = checkquest(25000,PLAYTIME); // Cooldown 24 Hours .@dragon_timer2 = checkquest(25001,PLAYTIME); // Time Limit 3 hours if( !instance_check_party(.@party_id,2) ) { mes "Make or join a party with more than 1 member and try again."; close; } switch( .@dragon_timer ) { case -1: if( getcharid(0) == getpartyleader(.@party_id,2) ) { mes "Confirmed the party has been made. Would you like to reserve entrance to the Dragons Dungeon?"; next; switch( select("Generate dungeon "+.@md_name$+":Enter the dungeon:Cancel") ) { case 1: if( instance_create(.@md_name$) < 0 ) { mes "Party Name: "+ getpartyname(.@party_id); mes "Party Leader: "+strcharinfo(0); mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!"; close; } mes "^0000ff"+.@md_name$+"^000000 - Try to reserve"; mes "After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon."; close; case 2: callsub L_Enter,0,1,1; case 3: close; } } switch( select("Enter the "+.@md_name$+":Cancel") ) { case 1: callsub L_Enter,1,1,0; case 2: end; } case 0: case 1: if( .@dragon_timer2 < 2 && getcharid(1) == dragonq_partyid ) { mes "If you have the dungeon generated already, you can enter it. "; next; switch(select("Enter the "+.@md_name$+":Cancel")) { case 1: callsub L_Enter,0,0,0; case 2: close; } } else { .@dun_lim_time = dragonq_timer + 86400; // 24 hours .@dun_cur_time = gettimetick(2); .@dun_ent_t = (.@dun_lim_time - .@dun_cur_time); .@dun_h = (.@dun_ent_t / 3600); .@dun_m = (.@dun_ent_t - (.@dun_h * 3600)) / 60; .@dun_s = .@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60)); mes "You cannot enter the Dragons Dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the dungeon."; close; } case 2: dragonq_timer = 0; erasequest 25000; erasequest 25001; mes "^0000ffThe records related to the Dragons Dungeon have been removed. You can generate and enter the Dragons Dungeon again.^000000"; close; } L_Enter: switch( instance_enter("Dragons Dungeon") ) { case IE_OTHER: mes "An unknown error has occurred."; close; case IE_NOINSTANCE: mes "The Dragons Dungeon does not exist."; mes "The party leader did not generate the dungeon yet."; close; case IE_NOMEMBER: mes "You can enter the dungeon after making the party."; close; case IE_OK: if( getarg(2) ) { .@myRID = getcharid(3); .@myPID = getcharid(1); mapannounce "prontera", "The party, "+ getpartyname( .@myPID ) +", is entering the Dragons Dungeon.",bc_map,"0x00ff99",FW_NORMAL,12; addrid(2), 0, .@myPID; if( getcharid(3) != .@myRID ) { if( instance_enter("Dragons Dungeon") == IE_OK ) { dragonq_timer = gettimetick(2); dragonq_partyid = getcharid(1); setquest 25000; setquest 25001; end; } else { mes "An unknown error has occurred."; close; } } } else mapannounce "prontera", strcharinfo(0) +" of the party, "+ getpartyname( getcharid(1) ) +", is entering the Dragons Dungeon.",bc_map,"0x00ff99",FW_NORMAL,12; if( getarg(1) ) { dragonq_timer = gettimetick(2); dragonq_partyid = getcharid(1); setquest 25000; setquest 25001; } if( getarg(0) == 0 ) close; else end; }
This one was the warping part
case IE_OK: if( getarg(2) ) { .@myRID = getcharid(3); .@myPID = getcharid(1); mapannounce "prontera", "The party, "+ getpartyname( .@myPID ) +", is entering the Dragons Dungeon.",bc_map,"0x00ff99",FW_NORMAL,12; addrid(2), 0, .@myPID; if( getcharid(3) != .@myRID ) { if( instance_enter("Dragons Dungeon") == IE_OK ) { dragonq_timer = gettimetick(2); dragonq_partyid = getcharid(1); setquest 25000; setquest 25001; end; } else { mes "An unknown error has occurred."; close; } } }
- 1
-
Based from the clients date that you provided. I'll go for 2012-04-10 client.
-
-
Any console errors?
-
4 minutes ago, players said:
Sorry for silly question, how to apply that sql file? copy to upgrades folder? and execute on what sql? thanks.
Spoiler -
you need to apply upgrade_20170509.sql
or execute this on your sql
ALTER TABLE `char` ADD COLUMN `last_login` datetime DEFAULT NULL AFTER `clan_id`;
-
Have you replace #define MAX_LEVEL on map.h?
This link my help too. -> https://github.com/rathena/rathena/wiki/Max-Level
-
Check map if pvp_noparty mapflag is enabled.
-
-
If you're still having problem with adding them manually. You can ask it on google.
Spoiler- 1
-
Try
prontera,156,180,3 script Disguise Event 795,{ // Currently set to run every two hours. // To change times, edit the OnClock labels below. set .@GMLevel,99; // GM level required to access NPC. set .@n$,"[^0000FFDisguise NPC^000000]"; if (getgmlevel()>=.@GMLevel) { mes .@n$; mes "Select an option."; next; switch(select("Turn ON/OFF Event:Event Settings")) { case 1: mes .@n$; if (.EventON) { mes "The Event is currently: [^0000FFON^000000]"; mes "Would you like to turn it OFF?"; } else { mes "The Event is currently: [^FF0000OFF^000000]"; mes "Would you like to turn it ON?"; } if(select("Yes:No")==2) close; if (.EventON) { set .EventON,0; set .Timer,0; setnpctimer 0; stopnpctimer; announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",0,0x00CCFF; deletepset 1; setnpcdisplay "Disguise Event",795; close; } set .EventON,1; set .Timer,1; setnpctimer 0; initnpctimer; set .ResetCounter,.ResetCounter+1; announce "The Disguise Event will begin in 3 minutes.",0,0x00CCFF; announce "The Event is being held at the Middle Of prontera ",0,0x00CCFF; close; case 2: mes .@n$; mes "Pick a setting to modify."; next; switch(select("Monster Display:Number of Rounds:Prize Settings")) { case 1: setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only."; mes .@n$; mes "Choose a disguise rule."; next; set .Rule, select(implode(.@r$,":")); mes .@n$; mes "The Disguise Rule has been set:"; mes " > ^0055FF"+.@r$[.Rule-1]+"^000000"; close; case 2: mes .@n$; mes "Input the number of rounds you want the event to last."; mes "Current number: [^0000FF"+.Rounds+"^000000]"; next; input .@Rounds; set .Rounds,.@Rounds; mes .@n$; mes "The number of rounds has been changed to "+.Rounds+"."; close; case 3: mes .@n$; mes "Input the Item ID of the prize given each round."; mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")"; next; input .@Prize; mes .@n$; if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") { mes "That item does not exist. Please try again."; close; } set .Prize,.@Prize; mes "Input the amount to be given."; next; input .@amount; mes .@n$; if (.@amount<=0 || .@amount>=10000) { mes "That amount is invalid. Using default ammount of 1."; set .@amount,1; next; mes .@n$; } set .PrizeAmt,.@amount; mes "The Prize has been changed successfully."; mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]"; close; } } } if (.EventON) end; mes .@n$; mes "Welcome."; mes "How may I be of assistance?"; if(select("Information:Nothing, just passing through.")==2) close; next; mes .@n$; mes "This event is quite simple."; mes "At the start of the event, I will"; mes "disguise myself as a random"; mes "monster. You have to shout"; mes "that monter's name out loud."; next; mes "If you are correct, you will receive"; mes "a prize. If not, keep trying!"; mes "That's all that there is to this event."; close; OnInit: set .EventON,0; set .Wait,0; set .Winner,0; set .ResetCounter,0; set .Rounds,10; set .Prize,675; set .PrizeAmt,1; set .Rule,1; setarray .MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, 2156,2165; set .BlackList$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + "1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + "2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,"; disablenpc "Disguise Event"; end; OnClock0000: OnClock0400: OnClock0800: OnClock1200: OnClock1600: OnClock2000: enablenpc "Disguise Event"; set .ResetCounter,.ResetCounter+1; set .EventON,1; set .Timer,1; set .Wait,1; announce "The Disguise Event will begin in 3 minutes.",0,0x00CCFF; announce "The Event is being held in Prontera Middle.",0,0x00CCFF; setnpctimer 0; initnpctimer; end; OnTimer10000: if (.Timer || .Change) end; set .Wait,0; goto iDisguise; end; OnTimer30000: if (.Timer) end; set .Change,0; setnpcdisplay "Disguise Event",795; npctalk "You took too long to guess what I was. Please wait 10 seconds while I disguise again."; specialeffect 725; set $MonsterName$,""; deletepset 1; stopnpctimer; setnpctimer 0; initnpctimer; end; OnTimer60000: if (.Timer!=1) end; announce "The Disguise Event will begin in 2 minutes.",0,0x00CCFF; announce "The Event is being held in Prontera Middle",0,0x00CCFF; end; OnTimer120000: if (.Timer!=1) end; announce "The Disguise Event will begin 1 minute.",0,0x00CCFF; announce "The Event is being held in Prontera Middle",0,0x00CCFF; end; OnTimer180000: if (.Timer!=1) end; announce "The Disguise Event has begun!",0,0x00CCFF; announce "The Event is being held in Prontera Middle",0,0x00CCFF; set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; iDisguise: if (.Rule==1) { set .Winner,0; set .Monster,1000+rand(1,995); if (compare(","+.BlackList$+"," , ","+.Monster+",")) goto iDisguise; if (.Monster==.LastMonster) goto iDisguise; set .LastMonster,.Monster; set $MonsterName$,getmonsterinfo(.Monster,0); } if (.Rule==2) { set .Winner,0; set .Monster,rand(49); set $MonsterName$,getmonsterinfo(.MVP[.Monster],0); } deletepset 1; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; set .Change,1; setnpctimer 0; end; iCorrect: if (.Winner) { dispbottom "Someone has already won this round."; end; } set .Winner,1; set .RoundCount,.RoundCount+1; deletepset 1; activatepset 1; getitem .Prize,.PrizeAmt; announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",0,0x00CCFF; if (.RoundCount>=.Rounds) { setnpcdisplay "Disguise Event",795; set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; sleep 2000; disablenpc "Disguise Event"; end; } setnpcdisplay "Disguise Event",795; set .Change,0; setnpctimer 0; end; }
The problem though, GM's won't be able to access the configuration since the npc will only be enabled during it was started.
- 1
-
Looks like it was ram issue. how much ram does your vps has? and have u check how much is still free?
Changing hard cast for Tracking
in Script Requests
Posted
Try to check this out rathena/db/re/skill_cast_db.txt
// Structure of Database: // SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2,Cool Down,Fixed Casting Time //-- GS_TRACKING 512,600:700:800:900:1000:1100:1200:1300:1400:1500,1500,0,0,0,0,600:700:800:900:1000:1100:1200:1300:1400:1500