Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/03/12 in all areas

  1. IMO at the moment it is not worth doing it. For those who want to protect their servers, there are paid solutions that do their job decently. This is harsh, but if you can't afford, it's not developers' fault. Most vulnerabilities can't be closed efficiently if you don't protect the game client too. It's not our job to fix Gravity's client. If there ever will be a decent opensource RO client, then we should reconsider providing security measures in conjunction with said client.
    7 points
  2. To make things a bit clearer. Reason for removing TXT support of player database: There is individual char_server and char_server_sql, we needed double work for char server edits Each time a new system appears like mercenaries, we would need to implement both sql and txt saving/loading, increasing our workload The compiled code is actially different of a SQL and a TXT compiled servers, we need to maintain more project files, people asking for support need to provide additional information etc. Using SQL is far more flexible because of CP and web services, and should perform better, and be safer ( less likely to loose data ). They are frequently modified at the runtime. Maintenance of SQL databases are easier ( deleting old/unused logins, purging invalid data, and etc). There are TXT related bugs, and unimplemented TXT features such as mercenaries. Now lets look at the db folder: db folder does not need maintenance from the server owners. Supporting db folder in txt format does not increase our workload much, the format is rarely changes, we do not need more project files for that etc. It is fairly easy to convert some of the dbs to SQL in case of somebody feel more confortable with that They are not modified on the fly, moreover the server does not modifies it at all. Does not have bugs or unimplemented features. Aegis also use flat text files for the same thing. All in all, if somebody fond of SQL db's, he can use it. But dropping TXT support for db folder provides us (developers) only little (or almost none) decrease in our workload, but degrades eA compatibility, makes people harder to switch from eA, and causes additional workload for server owners too ( They now just need to update item_db.txt and they are done. But with SQL dbs, they need to update item_db.sql and import it afterwards, +1 step) . Moreover it makes it harder for those who used to the txt format, to do db work. One of your reason was, it is easier to edit some dbs in SQL. Well.. if you use a GUI maybe. BUT: There are tools available to easily edit TXT format too ( database editors ) If you feel more confortable to edit something in SQL, you are free to do it that way and export afterwards ( i.e. mass edit ). Maybe you feel that db developers would have double work if we maintain 2 dbs. Well, no. They only need to maintain sql, or txt. The one they prefer. And if we provide conversion tools, they can keep updated the other one. ( I think there are some pearl script available to convert dbs, however it would be maybe better to provide binaries, it would be easier to use for all ). That is my opinion.
    4 points
  3. I know that the rA board, tried to be configurated as near as posible as how eAthena.ws one is. That's why we have or we had confs as: Signature limits, same with past eA rules Word filters, same as eA was, (Yeah remember my mistake with that one) Overall forum distribution etc. So I'm ready to ask about... the avatar size? why it is setted as pre-default? eA has the avatars at 150x150, actually we are at 90x90 My suggestion is to increase it. The 90x90 size it is just too small. I mean that is very close to that old 50x50 value of very old forums. .... And before someone says something, about "bla bla bla, so much space?" it is not the same case as signature, Since avatars carries space horizontaly instead of vertically as the signature does (we allways scroll vertically,... and never horizontaly lol). Thanks for reading. Just a simple suggestion that we know it can be changed easy in the forum conf. When you have time, and if people here thinks its okay, please consider it. Thumbs up if you are ok with this one.
    2 points
  4. I think this is unnecessary work for the Developers. It is not their job to provide security measures for you to protect your own server.
    2 points
  5. why don't you just use rA?
    2 points
  6. Proposal: config file to define groups <group_id>:<group_name>{:<inherit_from_another_group_id>} atcommand_conf - use group names instead of levels gm_conf - use group names instead of levels login table - `group_id` instead of `level`
    2 points
  7. This section is NOT a support section! Please follow this guideline...
    2 points
  8. if you are using the Official WOE System Script.. /npc/guild/agit_template.txt Check here...and Remove all Monster Summoning Line.. OnRecvCastle: RequestGuildInfo GetCastleData(strnpcinfo(2),1); // Spawn Monsters if the castle is empty. set .@GID, GetCastleData(strnpcinfo(2),1); if (.@GID == 0) { killmonsterall strnpcinfo(2); if (compare(strnpcinfo(2),"aldeg")) { // Normal Spawns monster strnpcinfo(2),0,0,"Evil Druid",1117,10; monster strnpcinfo(2),0,0,"Khalitzburg",1132,4; monster strnpcinfo(2),0,0,"Abysmal Knight",1219,2; monster strnpcinfo(2),0,0,"Executioner",1205,1; monster strnpcinfo(2),0,0,"Penomena",1216,10; monster strnpcinfo(2),0,0,"Alarm",1193,18; monster strnpcinfo(2),0,0,"Clock",1269,9; monster strnpcinfo(2),0,0,"Raydric Archer",1276,7; monster strnpcinfo(2),0,0,"Wanderer",1208,3; monster strnpcinfo(2),0,0,"Alice",1275,1; monster strnpcinfo(2),0,0,"Bloody Knight",1268,1; monster strnpcinfo(2),0,0,"Dark Lord",1272,1; // Set Emperium room spawn coordinates and spawn monsters. if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; } else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; } else if (strnpcinfo(2) == "aldeg_cas03") { setarray .@emproom[0],205,31; } else if (strnpcinfo(2) == "aldeg_cas04") { setarray .@emproom[0],36,217; } else if (strnpcinfo(2) == "aldeg_cas05") { setarray .@emproom[0],27,101; } monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Dark Lord",1272,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Tower Keeper",1270,4; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Bloody Knight",1268,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Abysmal Knight",1219,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; } else if (compare(strnpcinfo(2),"gefg")) { // Normal Spawns monster strnpcinfo(2),0,0,"Evil Druid",1117,10; monster strnpcinfo(2),0,0,"Wind Ghost",1263,11; monster strnpcinfo(2),0,0,"Bathory",1102,10; monster strnpcinfo(2),0,0,"Jakk",1130,10; monster strnpcinfo(2),0,0,"Marduk",1140,20; monster strnpcinfo(2),0,0,"Raydric",1163,9; monster strnpcinfo(2),0,0,"Alice",1275,1; monster strnpcinfo(2),0,0,"Abysmal Knight",1219,1; monster strnpcinfo(2),0,0,"Moonlight Flower",1150,1; monster strnpcinfo(2),0,0,"Phreeoni",1159,1; // Set Emperium room spawn coordinates and spawn monsters. if (strnpcinfo(2) == "gefg_cas01") { setarray .@emproom[0],197,181; } else if (strnpcinfo(2) == "gefg_cas02") { setarray .@emproom[0],176,178; } else if (strnpcinfo(2) == "gefg_cas03") { setarray .@emproom[0],244,166; } else if (strnpcinfo(2) == "gefg_cas04") { setarray .@emproom[0],174,177; } else if (strnpcinfo(2) == "gefg_cas05") { setarray .@emproom[0],194,184; } monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Mysteltainn",1203,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Orc Hero",1087,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"High Orc",1213,10; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Orc Archer",1189,10; } else if (compare(strnpcinfo(2),"payg")) { // Normal Spawns monster strnpcinfo(2),0,0,"Greatest General",1277,9; monster strnpcinfo(2),0,0,"Wanderer",1208,10; monster strnpcinfo(2),0,0,"Mutant Dragonoid",1262,5; monster strnpcinfo(2),0,0,"Bathory",1102,5; monster strnpcinfo(2),0,0,"Moonlight Flower",1150,1; monster strnpcinfo(2),0,0,"Eddga",1115,1; monster strnpcinfo(2),0,0,"Horong",1129,11; monster strnpcinfo(2),0,0,"Raydric Archer",1276,5; monster strnpcinfo(2),0,0,"Kobold Archer",1282,4; monster strnpcinfo(2),0,0,"Gargoyle",1253,5; // Set Emperium room spawn coordinates and spawn monsters. if (strnpcinfo(2) == "payg_cas01") { setarray .@emproom[0],139,139; } else if (strnpcinfo(2) == "payg_cas02") { setarray .@emproom[0],38,25; } else if (strnpcinfo(2) == "payg_cas03") { setarray .@emproom[0],268,264; } else if (strnpcinfo(2) == "payg_cas04") { setarray .@emproom[0],270,28; } else if (strnpcinfo(2) == "payg_cas05") { setarray .@emproom[0],30,30; } monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Moonlight Flower",1150,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Eddga",1115,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Wanderer",1208,6; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; } else if (compare(strnpcinfo(2),"prtg")) { // Normal Spawns monster strnpcinfo(2),0,0,"Raydric",1163,1; monster strnpcinfo(2),0,0,"Khalitzburg",1132,10; monster strnpcinfo(2),0,0,"Abysmal Knight",1219,5; monster strnpcinfo(2),0,0,"Bloody Knight",1268,5; monster strnpcinfo(2),0,0,"Stormy Knight",1251,1; monster strnpcinfo(2),0,0,"Hatii",1252,1; monster strnpcinfo(2),0,0,"Raydric Archer",1276,5; monster strnpcinfo(2),0,0,"Gryphon",1259,2; monster strnpcinfo(2),0,0,"Chimera",1283,3; monster strnpcinfo(2),0,0,"Alice",1275,1; monster strnpcinfo(2),0,0,"Zealotus",1200,1; // Set Emperium room spawn coordinates and spawn monsters. if (strnpcinfo(2) == "prtg_cas01") { setarray .@emproom[0],197,197; } else if (strnpcinfo(2) == "prtg_cas02") { setarray .@emproom[0],157,174; } else if (strnpcinfo(2) == "prtg_cas03") { setarray .@emproom[0],16,220; } else if (strnpcinfo(2) == "prtg_cas04") { setarray .@emproom[0],291,14; } else if (strnpcinfo(2) == "prtg_cas05") { setarray .@emproom[0],266,266; } monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Guardian Knight",1268,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Guardian Master",1251,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Hatii",1252,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Guardian Knight",1219,1; monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; } If you are using Custom WOE Setter like GM Xeon WOE Setter 3 there is a GM Option for Disable Monster Spawn during WOE.
    2 points
  9. And database (if you insist) doesn't mean "put me to SQL". TXT is easier to manipulate with. Using *.sql files will make it harder to develop, edit, compare merge into running servers etc. Editing SQL requires additional GUI tools (not everyone wants to open SQL connection or install pma) or lots of overhead (typing queries!). TXT files can be edited locally and copied over, can be put into svn and svn update will merge deploy them. SQL scripts must be manually imported into dbms - again more work... I can see absolutely no advantage of SQL over TXT in this case.
    2 points
  10. DB folder is a config. Nothing is written to it at runtime, so it's not a real database.
    2 points
  11. hmm seems like you don't know our TXT users... TXT users are usually the starters that don't know much of anything related to servers/commandshells/etc... so I don't think it will be fitting replacement, since they won't be able to handle this. but that's just my opinion. off topic: so if we are allready at removing features and getting the users to the "better way" to do things, wouldn't it be a nice idea to drop the GRF reading support? I didn't really look into it, but does anything use this functionality since the mapcache came up?
    1 point
  12. try this Function Script : function script Sample { if( @BuffTimer < gettimetick(2)) { set @BuffTimer,gettimetick(2) + 60; disguise 1751; switch( rand(6) ){ Case 0: sc_start SC_STRFOOD,30000,10; break; Case 1: sc_start SC_AGIFOOD,30000,10; break; Case 2: sc_start SC_INTFOOD,30000,10; break; Case 3: sc_start SC_VITFOOD,30000,10; break; Case 4: sc_start SC_DEXFOOD,30000,10; break; Case 5: sc_start SC_LUKFOOD,30000,10; break; } sleep2 30000; undisguise; dispbottom "Buff has Finished for 30 Seconds. Delay of Extra 30 Seconds will be applied."; }else{ dispbottom "Delay : "+( @BuffTimer - gettimetick(2) )+" Seconds."; } end; } Item Database Script : Add this callfunc("Sample"); Example : 501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc("Sample"); },{},{}
    1 point
  13. Nice =D! Thanks for the change.
    1 point
  14. With sql DBs it's much easier to integrate the data into websites. For example a PHP script to view the logs and join them with the killed mob, or the looted item, or a site where the users can view the available ptes and such stuff. At the moment you need to convert the data to a sql db to use them in a website
    1 point
  15. Personally, 200x200 is pretty big XD. A bit too big as an avatar. I usually set my boards to maximum 150x150 (or around it like 140x140 and etc depending on the forum theme). We can try 125 first and see how that goes?
    1 point
  16. Erm...after i looking this again...i just wonder i made a mistake..... we cant have more than 1 rand( value ) inside the same condition checking ...otherwise...this will spoil your rate checking... Well, i try make it simple this time... set .Random,rand( 1000 ); if( .Random <= 100 ) getitem 607,1; else if( .Random <= 150 && .Random > 100 ) getitem 607,2; else if( .Random <= 200 && .Random > 150 ) getitem 607,2; else if( .Random <= 250 && .Random > 200 ) getitem 607,2; else getitem 512,1; In this case... set .Random,rand( 1000 ); just like what i told you in previous posts.. first and foremost, this will generate a Number Randomly from 0 ~ 999 else if( .Random <= 150 && .Random > 100 ) getitem 607,2; else if( .Random <= 200 && .Random > 150 ) getitem 607,2; else if( .Random <= 250 && .Random > 200 ) getitem 607,2; Here...we will check for the Probability of items gaining... For Example the 1st line : else if( .Random <= 150 && .Random > 100 ) getitem 607,2; A User/Player will gain the Items once the .Random that generated is in the range of 101 ~ 150 else if( .Random <= 200 && .Random > 150 ) getitem 607,2; A User/Player will gain the Items once the .Random that generated is in the range of 151 ~ 200 else if( .Random <= 250 && .Random > 200 ) getitem 607,2; A User/Player will gain the Items once the .Random that generated is in the range of 201 ~ 250 else getitem 512,1; This... will only RUN when all the above Probability not matched / .Random are not inside the range... Well, i guess i will stop explaining after this posts right here...since this topic is Script Release Section...not Script Support Section. If you still have any Enquiries , please open a new thread in Script Support Section, otherwise i might be targeted by Mod for Flooding this Topic...
    1 point
  17. try this.. find this change to this OnSun0900: set $BattleStarted,1; Not sure is this the correct arrangement.. ( never used this type before ) Other Option... OnClock<hour><minute>: OnMinute<minute>: OnHour<hour>: On<weekday><hour><minute>: OnDay<month><day>: This will execute when the server clock hits the specified date or time. Hours and minutes are given in military time. ('0105' will mean 01:05 AM). Weekdays are Sun,Mon,Tue,Wed,Thu,Fri,Sat. Months are 01 to 12, days are 01 to 31. Remember the zero.
    1 point
  18. Hi I'll work on it , im am fully awake now. Edit: Okay I'm done , lets wait for BrianL to update the files. its been updated.
    1 point
  19. Hmm this should be the cause of missing .wav files o.o. I uploaded them anyway, so just download them, create patch for your players and it should work. set $@arena_pay,1; // 1 = Formula, 2 = Per Array // But remember to put the prices for all items. setarray $@arena_ar[0],100; // Etc If you want to use your own prices edit the first variable to "2" and then put the prices in the array below. But remember to insert all prices then ^^. If you want to remove some items, search the item id in the "setarray $@arena_sh[0]" line and delete them. Regards, Chris
    1 point
  20. Overall, good job with the design! Much better than the old one at least ;D. I do agree with Zwei that it looks quite empty on the right side of the top banner. Maybe you can move the rAthena logo there as suggested (or at least some RO-related image or maybe take a screenshot of the community forums, etc), and then add a small rA logo (or resize the one you guys made) in the blue navigation bar (I think it'll look empty there D: on the left side if it's removed completely). Or, you can shift the words to the left if the logo does get moved (though I still prefer a small image in the navigation bar). Furthermore, the footer links can be edited. The "Home" button can link to the main page or set it as # so the viewer can be scrolled to the top of the page. For the "Contact Us" button, you should link viewers to this page http://rathena.org/board/index.php?app=forums&module=extras&section=stats&do=leaders if you have no other pages (or the staff page I guess). Lastly, the IRC button can be linked to this page http://rathena.org/board/topic/56196-irc-channel-rules/ =D! One last thing, I still think the name of the board should be rAthena Board instead of RAthena Board. Same with the first tab of the navigation bar on the forums. Just some suggestions/things that I've noticed. Nothing big that should be rushed upon. Great way to start off the new year at rAthena with the new website! Nice <3. Keep up the amazing works =D!
    1 point
  21. I've used a similar system in Arsinoé / Schallmar. So here the code : Item_db (OnEquip : call function) 29170,Helm of the Champion,Helm of the Champion,5,5000,,10,,5,,0,0xFFFFFFFF,7,2,256,,0,1,510,{bonus2 bAddRace,7,50; bonus3 bAutoSpell,68,10,5; bonus bVit,10;},{callfunc "ars_done";},{} function script ars_done { getmapxy(.@map$,.@x,.@y,0); for(set .@i, 0; .@i < getarraysize($@allowedmaps2$); set .@i, .@i + 1) { if ($@allowedmaps1$[.@i] == .@map$ || $@allowedmaps2$[.@i] == .@map$ || $@allowedmaps3$[.@i] == .@map$) { set .@var, .@var+1;} } if (.@var == 1) { end;} //If Map correct - Check objects for(set .@o, 1; .@o < 11; set .@o, .@o + 1) { for(set .@j, 0; .@j < getarraysize($@itemsdenied); set .@j, .@j + 1) { if(getequipid(.@o) == $@itemsdenied[.@j]) { if(EP7_LANGUE == 0) { dispbottom "Le '"+getitemname(getequipid(.@o))+"' n'est pas autorisé sur cette map.";} if(EP7_LANGUE == 1) { dispbottom "The '"+getitemname(getequipid(.@o))+"' isn't authorized in this map.";} unequip .@o; } } } end; } - script EP7_ConfigurationSchall -1,{ OnInit: //Allow items / maps setarray $@allowedmaps1$[0], "tantale_ile","ars_phare","ars_fild01","ars_fild02","ars_fild03","ars_fild04","ars_fild05","ars_fild06","ars_fild07","ars_fild08","ars_fild09","ars_fild10","ars_fild11","ars_fild12","ars_fild13","ars_fild14","ars_fild15","ars_fild16","ars_fild17","ars_fild18","ars_fild19","ars_fild20","ars_fild21","ars_fild22","ars_fild23","ars_fild24","ars_fild25","ars_fild26","ars_fild27","ars_fild28","ars_fild29","ars_fild30","ars_fild31","ars_fild32","ars_fild33","ars_fild34","ars_fild35","ars_fild36","ars_fild37","ars_fild38","ars_fild39","ars_fild40","ars_fild41","ars_fild42","ars_fild43","ars_fild44","ars_fild45","ars_fild46","ars_fild47","ars_fild48","ars_fild49","ars_fild50","ars_fild51","ars_fild52","ars_fild53","ars_fild54","ars_fild55","ars_fild56","ars_fild57","ars_fild58","ars_fild59","ars_fild60","ars_fild61","ars_fild62","ars_fild63","ars_fild64","ars_fild65","ars_fild66","ars_fild67","ars_fild68","ars_fild69","ars_fild70","ars_fild71","ars_fild72","ars_fild73","ars_fild74","ars_fild75","ars_fild76"; setarray $@allowedmaps2$[0], "ars_dun01","ars_dun02","ars_dun03","ars_dun04","ars_dun05","ars_dun06","ars_dun07","ars_dun08","ars_dun09","ars_dun10","ars_dun11","ars_dun12","ars_dun13","ars_dun14","ars_dun15","ars_dun16","ars_dun17","ars_dun18","ars_dun19","ars_dun20","ars_dun21","ars_dun22","ars_dun23","ars_dun24","ars_dun25","ars_dun26","ars_dun27","ars_dun28","ars_dun29","ars_dun30","ars_dun31","ars_dun32","ars_dun33","ars_dun34","ars_dun35","ars_dun36","ars_dun37","ars_dun38","ars_dun39","ars_dun40","ars_dun41","ars_dun42","ars_dun43","ars_dun44","ars_dun45","ars_dun46","ars_dun47","ars_dun48","ars_dun49","ars_dun50","ars_dun51","ars_dun52","ars_dun53","ars_dun54","ars_dun55","ars_dun56","ars_dun57","ars_dun58","ars_dun59","ars_dun60","ars_dun61","ars_dun62","ars_dun63","ars_dun64","ars_dun65","ars_dun66","ars_dun67","ars_dun68","ars_dun69","ars_dun70","ars_dun71","ars_dun72","ars_dun73","ars_dun74","ars_dun75","ars_dun76","ars_dun77","ars_dun78","ars_dun79","ars_dun80","ars_dun81","ars_dun82","ars_dun83","ars_dun84","ars_dun85","ars_dun86","ars_dun87","ars_dun88","ars_dun89","ars_dun90","ars_dun91","ars_dun92","ars_dun93","ars_dun94","ars_dun95","ars_dun96"; setarray $@allowedmaps3$[0], "ars_in01","ars_in02","ars_in03","ars_in04","ars_in05","ars_in06","ars_in07","ars_in08","ars_in09","ars_in10","ars_in11","ars_in12","ars_in13","ars_in14","ars_in15","ars_in16","ars_in17"; setarray $@itemsdenied[0],29170,29171,29172,29173,29174,29175,29176,29177,29178,29179; } So you can add maps who allowed the use of items and which ones. You have also the db/item_noequip.txt to edit : //Zone 8 - Arsinoe / Schallmar items limitation 1101,512 29170,512 29171,512 29172,512 29173,512 29174,512 29175,512 29176,512 29177,512 29178,512 29179,512 Here mapflag restricted 8 with all maps : http://aerie-pinkpanther.googlecode.com/svn/Schallmar/Server/npc/Schallmar/Mapflags.txt dic_dun03 mapflag restricted 8 The mapflag will check at the login which items the character worn and disable them if equipped.
    1 point
×
×
  • Create New...