• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[10.77][TFS 1.2] ORTS, a real map project

Should release your quest skip code ;)

Nah it's still not. at this point i only added quests that give new area access or usage to goto new areas. It's bassicly a shortcut npc for players who win events often.
 
Nah it's still not. at this point i only added quests that give new area access or usage to goto new areas. It's bassicly a shortcut npc for players who win events often.
Its not a bad idea really i might start making one with modal windows.. did you just make it so it gives all the storages?
 
Its not a bad idea really i might start making one with modal windows.. did you just make it so it gives all the storages?
-Yes :0 dont forget to include outfit system. and some quests like yalahar give you different outfitsa depending on choises you made. I've added those to :).

This data pack is actually very very good, and should be used a default package for starting new servers. i daily maintain my server with ORTS updates and fixes. Besides TFS provides more potions in shorter and faster coding for example my daily Task Npc :)

e150539079.jpg

5a66c2bd97.jpg

ad411586db.jpg
 
-Yes :0 dont forget to include outfit system. and some quests like yalahar give you different outfitsa depending on choises you made. I've added those to :).

This data pack is actually very very good, and should be used a default package for starting new servers. i daily maintain my server with ORTS updates and fixes. Besides TFS provides more potions in shorter and faster coding for example my daily Task Npc :)

e150539079.jpg

5a66c2bd97.jpg

ad411586db.jpg
You should just release it haha looks really good man! good work!
 
You should just release it haha looks really good man! good work!

i'm actually going to keep it privet since it's one of the unique features i have :p i have more systems like marriage system that gives hp/mana regain + hearth effect if marriage couple are both in screen :) and many more :p
 
i'm actually going to keep it privet since it's one of the unique features i have :p i have more systems like marriage system that gives hp/mana regain + hearth effect if marriage couple are both in screen :) and many more :p
Everyone keeps there features private hence the decline of OTland just saying ;) but serious man good job. I will probs make one.
 
Everyone keeps there features private hence the decline of OTland just saying ;) but serious man good job. I will probs make one.

It's not about that actually. I woulden't meaning hel you build one. Anywais tibia 10.81 is in beta and i've alreadfy update my server and flash client on fortissimum.net open tibia beta test comming soon.
new items (not all)
1df00444d3.jpg


3 new monsters. ignore that i'm "mounted" on them i added them as mount just for a fast display
de3646156e.jpg

9d660b913c.jpg

48c436dfb3.jpg
 
I would simply like to know how you add the storage for the quests completed etc.
 
Enjoy :)

