Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 01/23/2019 in all areas

  1. 4 points
    I will share that feature in several days for free
  2. 3 points
    Ты установишь персонажу ровно 10 очков мирных навыков. Чтобы добавить очки, сначала нужно получить текущее количество очков у персонажа с помощью функции GetChaAttr() и прибавить к текущему количеству необходимое. // Получаем текущее количество очков у персонажа local score = GetChaAttr(...) // Количество очков, которое мы хотим добавить local add = 10 // Складываем очки local result = score + add // Устанавливаем новое количество очков персонажу SetChaAttr(role, result, ...)
  3. 2 points
    Helo! this @V3ct0r Function but this will allow u change your class anytime , put this in Function.lua function SkillReset(Player) local Skills = {{0453, 0}, {0454, 0}, {0455, 0}, {0456, 0}, {0457, 0}, {0458, 0}, {0459, 0}, {0256, 0}, {0255,0}, {0467,0} } --this table for skills you won't reset them local Points = 0 for A = 1, table.getn(Skills), 1 do Skills[A][2] = GetSkillLv(Player, Skills[A][1]) Points = Points - Skills[A][2] end Points = Points + GetChaAttr(Player, ATTR_TP) Points = Points + ClearFightSkill(Player) if Points >= 200 then Points = 200 end for B = 1, table.getn(Skills), 1 do if Skills[B][2] ~= 0 then AddChaSkill(Player, Skills[B][1], Skills[B][2], Skills[B][2], 0) end end SetChaAttr(Player, ATTR_TP, Points) RefreshCha(Player) end ------------------ --NPC CLass Promotsion -- 0 = Newbie -- 1 = Swordsman -- 2 = Hunter -- 3 = Sailor -- 4 = Explorer -- 5 = Herbalist -- 6 = Artisan -- 7 = Merchant -- 8 = Champion -- 9 = Crusader -- 10 = White Knight -- 11 = Animal Tamer -- 12 = Sharpshooter -- 13 = Cleric -- 14 = Seal Master -- 15 = Captain -- 16 = Voyager -- 17 = Upstart -- 18 = Engineer function GiveJobToCha(role, job_id) -- Table -- Race ID => Allowed jobs local job_requirements = { [1] = {1, 2, 4, 9, 12, 16}, -- Lance [2] = {1, 8}, -- Carsise [3] = {2, 4, 5, 12, 13, 14, 16}, -- Phyliss [4] = {4, 5, 13, 14, 16} -- Ami } -- Table -- Job ID => Skills local job_skills = { -- Swordsman [1] = { {id = 66, lv = 10}, -- Concentration Lv10 {id = 0222, lv = 10}, -- Break Armor Lv10 {id = 62, lv = 10}, -- Sword Mastery Lv10 {id = 81, lv = 10}, -- Illusion Slash Lv 10 {id = 84, lv = 10}, -- Berserk Lv 10 {id = 0242, lv = 10} -- Taunt Lv 10 }, -- Crusader [9] = { {id = 66, lv = 10}, -- Concentration Lv10 {id = 0222, lv = 10}, -- Break Armor Lv10 {id = 62, lv = 10}, -- Sword Mastery Lv10 {id = 81, lv = 10}, -- Illusion Slash Lv 10 {id = 84, lv = 10}, -- Berserk Lv 10 {id = 109, lv = 10}, -- Dual Sword Mastery Lv 10 {id = 87, lv = 10}, -- Poison Dart Lv 10 {id = 70, lv = 10}, -- Blood Frenzy Lv 10 {id = 123, lv = 10}, -- Stealth Lv 10 {id = 65, lv = 10}, -- Deftness Lv 10 {id = 86, lv = 10}, -- Shadow Slash 10 {id = 0242, lv = 10} -- Taunt Lv 10 }, -- Champion [8] = { {id = 66, lv = 10}, -- Concentration Lv10 {id = 0222, lv = 10}, -- Break Armor Lv10 {id = 62, lv = 10}, -- Sword Mastery Lv10 {id = 81, lv = 10}, -- Illusion Slash Lv 10 {id = 84, lv = 10}, -- Berserk Lv 10 {id = 67, lv = 10}, -- Greatsword Mastery Lv 10 {id = 64, lv = 10}, -- Strengthen Lv 10 {id = 68, lv = 10}, -- Blood Bull Lv 10 {id = 82, lv = 10}, -- Mighty Strike Lv 10 {id = 107, lv = 10}, -- Howl Lv 10 {id = 83, lv = 10}, -- Primal Rage Lv 10 {id = 83, lv = 10}, -- Primal Rage Lv 10 {id = 0243, lv = 10} -- Roar Lv 10 }, -- Explorer [4] = { {id = 210, lv = 10}, -- Diligence Lv10 {id = 211, lv = 10}, -- Current Lv10 {id = 212, lv = 10}, -- Conch Armor Lv10 {id = 213, lv = 10}, -- Tornado Lv 10 {id = 214, lv = 10}, -- Lightning Bolt Lv 10 {id = 215, lv = 10}, -- Algae Entanglement Lv 10 -- Land skill {id = 0473, lv = 10} -- Algae Entanglement Lv 10 -- sea skill }, -- Voyager [16] = { {id = 210, lv = 10}, -- Diligence Lv10 {id = 211, lv = 10}, -- Current Lv10 {id = 212, lv = 10}, -- Conch Armor Lv10 {id = 213, lv = 10}, -- Tornado Lv 10 {id = 214, lv = 10}, -- Lightning Bolt Lv 10 {id = 215, lv = 10}, -- Algae Entanglement Lv 10 -- Land skill {id = 216, lv = 10}, -- Conch Ray Lv 10 {id = 220, lv = 10}, -- Lightning Curtain Lv 10 --Sea Skill {id = 0474, lv = 10}, -- Lightning Curtain Lv 10 --Land Skill {id = 217, lv = 10}, -- Tail Wind Lv 10 {id = 219, lv = 10}, -- Fog Lv 10 {id = 218, lv = 10}, -- Whirlpool Lv 10 {id = 0473, lv = 10} -- Algae Entanglement Lv 10 -- sea skill }, -- Herbalist [5] = { {id = 79, lv = 10}, -- Vigor Lv10 {id = 97, lv = 10}, -- Heal Lv10 {id = 99, lv = 10}, -- Spiritual Bolt Lv10 {id = 100, lv = 10}, -- Spiritual Fire Lv 10 {id = 101, lv = 10}, -- Tempest Boost Lv 10 {id = 225, lv = 10}, -- Harden Lv 10 {id = 124, lv = 10}, -- Revival Lv 10 {id = 98, lv = 10} -- Recover Lv 10 }, -- Cleric [13] = { {id = 79, lv = 10}, -- Vigor Lv10 {id = 97, lv = 10}, -- Heal Lv10 {id = 99, lv = 10}, -- Spiritual Bolt Lv10 {id = 100, lv = 10}, -- Spiritual Fire Lv 10 {id = 101, lv = 10}, -- Tempest Boost Lv 10 {id = 225, lv = 10}, -- Harden Lv 10 {id = 124, lv = 10}, -- Revival Lv 10 {id = 106, lv = 10}, -- Energy Shield Lv 10 {id = 102, lv = 10}, -- Tornado Swirl Lv 10 {id = 103, lv = 10}, -- Angelic Shield Lv 10 {id = 122, lv = 10}, -- Healing Spring Lv 10 {id = 80, lv = 10}, -- Divine Grace Lv 10 {id = 116, lv = 10}, -- True Sight Lv 10 {id = 98, lv = 10} -- Recover Lv 10 }, -- Seal Master [14] = { {id = 79, lv = 10}, -- Vigor Lv10 {id = 97, lv = 10}, -- Heal Lv10 {id = 99, lv = 10}, -- Spiritual Bolt Lv10 {id = 100, lv = 10}, -- Spiritual Fire Lv 10 {id = 101, lv = 10}, -- Tempest Boost Lv 10 {id = 225, lv = 10}, -- Harden Lv 10 {id = 124, lv = 10}, -- Revival Lv 10 {id = 119, lv = 10}, -- Cursed Fire Lv 10 {id = 121, lv = 10}, -- Abyss Mire Lv 10 {id = 105, lv = 10}, -- Shadow Insignia Lv 10 {id = 104, lv = 10}, -- Seal of Elder Lv 10 {id = 80, lv = 10}, -- Divine Grace Lv 10 {id = 116, lv = 10}, -- True Sight Lv 10 {id = 98, lv = 10} -- Recover Lv 10 }, -- Hunter [2] = { {id = 74, lv = 10}, -- Range Mastery Lv10 {id = 75, lv = 10}, -- Wind Walk Lv10 {id = 90, lv = 10}, -- Dual Shot Lv10 {id = 223, lv = 10}, -- Rousing Lv 10 {id = 93, lv = 10}, -- Frozen Arrow Lv 10 {id = 224, lv = 10}, -- Venom Arrow Lv 10 {id = 112, lv = 10} -- Meteor Shower Lv 10 }, -- Sharpshooter [12] = { {id = 74, lv = 10}, -- Range Mastery Lv10 {id = 75, lv = 10}, -- Wind Walk Lv10 {id = 90, lv = 10}, -- Dual Shot Lv10 {id = 223, lv = 10}, -- Rousing Lv 10 {id = 93, lv = 10}, -- Frozen Arrow Lv 10 {id = 224, lv = 10}, -- Venom Arrow Lv 10 {id = 78, lv = 10}, -- Firegun Mastery Lv 10 {id = 94, lv = 10}, -- Cripple Lv 10 {id = 95, lv = 10}, -- Enfeeble Lv 10 {id = 96, lv = 10}, -- Headshot Lv 10 {id = 113, lv = 10}, -- Magma Bullet Lv 10 {id = 112, lv = 10} -- Meteor Shower Lv 10 }, } -- Table -- Job ID => Name local job_name = { [0] = "Newbie", [1] = "Swordsman", [2] = "Hunter", [3] = "Sailor", [4] = "Explorer", [5] = "Herbalist", [6] = "Artisan", [7] = "Merchant", [8] = "Champion", [9] = "Crusader", [10] = "White Knight", [11] = "Animal Timer", [12] = "Sharpshooter", [13] = "Cleric", [14] = "Seal Master", [15] = "Captain", [16] = "Voyager", [17] = "Upstart", [18] = "Engineer" } -- Check given job id if (job_id < 0 or job_id > (table.getn(job_name) - 1)) then SystemNotice(role, "Job ID should be from 0 to 18!") return end -- Check given character descriptor if (role == nil or IsPlayer(role) == 0) then SystemNotice(role, "Wrong role descriptor is given! Should be player character.") return end -- Check job requirements local cha_icon = GetChaTypeID(role) local ok = false for i = 1, table.getn(job_requirements[cha_icon]), 1 do if (job_id == job_requirements[cha_icon][i]) then ok = true break end end if (ok == false) then SystemNotice( role, string.format("The character of your race cannot become %s!", job_name[job_id]) ) return end if job_id > 0 then SkillReset(role) --remove all old skills -- Set job ID SetChaAttrI(role, ATTR_JOB, job_id) -----move player in his place to remove any extra max-- local x, y = GetChaPos(role) x = math.floor(x / 100) y = math.floor(y / 100) local GoTo01M = GetChaMapName(role) GoTo(role, x, y, GoTo01M) -- Add skills if (job_skills[job_id] ~= nil) then for key, value in pairs(job_skills[job_id]) do local skill_lv = GetSkillLv(role, value.id) if (skill_lv < value.lv) then AddChaSkill(role, value.id, value.lv, 1, 0) end end end end -- Synchronize the character RefreshCha(role) end
  4. 2 points
    Hello @Brothers Add the following code to your functions.lua -- 0 = Newbie -- 1 = Swordsman -- 2 = Hunter -- 3 = Sailor -- 4 = Explorer -- 5 = Herbalist -- 6 = Artisan -- 7 = Merchant -- 8 = Champion -- 9 = Crusader -- 10 = White Knight -- 11 = Animal Tamer -- 12 = Sharpshooter -- 13 = Cleric -- 14 = Seal Master -- 15 = Captain -- 16 = Voyager -- 17 = Upstart -- 18 = Engineer function GiveJobToCha(role, job_id) -- Table -- Race ID => Allowed jobs local job_requirements = { [1] = {1, 2, 4, 9, 12, 16}, -- Lance [2] = {1, 8}, -- Carsise [3] = {2, 4, 5, 12, 13, 14, 16}, -- Phyliss [4] = {4, 5, 13, 14, 16} -- Ami } -- Table -- Job ID => Skills local job_skills = { -- Swordsman [1] = { {id = 66, lv = 10}, -- Concentration Lv10 {id = 62, lv = 10}, -- Sword Mastery Lv10 {id = 222, lv = 10}, -- Break Armor Lv10 {id = 84, lv = 10}, -- Berserk Lv 10 {id = 81, lv = 10} -- Illusion Slash Lv 10 }, -- Crusader [9] = { {id = 66, lv = 10}, -- Concentration Lv10 {id = 62, lv = 10}, -- Sword Mastery Lv10 {id = 222, lv = 10}, -- Break Armor Lv10 {id = 84, lv = 10}, -- Berserk Lv 10 {id = 81, lv = 10}, -- Illusion Slash Lv 10 {id = 109, lv = 10}, -- Dual sword Lv 10 {id = 65, lv = 10}, -- Deftness Lv 10 {id = 70, lv = 10}, -- Blood Frenzy Lv 10 {id = 87, lv = 10}, -- Poison Dart Lv 10 {id = 86, lv = 10}, -- Shadow Slash Lv 10 {id = 123, lv = 10} -- Stealth Lv 10 }, } -- Table -- Job ID => Name local job_name = { [0] = "Newbie", [1] = "Swordsman", [2] = "Hunter", [3] = "Sailor", [4] = "Explorer", [5] = "Herbalist", [6] = "Artisan", [7] = "Merchant", [8] = "Champion", [9] = "Crusader", [10] = "White Knight", [11] = "Animal Timer", [12] = "Sharpshooter", [13] = "Cleric", [14] = "Seal Master", [15] = "Captain", [16] = "Voyager", [17] = "Upstart", [18] = "Engineer" } -- Check given job id if (job_id < 0 or job_id > (table.getn(job_name) - 1)) then SystemNotice(role, "Job ID should be from 0 to 18!") return end -- Check given character descriptor if (role == nil or IsPlayer(role) == 0) then SystemNotice(role, "Wrong role descriptor is given! Should be player character.") return end -- Check job requirements local cha_icon = GetChaTypeID(role) local ok = false for i = 1, table.getn(job_requirements[cha_icon]), 1 do if (job_id == job_requirements[cha_icon][i]) then ok = true break end end if (ok == false) then SystemNotice( role, string.format("The character of your race cannot become %s!", job_name[job_id]) ) return end -- Set job ID SetChaAttrI(role, ATTR_JOB, job_id) -- Add skills if (job_skills[job_id] ~= nil) then for key, value in pairs(job_skills[job_id]) do local skill_lv = GetSkillLv(role, value.id) if (skill_lv < value.lv) then AddChaSkill(role, value.id, value.lv, 1, 0) end end end -- Synchronize the character RefreshCha(role) end Then add script for new NPC in file NPCScript01.lua: -- Class Promotion NPC function PD_ClassNpc() Talk(1, "Hello! Choose your class:") Text(1, "Swordsman", GiveJobToCha, 1) Text(1, "Hunter", GiveJobToCha, 2) Text(1, "Explorer", GiveJobToCha, 4) Text(1, "Herbalist", GiveJobToCha, 5) Text(1, "Champion", GiveJobToCha, 8) Text(1, "Next page --->", JumpPage, 2) Text(1, "Close", CloseTalk) Talk(2, "Hello! Choose your class:") Text(2, "Crusader", GiveJobToCha, 9) Text(2, "Sharpshooter", GiveJobToCha, 12) Text(2, "Cleric", GiveJobToCha, 13) Text(2, "Seal Master", GiveJobToCha, 14) Text(2, "Voyager", GiveJobToCha, 16) Text(2, "<--- Previous page", JumpPage, 1) Text(2, "Close", CloseTalk) end In file NpcSdk.lua add function GiveJobCha() between lines "return SetSpawnPos( character, item.p1 )" and "elseif item.func == TransferDiamond then" in function MsgProc(): elseif item.func == SetSpawnPos then return SetSpawnPos( character, item.p1 ) elseif item.func == GiveJobToCha then return GiveJobToCha( character, item.p1 ) elseif item.func == TransferDiamond then return TransferDiamond( character, item.p1 ) Finally create NPC in file <map>npc.txt with function PD_ClassNpc. All you have to do is fill out the table job_skills following the examples for Swordsman and Crusader classes. It will be great if you then share with us the completed table for all classes.
  5. 1 point
    Hello I've been working on a small project to create a better version of our beloved pkoSite. It's still a work in progress but just in case anyone wants to use it and help around with testing or whatever, I'm releasing a minimal version to the public. This version includes Register Login Downloads News Admin panel for both downloads and news I'll update it to include more things such as: Ranking Item Mall Credit Mall IMP Auction Credit Auction Wheel of Fortune Admin panel Logging system ( log all actions performed by admins ) If you have any feature you want , you can let me know in the comments, I'll be happy to add that! I've used the latest database libraries ( SQLSRV ) and laravel as the framework. You'll be able to run this in the latest version of any webserver you want. You can obtain the site from here. Installation guide: First off, you need SQLSRV drivers. Find out what version of PHP you're running and then download those drivers from here. Most of your webservers have thread safety enabled so you're going to want to use the _ts dll files. Take the sqlsrv pdo DLL and the normal sqlsrv dll and put them into your php( this folder will be in your webserver folder. For xampp users -> xampp/php.) -> ext folder. Now, open your php.ini which you'll find in your php folder. Search for "extension=php_" and you should come across something like this. as you can see at the end, I have the sqlsrv dlls added. Do the same for your php.ini file. Now, go here and scroll down till you see this : download the ODBC driver that corresponds to the sqlsrv driver versions you download and install them. That's all for the SQLSRV part. Now, depending on whether you just want to mess around with the website or you want to put it up for production, you have two options. You start a temporary server using artisan (it'll work on the port 8080 and won't interfere with your website) You can edit your HTTPD.CONF file to direct it to the website's public folder and the website will run directly from your browser by going to localhost or your website name. ( WARNING : No other folders on your webserver will be accessible to you if you use this method, i.e, you won't be able to use another site like http://localhost/site2. It won't work.). If you want to go the first route, open your command prompt. Direct yourself to the webserver directory and type in php artisan serve This'll start a server on the 8080 port and you can use the website as you wish. If you want to go the second route, go to your apache folder, and open the httpd.conf file. It should be in the conf folder. Search for the DocumentRoot. It'll be something like this : As you can see I've already changed my document root to the directory that my website is in. Do the same. That does it for the webserver/sqlsrv configuration. Now, adding your database configurations to the website. In the root of the website, there's a file called .env.example. Open the file. Most of the configs are self-explanatory. Change the SITE_INFO_DB_FILE to wherever you've stored your website. Go to google and check their RECAPTCHA page to obtain your RECAPTCHA PUBLIC and PRIVATE keys and just stuff those in the respective fields. IMPORTANT STEP HERE You have to remove the .example part from the .env file, i.e open your word editor and click "save as", choose the "all files" option and remove the .example from the end of the name, so the file is just called .env Open your command prompt, direct yourself to the website directory and type in php artisan key:generate This'll generate a key specific to your website. Go to the database folder(topSite/database/) and just create an empty "SiteInfo.sqlite" file. Run php artisan migrate --database=SiteInfo --path=database/migrations/SiteInfo php artisan migrate --database=GameDB --path=database/migrations/GameDB And you're done! If you want to change the title of the site or whatever, you can find the website's name in the config->app.php file. Let me know if there are any issues, I'll fix them as soon as I can. Some screenshots from the website
  6. 1 point
    EDIT: Talked with him on Discord and problem solved
  7. 1 point
    do not buy since later it is not able to help in the basic errors. And people start asking third parties It reminds me of the old days of people who sell files from just theft and free files
  8. 1 point
    Hi, we are trying to re-create the game as much as possible. But in fast paced gameplay style and better quality. We using esenthel engine (c++ and lightweight) because cryengine, UE or unity are not that good for mmos. We have 3 devs and 1 modeller/graphics artist. But we need more people to recreate the textures and mode. If there are no people willing to help, I might hire some freelancers. Terrain textures going to be 512x512 and high quality. Same with face etc. Models will be reworked and fixed a bit. We also make some map changes and split deepblue etc into multiple maps because too big maps bigger than 2kx2k are not that good for a game server. Starting with icicle, then shaitan & argent city. After main maps are done, other maps will be worked on. Work has just began because we needed lots of preparations first. This weekend, Im gonna start the coding like camera etc while other keep on creating the world. This picture you see icicle (part 1). Will be split into 2 maps.
  9. 1 point
    Hello, @FapFap! Looks like your website is unable to connect to SMTP server which is specified in config file
  10. 1 point
    https://youtu.be/e8CLsYzE5wk
  11. 1 point
    check ur cfgs also and and rename DB_NAMEs on cfgs ex: AccountServer.cfg db = AccountServer
  12. 1 point
    re-name ur DBs to AccountServer & GameDB until you make changes to Exes to use diff db names
  13. 1 point
    use password 123456789 on SQL and go to Login>sa and add permissions to AccountServer/GameDB then try again, also copy ur SQL Instance name on SQL and paste at db_ip on cfg.. if it isn't same
  14. 1 point
    Yes, this is necessary. GameServer will close without DB user and password in .cfg
  15. 1 point
  16. 1 point
    Конкретно - jmp и movzx только вот вопрос - я ж ее из 1.39 мэйловского клиента брал, инс то там откуда?
  17. 1 point
    Another one,sowwi Jap jàjàjà:
  18. 1 point
    searching for porns and i found this awesome forum
  19. 1 point
    MD, + очень часто посещал старый форум до обеднения в served**
  20. 1 point
  21. 1 point
  22. 1 point
  23. 1 point
    http://forum.maindev.ru/threads/novyj-forum.21434/
  24. 1 point
  25. 1 point
×