-
Content Count
26 -
Joined
-
Last visited
-
Days Won
1
Posts posted by SoundX
-
-
Hi all,
just letting you know that if you add as email address a hotmail or outlook account, the confirmation email never sends. I tried change my email address to my current one and never received an email (not in spam either) since yesterday. I had to add google email to get back access to my account. Maybe it is something to check/fix if possible?
-
Good morning, all, sorry if this is not the correct forum to post this topic.
I want to try to play in the Russian server mordo.ru, but I have a problem with the client. All letters that are not hardcoded to image, or are not English letters, show as Greek letters. I don't use Windows a lot, and I don't know how to make it use the correct Russian characters instead of displaying non-sense with Greek letters.
Here is what I mean:
I installed Russian on my keyboard, but it didn't help. Anyone who knows about localisation in Windows could help? (I cannot remove Greek locale, but I should be able to display other UTF8 characters that are not English or Greek, normally?)
Thank you in advance and sorry for my English. Also sorry for posting here, I cannot post to their forum cause I only know very little Russian, not enough to make a topic.
-
Hi all,
I have been trying out Visual Studio and, as a simple first project, I made a GUI launcher to go with V3ctor's 1.38 files with this dir structure:
This is the result:
It a very simple project, but if someone wants it, it's here https://mega.nz/#!CAdHTY5I!iCjxZ0xU5khsmjsPbvXt3o-FCUFKqTaRQFsIePXombQ
(also can put vb and visual studio files on github)
-
Hello everyone,
I have some free time and so much nostalgia for TOP! Anyone can suggest an active, mostly vanilla server to play a bit? (prefer english speaking, but if servr is good I don't mind). Also anyone want to play together, top is boring if u alone :)
-
Hi, you mean example if they are forged in boots to make them forge in gloves?
This is done in "resource\script\calculate\variable.lua" file. You find the "StoneItemType" table and you change the values you want. The StoneItemType[xx] index of your gem you find it in "resource\stoneinfo.txt" and the values are:
1 = 1 handed sword 2 = 2 handed sword 3 = Bow 4 = Firegun 7 = Daggers 9 = Staff 11 = Shield 20 = Cap 22 = Armor 23 = Gloves 24 = Boots 27 = Tattoo
So for example if you want to make Eye of Black Dragon forgeable in gloves and boots, you find in StoneInfo.txt that Eye of Black Dragon = 13 and then you change StoneItemType[13] in variable.lua to StoneItemType[13] = { 23,24,0 }
- 1
-
Press ALT+P, type the message (it is typed on the lower part with white letters, not easy to see), press enter
- 1
-
As two people have asked this, maybe this help the guide to be more complete:
If you have custom quests in your server, and you don't register this quest on the client, you usually see the "Unknown quest" in an "Invalid type" section within the quest log:
If you use the tweak described above, in some server files this might also reveal the Mission ID and see this as "Unknown Quest name ID [140]". This can be avoided easily though by adding the quest name to the client:
Tales of Pirates Online\scripts\lua\mission\missioninfo.lua
Add the quest name and type (1, normal, 2, story quest):
-- AddMisData( <QUEST ID> , <QUEST NAME>, <QUEST TYPE 1 or 2>) AddMisData( 140 , "Revenge of the shrubs ", 1)
And this should solve the problem
-
Hello, GTspeed,
what exactly problem you have? To make a patch for the client, you must create a folder with structure like this:
[PATCH DIRECTORY] -- [map] -- mymap1.map -- mymap1.obj -- [scripts] -- [table] -- iteminfo.bin -- StringSet.bin -- [texture] -- [minimap] -- [mymap1] -- mymap1.pk
so basically an folder structure exactly like your client structure. Then in your patch directory you copy the files you have changed in your client to the place it should be ^^ expl., above would be a patch with a new map <mymap1> and a different iteninfo and stringset
Is this what you were asking?
-
7 hours ago, Tassadar said:and for the ip changer, if i dont have a site up yet do i leave the server reagion blank or put something random for now?
Server region is like "Dream Island" and server name is like "Rainbow island". You can put anything random there, it doesn't have to do with site.
The "IP Changer" program will edit the serverset.bit file for you, so you don't need to manually do it
-
I don't know guides as you don't say a specific problem. You say your server files all work, can you connect the client to your server and play on your computer?
To let people play in your server, you need serverset.bin (Tales of Pirates Client\scripts\table\serverset.bin) to point to correct IP. You can change the IP with IP changer tool I linked above and then copy serverset.bin into your patch directory
PATCH DIRECTORY > scripts > table > serverset.bin
Then any file you change, for example adding new items with iteminfo.txt in your server, you copy iteminfo.txt from your server to CLEINT > scripts > table > iteminfo.txt and compile the file to a bin file
https://pkodev.net/index.php?/topic/26-client-txt-tables-compiling/
Every file you change you copy it then to your Patch directory
Then you can either make it all a zip file and send it to your users, or upload it to your website, so that htey can download and extract it, or use any autopatcher. Example this one: https://pkodev.net/index.php?/topic/1322-auto-updater-program, or any other patcher you have found should also have instructions
if you still have problems please say the exact problem you have, what you did, what is the error, etc, as well s what server files you are using, what patcher/updater you are using, etc
-
Anyone? Any hint on where to start looking will be very helpful. I don't know if to look the game.exe, or the gameserver.exe or the files, thanks in advance
-
Hello, the first thing you need to do is to change your client IP to point to your server:
Then for the patch create a similar directory structure as the client with the files that you have changed (ex if you changed iteminfo.bin create a directory tree MYPATCH > scripts > table > iteminfo.bin and either do it a zip/rar file that players can extract in their game folder or use the instruction in the autoupdater you found
-
Hello Satan,
sorry I don't know the answer, but I tried the loop with small variation in one of my maps and could not reproduce this error, it worked correct. So maybe some other part of code triggers this error?
-
Hello everyone,
was wondering if it is possible to change the colour of the name in common items (not ekipment). For example, for recovery type items, example HP or SP recovery is it possible to make it sothat they have different color than other common items? If it possible, should that be a client-side modification?
Also, was wondering about the items types in ItemType.txt . It is a bit messy as it is, with chests, manu items, ami gloves, cook items, etc, all same type (31 - recovery items). If I separate items for their item type, does it affect anything else in the game?
Sorry for my english, and thanks in advance for answers
-
Thank you, very useful.
Also to avoid `count()` compatibility issue if someone uses PHP 7.2:
In `class.inventory.php`, line 21:
$itemAttrCount = count((array)$item);
- 1
-
This is great idea, especially `ItemEffect.lua` can be reduced to 1/4 length by replacing repeated functions.
Here is another snipet to replace the more than 1000 lines with skills (also so many skills unused by the game, anyone has try using them and see what they can do?)
For example we have this function for "Dual Shot" skill:
-- Dual shot skill book (iteminfo.txt ID = 3190) function Sk_Script_Lzj ( role , Item ) local sk_add = SK_LZJ local form_sklv = GetSkillLv( role , sk_add ) if form_sklv ~= 0 then UseItemFailed ( role ) return end a = AddChaSkill ( role , sk_add, 1 , 1 , 1 ) if a== 0 then UseItemFailed ( role ) return end end
we need to note down skill book ID in iteminfo.txt, and also the `local sk_add` value. The `sk_add` value is in `variable.lua` and correspond to the skill ID in `skillinfo.txt`. For example, `SK_LZJ` in variable.lua is `SK_LZJ = 90`, which is the skill ID for Dual Shot in skillinfo.txt.
So we can replace all the skill books with an array in `ItemEffect.lua`:
Class_Skill_Book = {} -- Class_Skill_Book[<skill book ID in iteminfo.txt>] = <skill ID in skillinfo.txt> -- Class_Skill_Book[3184] = 73 -- Shield Mastery (unknown) Class_Skill_Book[3190] = 90 -- Dual Shot Class_Skill_Book[3193] = 112 -- Meteor Shower -- etc... --
and then replace all the skill book functions with the following:
function Class_Skill_Books ( role , Item ) local bk_ID = GetItemID(Item) local sk_add = Class_Skill_Book[bk_ID] local form_sklv = GetSkillLv( role , sk_add ) if form_sklv ~= 0 then UseItemFailed ( role ) return end a = AddChaSkill ( role , sk_add, 1 , 1 , 1 ) if a == 0 then UseItemFailed ( role ) return end end
To use it, in `ItemInfo.txt` we have to replace the skill book's fnction with `Class_Skill_Books`
ex.
3190 Dual Shot book2 10130005 0 0 0 0 0 00 34 0 0 0 0 0 1 1 1 1 1 0 1680 -1 0 -1 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0 0,0 0 0 0 0 0 0 0 0 0 Class_Skill_Books 0 0 0 0 0 0 Class: Hunter Level Requirement: Lv 29 Prerequisite: Eagle Eye Lv 3, Archery Lv 3
- 1
-
On 5/16/2018 at 6:24 AM, opexone78 said:anyone? help? pliss?
Hi, the script you posted is the exact script for teleporting to BD lair 2. It works correctly, the error should be somewhere else. What error exactly are you getting?
-
Hi all. I am posting this here as it took me some time to figure it out and maybe someone else wants to use it as well.
- What we want to achieve:
Mission shows a "[Completed]" flag in the quest log when we have collected all items - killed all mobs
- In directory `/resource/script/MisSdk/`
1. File: ScriptSdk.lua:
We will start a variable called `MissionSid = {}` in global variables definition, line ~=16 (below `Mission` variable):
Spoiler-- Scripting system - Global Variables Page = {} -- global variable definition: NPC dialog Information Exchange = {} ExchangeX = {} FuncList = {} Trade = {} -- global variable definition: NPC Transaction Information Goods = {} -- global variable definition: NPC Cargo Transaction Information Mission = {} -- global variable definition: All mission information MissionSid = {} -- global variable definition: Mission ID corresponding to Task ID MisLogList = {} -- global variable definition: Mission information saved to logs
and in function `DefineMission` we will cal the MissionSid with a misid index:
Spoiler-- Register task profile function DefineMission( id, name, misid, show, mistp ) LG( "mission", "ID: "..id, " Name:"..name, " MisID:"..misid ) -- Set task profile MissionSid[misid] = id Mission[id] = {} Mission[id].id = misid -- Task Identification ID Mission[id].sid = id -- Script Task Index ID Mission[id].name = name
1. File: MissionSdk.lua:
Here we will use the function `RefreshCompleteFlag` (used normally by random class quests, "A hunter's life" etc).
First in the `RefreshCompleteFlag` function itself: The function defines a local called: `local mission`. We will start this local with the value of `Mission[sid]`, so replace `local mission` with `local mission = Mission[sid]`:
Spoiler-- Refresh task status if is completed function RefreshCompleteFlag( character, sid ) PRINT( "RefreshCompleteFlag" ) if sid == nil or Mission[sid] == nil then PRINT( "RefreshCompleteFlag:incorrect quest script ID number,sid = "..sid ) SystemNotice( character, "RefreshCompleteFlag:incorrect quest script ID number,sid = "..sid ) return LUA_FALSE end local mission = Mission[sid] if Mission[sid].tp == NOMAL_MISSION then mission = Mission[sid] elseif Mission[sid].tp == RAND_MISSION then -- Random task has been accepted, check if can be deliver
Then we need to use the `RefreshCompleteFlag` function in the `AddNextFlag` function: ( we added the line `RefreshCompleteFlag(character,MissionSid[id])` ):
Spoilerfunction AddNextFlag( character, id, startflag, count ) if id == nil or startflag == nil or count == nil then SystemNotice( character, "AddNextFlag:Function parameter error!" ) end local num = 0 for i = 1, count, 1 do local ret = IsFlag( character, id, startflag + num ) if ret == LUA_FALSE then PRINT( "AddNextFlag: flag = ", startflag + num ) ret = SetFlag( character, id, startflag + num ) RefreshCompleteFlag(character,MissionSid[id])
I hope this can help someone. Sorry for my English and if there are mistakes/bad scripting/better way, please let me know
- 4
-
14 hours ago, Rinor said:Share the way you fixed it so if anyone will have the same problem in future he can search and find the solution here, just saying.
Hi, of course, the reason I didn't was because the problem was caused not by the quest itself but from another modification I made. In `MissionSdk.lua`, I have was using the `RefreshCompleteFlag` function to mark as complete quests in the quest log and I think this conflicted with Eudemon quests. Without the "Complete" flag modification, the problem does not show in unmodified 1.38 script files.
Plus I have not solved still the problem with timed quest, so for the moment I just removed the timer << This still happens even without any modifications to the files, trying to test if if only happens with Eudemon quests, if I find something Iwill add details here
Edit: using the `RefreshCompleteFlag` function like this does not cause problem when killing mob (remaining to understand the time out problem)
-
Solved (problem was in MissionSdk.lua)
-
Hi all,
Using PKO1.38 server files from MEGA archive and testing story quest: I have the following problem:
There is a subquest, called "Lure Behemoth" that is timed and requires player to kill Behemoth within 60 mins from accepting the quest. Relevant functions:
- MissionScript02.lua
SpoilerDefineMission( 285, "Stolen Lunchbox", 253 ) MisBeginTalk( "<t>It was supposed to be a happy day today as Granny - Beldi has made me so many pastries. I happily packed them into my lunchbox and brought them to work but it was stolen the moment I turned away!<n><t>It was a <rNinja Mole>! I saw it too late, for it has already escaped into the Abandoned Mine. I dare not enter that scary place.<n><t>Can you please help me get my lunchbox back? Otherwise...I will not have enough energy to work...These creatures often appear at (229, 28). " ) MisBeginCondition(HasRecord, 252) MisBeginCondition(NoMission, 253) MisBeginCondition(NoRecord, 250) MisBeginCondition(NoRecord, 253) --暂时不许重复接 MisBeginCondition(NoMission, 4) MisBeginAction(AddMission, 253) MisBeginAction(AddTrigger, 2531, TE_GETITEM, 4084, 1 ) --便当x1 MisCancelAction(ClearMission, 253) MisNeed(MIS_NEED_ITEM, 4084, 1, 10, 1) MisPrize(MIS_PRIZE_ITEM, 3917, 1, 4) MisPrizeSelAll() MisResultTalk("<t> You are my saviour! Hohoho! Its my lunchbox! Thank you so much! This is great!<n><t>Come! This <yStrawberry Biscuit> is for you! Remember! Do not ever go to <pAbandoned Mine 2> to eat the biscuit! There is a monster residing at a corner who loves to attack anybody with tasty biscuit!!!") MisHelpTalk("<t>Can't work…Too hungry…") MisResultCondition(HasMission, 253 ) MisResultCondition(HasItem, 4084, 1 ) MisResultAction(TakeItem, 4084, 1 ) MisResultAction(ClearMission, 253 ) MisResultAction(SetRecord, 253 ) MisResultAction(ObligeAcceptMission, 4 ) MisResultAction(AddTrigger, 109, TE_KILL, 99, 1 ) MisResultAction(AddTrigger, 108, TE_GAMETIME, TT_MULTITIME, 60, 1 ) MisResultAction(AddExp,4500,4500) MisResultAction(AddMoney,2000,2000) MisResultAction(AddExpAndType,2,9035,9035) MisResultBagNeed(1) InitTrigger() TriggerCondition( 1, IsItem, 4084 ) TriggerAction( 1, AddNextFlag, 253, 10, 1 ) RegCurTrigger( 2531 ) InitTrigger() TriggerCondition( 1, NoMisssionFailure, 4 ) TriggerCondition( 1, IsMonster, 99 ) TriggerAction( 1, AddNextFlag, 4, 10, 1 ) RegCurTrigger( 109 ) InitTrigger() TriggerCondition( 1, NoFlag, 4, 10 ) TriggerAction( 1, SystemNotice, "Quest countdown is over. Lure Behemoth failed!" ) TriggerAction( 1, SetMissionFailure, 4 ) RegCurTrigger( 108 )
- EudemonScript.lua
SpoilerDefineWorldMission( 4, "Lure Behemoth", 4 ) MisBeginTalk( "<t>Proceed to <pAbandoned Mine 2> and find the lair of the Behemoth. When you reached the lair, use the <ySpecial Strawberry Biscuit> and see what happens.<n><t>Once you manage to lure the beast out, please kill him within the hour." ) MisHelpTalk( "<t>Proceed to <pAbandoned Mine 2> and find the lair of the Behemoth. When you reached the lair, use the <ySpecial Strawberry Biscuit> and see what happens.<n><t>Once you manage to lure the beast out, please kill him within the hour." ) MisBeginAction( AddMission, 4 ) MisBeginAction(SystemNotice, "Obtained Quest: 'Lure Behemoth'" ) -- MisCancelAction(ClearMission, 4 ) -- MisCancelAction(ClearTrigger, 109 ) -- MisCancelAction(ClearTrigger, 108 ) MisCancelAction(SystemNotice, "This quest cannot be abandoned" ) -- MisCancelAction(ClearMission, 4 ) MisNeed(MIS_NEED_DESP, "Use the Strawberry biscuit to lure the Behemoth" ) MisNeed(MIS_NEED_KILL, 99, 1, 10, 1) MisResultCondition( AlwaysFailure )
Here is my problems:
- When kill Behemoth, an error with strange encoding appears:
- If I don't submit the quest within the hour, I get the following message:
CCharMission: GetItem: quest manage function [TriggerProc]transfer return failed!
I have tried all things I can think of:
- Disable "MisResultAction(AddTrigger, 108, TE_GAMETIME, TT_MULTITIME, 60, 1 )" and its related trigger (as it seems to be in KOP2.4 files)
- Change TRIGGER_ID to 2539 and 2538 from 109 and 108, as following the guide (and then to 49,48 as the eudemon quest ID is 4)
- Even changed clients to see if problem was client side, but it is same with clean TOP1 client "Frozen relics" and KOP client War of Eternity from MEGA archive
Anyone knows how can resolve this?
Thanks in advance and sorry for my english
-
Having looked at this more, it seems like the "item[n]" parametres correspond to probability for the item to fall, and cannot be set to determine the item's ID.
So, I am wondering two things:
- Is there any function that controls drop from monsters? I can achieve what I want with "GiveItem()", but I would rather the item to drop and not appear directly on inventory.
- My initial question: Where are all these functions defined? Like the "SetItemFall", "GiveItem", etc? Are they lua functions, or are they somehow integrated with the server's code? Sorry for the rookie question, I don't know a lot about programming.
Thanks for reading
-
Hi, haven't tested if registration works with this edits, but to avoid the deprecated mssql_connect() you can edit this line in `index.php`:
Edited: changed all calls to mssql_* functions, this should work for you:
SpoilerReplace in index.php:
<?php session_start(); include 'config.php'; include 'functions.php'; if(!@include 'lang/'.$config['other']['lang'].'.php') die('Не найдена языковая библиотека <b>'.$config['other']['lang'].'</b>./Not found language library <b>'.$config['other']['lang'].'.</b'); $serverName = $config['db']['host']; $connectionInfo = array( "UID" => $config['db']['user'], "PWD" => $config['db']['password'] ); $conn = sqlsrv_connect( $serverName, $connectionInfo); if(isset($_POST['reg'])) { if(empty($_POST['login'])) $page = "<span class=\"error\">".$lang_error1."</span>".$page; else if(empty($_POST['password'])) $page = "<span class=\"error\">".$lang_error2."</span>".$page; else if(empty($_POST['password2'])) $page = "<span class=\"error\">".$lang_error3."</span>".$page; else if(empty($_POST['email'])) $page = "<span class=\"error\">".$lang_error4."</span>".$page; else if(empty($_POST['email2'])) $page = "<span class=\"error\">".$lang_error5."</span>".$page; else { if($_POST['password'] == $_POST['password2']) { $login = $_POST['login']; $pass = $_POST['password']; $email = $_POST['email']; if ((preg_match("/[^a-z0-9_-]/", $login)) || (preg_match("/[^a-z0-9_-]/", $pass)) ) { $page = "<span class=\"error\">".$lang_error6."</span>".$page; } else { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if(strlen($login) > 4 && strlen($pass) > 4) { if(strlen($login) < 16 && strlen($pass) < 16) { $sql=("SELECT * FROM accountserver.dbo.account_login WHERE name='$login'"); $params = array(); $options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET ); $stmt = sqlsrv_query( $conn, $sql , $params, $options ); $row_count = sqlsrv_num_rows( $stmt ); if( $row_count > 0) $page = "<span class=\"error\">".$lang_error7."</span>".$page; else if($_SESSION['captcha_keystring'] != htmlentities($_POST['captcha'])) $page .= "<span class=\"error\">".$lang_error8."</span>"; else { if($email == $_POST['email2']) { if(strlen($email) < 26) { $encr_pass = strtoupper(md5($pass)); $sql=("INSERT INTO accountserver.dbo.account_login (name,password,originalPassword,email) VALUES ('$login','$encr_pass','$pass', '$email')"); $params = array(); $options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET ); sqlsrv_query( $conn, $sql , $params, $options ); $page = "<span class=\"complete\">".$lang_complete."</span>"; } else $page = "<span class=\"error\">".$lang_error13."</span>"; } else { $page = "<span class=\"error\">".$lang_error9."</span>"; } } } else $page = "<span class=\"error\">".$lang_error12."</span>".$page; } else $page = "<span class=\"error\">".$lang_error10."</span>".$page; } else $page = "<span class=\"error\">".$lang_error14."</span>".$page; } } else $page = "<span class=\"error\">".$lang_error11."</span>".$page; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT" /> <meta http-equiv="Pragma" content="no-cache" /> <title><?php echo $config['server']['name']." - ".$lang_register; ?></title> <style type="text/css"> *{padding: 0; margin: 0;} body {font: 12px/18px Arial, Tahoma, Verdana, sans-serif;background: #9de7fb;} #title{background-image: url(./img/title.png); width: 651px; height: 80px; text-align: center; padding-top: 25px; font-size: 30px; font-weight: bold; margin: 0 auto; margin-top: 15px;font-family:'Monotype Corsiva';} #button-register{width: 222px;height: 78px;display: block;background: url(./img/button-register-<?php echo $config['other']['lang'];?>.png) no-repeat;} #button-register:hover{background-position: 100% -78px;} #button-clear{width: 222px;height: 78px;display: block;background: url(./img/button-clear-<?php echo $config['other']['lang'];?>.png) no-repeat;} #button-clear:hover{background-position: 100% -78px;} #image {border: 2px dotted;} .label{float: right;padding-right: 5px;font-weight: bold;font-size: 15px;} .edit1 {width: 180px;height: 33px;font-size: 20px;border:none;background: url(./img/edit1.png) 0 0 no-repeat;padding:1px 15px 1px 15px;outline: none;} .edit2 {width: 126px;height:33px;border:none;font-size: 20px;background:url(./img/edit2.png) 0 0 no-repeat;padding:1px 15px 1px 15px;outline: none;} .error{color: #ff0000} .complete{color: #008000;} #menu{height: auto; wigth: 100%; padding: 5px; background:url(./img/grad.jpg) repeat-x #c0c0c0;} #main_form{height: auto; width: 450px; margin: 0 auto;} .button-top_exp{height:26px;width:121px;display:block; background:url(./img/topexp-<?php echo $config['other']['lang'];?>.png) no-repeat;} .button-top_exp:hover{background-position: 100% -26px;} .button-top_exp_selected{height:26px;width:121px;display:block; background:url(./img/topexp-<?php echo $config['other']['lang'];?>.png) no-repeat;background-position: 100% -52px;} .button-top_gold{height:26px;width:121px;display:block;background:url(./img/topgold-<?php echo $config['other']['lang'];?>.png) no-repeat;} .button-top_gold:hover{background-position: 100% -26px;} .button-top_gold_selected{height:26px;width:121px;display:block;background:url(./img/topgold-<?php echo $config['other']['lang'];?>.png) no-repeat;background-position: 100% -52px;} .button-register_menu{height:26px;width:121px;display:block;background:url(./img/register-<?php echo $config['other']['lang'];?>.png) no-repeat;} .button-register_menu:hover{background-position: 100% -26px;} .button-register_menu_selected{height:26px;width:121px;display:block;background:url(./img/register-<?php echo $config['other']['lang'];?>.png) no-repeat;background-position:100% -52px;} .button-top_guild{height:26px;width:121px;display:block;background:url(./img/topguild-<?php echo $config['other']['lang'];?>.png) no-repeat;} .button-top_guild:hover{background-position:100% -26px;} .button-top_guild_selected{height:26px;width:121px;display:block;background:url(./img/topguild-<?php echo $config['other']['lang'];?>.png) no-repeat;background-position:100% -26px;} .button-statistic_menu{height:26px;width:121px;display:block;background:url(./img/stats-<?php echo $config['other']['lang'];?>.png) no-repeat;} .button-statistic_menu:hover{background-position: 100% -26px;} .button-statistic_menu_selected{height:26px;width:121px;display:block;background:url(./img/stats-<?php echo $config['other']['lang'];?>.png) no-repeat;background-position: 100% -52px;} </style> </head> <body> <div id="menu"> <table> <tr> <th><a href="index.php" class="button-register_menu_selected"></a></th> <th><a href="top.php?rank=exp" class="button-top_exp"></a></th> <th><a href="top.php?rank=gold" class="button-top_gold"></a></th> <th><a href="top.php?rank=guild" class="button-top_guild"></a></th> <!--<th><a href="statistics.php" class="button-statistic_menu"></a></th> *--> </tr> </table> </div> <div id="title"><?php echo $config['server']['name']?></div> <div id="main_form"> <table> <form action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="POST" name="main_form"> <input type="hidden" name="reg" value="reg"> <tr><th colspan="2"><?php if(isset($_POST['reg'])) echo $page; else echo ' ';?></th></tr> <tr><td><span class="label" id="label1"><?php echo $lang_login; ?>:</span></td><td><input type="text" name="login" class="edit1" onClick="document.getElementById('label1').style.color='#6f98cd';" onBlur="document.getElementById('label1').style.color='#000'" id="Edit1" maxlength="15" /></td></tr> <tr><td><span class="label" id="label2"><?php echo $lang_password; ?>:</span></td><td><input type="password" name="password" class="edit1" onClick="document.getElementById('label2').style.color='#6f98cd'" onBlur="document.getElementById('label2').style.color='#000'" maxlength="15" /></td></tr> <tr><td><span class="label" id="label3"><?php echo $lang_repassword; ?>:</span></td><td><input type="password" name="password2" class="edit1" onClick="document.getElementById('label3').style.color='#6f98cd'" onBlur="document.getElementById('label3').style.color='#000'" maxlength="15" /></td></tr> <tr><td><span class="label" id="label4"><?php echo $lang_email; ?>:</span></td><td><input type="text" name="email" class="edit1" onClick="document.getElementById('label4').style.color='#6f98cd'" onBlur="document.getElementById('label4').style.color='#000'" maxlength="25" /></td></tr> <tr><td><span class="label" id="label5"><?php echo $lang_reemail ?>:</span></td><td><input type="text" name="email2" class="edit1" onClick="document.getElementById('label5').style.color='#6f98cd'" onBlur="document.getElementById('label5').style.color='#000'" maxlength="25" /></td></tr> <tr><th colspan="2" id="label6"><?php echo $lang_code; ?>:</th></tr> <tr><th colspan="2"><img src="kcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>" id="image"></th></tr> <tr><th colspan="2"><input type="text" name="captcha" class="edit2" onClick="document.getElementById('label6').style.color='#6f98cd';document.getElementById('image').style.border='2px dotted #6f98cd';" onBlur="document.getElementById('label6').style.color='#000';document.getElementById('image').style.border='2px dotted #000';" style="text-align: center;" maxlength="6" /></th></tr> <tr><td><a href="#" onClick="main_form.submit();" id="button-register"></a></td><td><a href="#" onClick="main_form.reset()" id="button-clear"></a></td></tr> </form> <?php if($config['other']['show_strong']){?> <tr> <td> <?php $sql = "SELECT TOP 1 g.guild_id, c.cha_name, c.icon, c.degree, c.job, CASE WHEN (c.exp < 0) THEN (c.exp+4294967296) ELSE c.exp END AS exp, CASE WHEN (g.guild_id = 0) THEN '-' ELSE guild_name END AS guild_name FROM gamedb.dbo.character AS c LEFT JOIN gamedb.dbo.account AS a ON (a.act_id = c.act_id) LEFT JOIN gamedb.dbo.guild AS g ON ((c.guild_id = g.guild_id) AND (c.guild_stat = 0)) WHERE (ISNULL(c.deldate,0) = 0 AND (a.gm = 0)) ORDER BY CASE WHEN (c.exp < 0) THEN (c.exp+4294967296) ELSE c.exp END DESC"; $params = array(); $options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET ); $stmt = sqlsrv_query( $conn, $sql , $params, $options ); $row_count = sqlsrv_num_rows( $stmt ); if( $row_count > 0) { $character = mssql_fetch_array($result); $picture = getCharPicture((int)$character['icon'], $character['job']); $picture = (file_exists('img/chars/'.$picture)) ? $picture : 'unknown.gif'; ?> <table style="margin-top: 15px;"> <tr><th colspan="2" style="text-align: left;"><?php echo $lang_strong;?></th><tr> <tr><td rowspan="5" width="76" height="96"><img src="img/chars/<?php echo $picture; ?>" alt="<?php echo $picture; ?>" /></td><td style="border-bottom: 1px dotted #000;"><?php echo $character['cha_name']; ?></td></tr> <tr><td style="border-bottom: 1px dotted #000;"><?php echo $character['degree']; ?></td></tr> <tr><td style="border-bottom: 1px dotted #000;"><?php echo $character['job']; ?></td></tr> <tr><td style="border-bottom: 1px dotted #000;" valign="top"><?php echo $character['guild_name']; ?></td></tr> <tr><td valign="top"> </td></tr> </table> <?php } else { echo '<img src="img/none.jpg" alt="'.$lang_nostrong.'" style="margin-top: 15px;">'; echo '<p><b>'.$lang_nostrong.'</b></p>'; } ?> </td> <td> <?php $sql = "SELECT TOP 1 g.guild_id, c.gd, c.cha_name, c.icon, c.job, CASE WHEN (g.guild_id = 0) THEN '-' ELSE guild_name END AS guild_name FROM gamedb.dbo.character AS c LEFT JOIN gamedb.dbo.account AS a ON (a.act_id = c.act_id) LEFT JOIN gamedb.dbo.guild AS g ON ((c.guild_id = g.guild_id) AND (c.guild_stat = 0)) WHERE (ISNULL(c.deldate,0) = 0 AND (a.gm = 0)) ORDER BY gd DESC"; $params = array(); $options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET ); $stmt = sqlsrv_query( $conn, $sql , $params, $options ); $row_count = sqlsrv_num_rows( $stmt ); if( $row_count > 0) { $character = mssql_fetch_array($result); $picture = getCharPicture((int)$character['icon'], $character['job']); $picture = (file_exists('img/chars/'.$picture)) ? $picture : 'unknown.gif'; ?> <table align="right" style="margin-top: 15px; text-align: left;"> <tr><th colspan="2"><?php echo $lang_rich;?></th><tr> <tr><td rowspan="5" width="76" height="96"><img src="img/chars/<?php echo $picture; ?>" alt="<?php echo $picture; ?>" /></td><td style="border-bottom: 1px dotted #000;"><?php echo $character['cha_name']; ?></td></tr> <tr><td style="border-bottom: 1px dotted #000;"><?php echo $character['gd']; ?></td></tr> <tr><td style="border-bottom: 1px dotted #000;"><?php echo $character['job']; ?></td></tr> <tr><td style="border-bottom: 1px dotted #000;"><?php echo $character['guild_name']; ?></td></tr> <tr><td valign="top"> </td></tr> </table> <?php } else { echo '<img src="img/none.jpg" alt="'.$lang_norich.'" style="margin-top: 15px;">'; echo '<p><b>'.$lang_norich.'</b></p>'; } ?> </td> </tr> <?php }?> </table> </div> </body> </html>
For me the captcha image did not work and did not have time to check it, so I just commented out line 41: "else if($_SESSION['captcha_keystring']"
This only makes work the registration, to have rankings work you change the mssql_ functions with the respective sqlsrv_ functions. Hope this can help
- 1
-
Hello everyone,
Sorry for the stupid question, I am novice in lua and am having a very big confusion regarding where some functions are defined.
My question is: in the file "itemeffect.lua" inside the function: "function Check_Baoliao(ATKER, DEFER, ... )":
There is this line repeated 3 times, for when player is killed in PVP, when monster is killed in PVE or when resource is used:
SetItemFall ( count , item[1] , item[2] , item[3] , item[4] , item[5] , item[6], item[7] ,item[8],item[9],item[10] )
I am trying to understand where the "SetItemFall" is defined, as I want to use it in another function in order to alter drops. However, it seems it cannot be used outside "Check_Baoliao"? However, it is not defined as a function in Check_Baoliao either, or in any other file inside the "calculate" directory.
The reason I want to use it is because I am trying to add a drop for every mob in "exp_and_level.lua":
SpoilerThis works:
-- >>> Add item dropping to every mob local ItemFallsMonster = GetChaAttrI( dead , ATTR_LV ) if ValidCha (team_atker) == 0 then SystemNotice(atk,'A hidden Fairy Ration') GiveItem( atk , 0 , 227 , 1, 4 ) end -- <<< END Add item dropping to every mob
But this does not:
-- >>> Add item dropping to every mob local ItemFallsMonster = GetChaAttrI( dead , ATTR_LV ) if ValidCha (team_atker) == 0 then SystemNotice(atk,'A hidden Fairy Ration') SetItemFall( 1, 227 ) end -- <<< END Add item dropping to every mob
Trying to get this working before start playing with dropping chance percentages (that I think depend on the "StateLv" and "MF_RAID_STATE"?)
Sorry for my English and thanks in advance
Any can gift me a server files + client??
in Questions & Help
Posted · Report reply
https://mega.nz/folder/OUMUgTYb#jtCsqh7halK_O9uzWyaG0g/folder/bNEwAYjL