talkactions\data\scripts\gainaccess.lua
Code:
function onSay(player, words, param)

    -- local player = Player(cid) use this if you use function onSay(cid, words, param)

    local theNewFrontierPrice = 30000
    local wrathOfTheEmperorPrice = 30000
    local childrenOfRevolutionPrice = 30000

    -- THE NEW FRONTIER
    if param == 'The New Frontier' then
        if player:getStorageValue(Storage.TheNewFrontier.Questline) == 28 then
            doPlayerSendTextMessage(player,MESSAGE_EVENT_ADVANCE,'You have already done this quest.') -- White popup message
        elseif doPlayerRemoveMoney(player, theNewFrontierPrice) == TRUE then
            doSendMagicEffect(getPlayerPosition(player), CONST_ME_HOLYDAMAGE) -- Animation on player
            doPlayerSendTextMessage(player,MESSAGE_EVENT_ADVANCE,'Grats, you have completed TheNewFrontier, and gained all access.') -- White popup message
            player:setStorageValue(Storage.TheNewFrontier.Questline, 28) -- Set questline
            player:setStorageValue(Storage.TheNewFrontier.Mission01, 3); -- Mission01
            player:setStorageValue(Storage.TheNewFrontier.Mission02, 6); -- Mission02
            player:setStorageValue(Storage.TheNewFrontier.Mission03, 3); -- Mission03
            player:setStorageValue(Storage.TheNewFrontier.Mission04, 2); -- Mission04
            player:setStorageValue(Storage.TheNewFrontier.Mission05, 7); -- Mission05
            player:setStorageValue(Storage.TheNewFrontier.Mission06, 3); -- Mission06
            player:setStorageValue(Storage.TheNewFrontier.Mission07, 3); -- Mission07
            player:setStorageValue(Storage.TheNewFrontier.Mission08, 2); -- Mission08
            player:setStorageValue(Storage.TheNewFrontier.Mission09, 3); -- Mission09
            player:setStorageValue(Storage.TheNewFrontier.Mission10, 1); -- Mission10
            player:setStorageValue(Storage.TheNewFrontier.TomeofKnowledge, 13); -- TomeofKnowledge
            player:setStorageValue(Storage.TheNewFrontier.Beaver1, 1); -- Beaver1
            player:setStorageValue(Storage.TheNewFrontier.Beaver2, 1); -- Beaver2
            player:setStorageValue(Storage.TheNewFrontier.Beaver3, 1); -- Beaver3
            player:setStorageValue(Storage.TheNewFrontier.BribeKing, 1); -- BribeKing
            player:setStorageValue(Storage.TheNewFrontier.BribeLeeland, 1); -- BribeLeeland
            player:setStorageValue(Storage.TheNewFrontier.BribeExplorerSociety, 1); -- BribeExplorerSociety
            player:setStorageValue(Storage.TheNewFrontier.BribeWydrin, 1); -- BribeWydrin
            player:setStorageValue(Storage.TheNewFrontier.BribeTelas, 1); -- BribeTelas
            player:setStorageValue(Storage.TheNewFrontier.BribeHumgolf, 1); -- BribeHumgolf
        else
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You need 30,000gp to skip this quest.")
        end
    end

    -- WRATH OF THE EMPEROR
    if param == 'Wrath Of The Emperor' then
        if player:getStorageValue(Storage.WrathoftheEmperor.Questline) == 33 then
            doPlayerSendTextMessage(player,MESSAGE_EVENT_ADVANCE,'You have already done this quest.') -- White popup message
        elseif doPlayerRemoveMoney(player, wrathOfTheEmperorPrice) == TRUE then
            doSendMagicEffect(getPlayerPosition(player), CONST_ME_HOLYDAMAGE) -- Animation on player
            doPlayerSendTextMessage(player,MESSAGE_EVENT_ADVANCE,'Grats, you have completed WrathOfTheEmperor, and gained all access.') -- White popup message
            player:setStorageValue(Storage.WrathoftheEmperor.Questline, 33)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission01, 3)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission02, 3)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission03, 3)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission04, 3)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission05, 3)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission06, 4)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission07, 6)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission08, 2)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission09, 2)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission10, 6)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission11, 2)
            player:setStorageValue(Storage.WrathoftheEmperor.Mission12, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.CrateStatus, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.GuardcaughtYou, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.ZumtahStatus, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.PrisonReleaseStatus, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.GhostOfAPriest01, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.GhostOfAPriest02, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.GhostOfAPriest03, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.InterdimensionalPotion, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.BossStatus, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.platinumReward, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.backpackReward, 1)
            player:setStorageValue(Storage.WrathoftheEmperor.mainReward, 1)
        else
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You need 30,000gp to skip this quest.")
        end
    end

    -- CHILDREN OF REVOLUTION
    if param == 'Children Of Revolution' then
        if player:getStorageValue(Storage.ChildrenoftheRevolution.Questline) == 21 then
            doPlayerSendTextMessage(player,MESSAGE_EVENT_ADVANCE,'You have already done this quest.') -- White popup message
        elseif doPlayerRemoveMoney(player, childrenOfRevolutionPrice) == TRUE then
            doSendMagicEffect(getPlayerPosition(player), CONST_ME_HOLYDAMAGE) -- Animation on player
            doPlayerSendTextMessage(player,MESSAGE_EVENT_ADVANCE,'Grats, you have completed ChildrenOfRevolution, and gained all access.') -- White popup message
            player:setStorageValue(Storage.ChildrenoftheRevolution.Questline, 21)
            player:setStorageValue(Storage.ChildrenoftheRevolution.Mission01, 3)
            player:setStorageValue(Storage.ChildrenoftheRevolution.Mission02, 5)
            player:setStorageValue(Storage.ChildrenoftheRevolution.Mission03, 3)
            player:setStorageValue(Storage.ChildrenoftheRevolution.Mission04, 6)
            player:setStorageValue(Storage.ChildrenoftheRevolution.Mission05, 3)
            player:setStorageValue(Storage.ChildrenoftheRevolution.SpyBuilding01, 1)
            player:setStorageValue(Storage.ChildrenoftheRevolution.SpyBuilding02, 1)
            player:setStorageValue(Storage.ChildrenoftheRevolution.SpyBuilding03, 1)
            player:setStorageValue(Storage.ChildrenoftheRevolution.StrangeSymbols, 3)
        else
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You need 30,000gp to skip this quest.")       
        end
    end
end

Remember to put this in talkactions.xml

Code:
<talkaction words="!completequest" script="gainaccess.lua"/>

:)
 
Lopez, those are Line Feed markers, which are being inserted automatically by your text editor. You need to disable "Insert Line Feed" or something like this in your editor's preferences / options.
 
Lopez, those are Line Feed markers, which are being inserted automatically by your text editor. You need to disable "Insert Line Feed" or something like this in your editor's preferences / options.
thanks for your answer wikidmj, you were right, but it was not working well pluguin and remove not I get those letters, but also thanks again for pointing more or less where the error was.
 
Hey thanks for the awesome server. I have Geisor set up and the server runs. Occasionally it crashes though :( I am curious.. Am I missing dlls? I only have two dlls running in server folder. Am I missing some, or is this newest server just that much streamlined that the were able to cut alot of the dlls from the previous builds out?
 
sorry for double post. When Server crashed I debugged in Microsoft Visual Studio. Sorry about the lack of proper formatting skills. I have no idea whats going on :( I just rely on people far smarter than I to help. Thanks a ton for your time. I compiled myself just fine with no errors. Now the occasional crash yields this..

The 'Break'

std::string LuaScriptInterface::getErrorDesc(ErrorCode_t code)
{
switch (code) {
case LUA_ERROR_PLAYER_NOT_FOUND: return "Player not found";
case LUA_ERROR_CREATURE_NOT_FOUND: return "Creature not found";
case LUA_ERROR_ITEM_NOT_FOUND: return "Item not found";
case LUA_ERROR_THING_NOT_FOUND: return "Thing not found";
case LUA_ERROR_TILE_NOT_FOUND: return "Tile not found";
case LUA_ERROR_HOUSE_NOT_FOUND: return "House not found";
case LUA_ERROR_COMBAT_NOT_FOUND: return "Combat not found";
case LUA_ERROR_CONDITION_NOT_FOUND: return "Condition not found";
case LUA_ERROR_AREA_NOT_FOUND: return "Area not found";
case LUA_ERROR_CONTAINER_NOT_FOUND: return "Container not found";
case LUA_ERROR_VARIANT_NOT_FOUND: return "Variant not found";
case LUA_ERROR_VARIANT_UNKNOWN: return "Unknown variant type";
case LUA_ERROR_SPELL_NOT_FOUND: return "Spell not found";
default: return "Bad error code";
}
}

The Debug Output:

'theforgottenserver.exe' (Win32): Loaded 'C:\Windows\System32\cryptbase.dll'. Symbols loaded.
The thread 0xe88 has exited with code 0 (0x0).
The thread 0x870 has exited with code 0 (0x0).
The thread 0x8e8 has exited with code 0 (0x0).
Unhandled exception at 0x000007FEFD3FB3DD (KernelBase.dll) in theforgottenserver.exe: 0xE24C4A04.
 
Guys, I couldn't figure out the rateSpawn option in config.lua...
Is it working?
The higher the number the faster monsters respawn?

Thanks.
 
If you are having trouble with windows 7 compiled 64x with random crashes every 20mins or so.. Try to compile in 32bit instead and make sure to use the 32bit dlls. I did this and now my server is running very nicely.
 
Back
Top