• 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

@Printer , Very nice release! Been checking it out for a while and looking around trying some quests, the Green Djinn Quest had a couple issues throughout the whole thing with the NPCs but they were easy fixes. However, I recently ran into a bug I´ve been having a bit of trouble fixing. It seems that when I use magic shield (utamo vita) and I get hit, I loose whatever the hit is in mana and then twice in hitpoints at the same time. I´m going to take a quick look in the scripts and a bit in the source coding but I´ve got to say I don´t have an idea of where to start to get around to fixing this one.

(PD: If anyone else is having trouble with the Green Djinn Quest and wants the NPCs I´m using feel free to PM me.)
 
@Printer , Very nice release! Been checking it out for a while and looking around trying some quests, the Green Djinn Quest had a couple issues throughout the whole thing with the NPCs but they were easy fixes. However, I recently ran into a bug I´ve been having a bit of trouble fixing. It seems that when I use magic shield (utamo vita) and I get hit, I loose whatever the hit is in mana and then twice in hitpoints at the same time. I´m going to take a quick look in the scripts and a bit in the source coding but I´ve got to say I don´t have an idea of where to start to get around to fixing this one.

(PD: If anyone else is having trouble with the Green Djinn Quest and wants the NPCs I´m using feel free to PM me.)
maybe it was tfs bug, have you tried with latest tfs from today?
 
Apologize for double post, I couldn´t find the EDIT option anyways, I just checked the updated log on the TFS distro and it seems like it should work now @marksamman fixed the line in game.cpp that was generating the issue! Thank you!
 
@Printer , Very nice release! Been checking it out for a while and looking around trying some quests, the Green Djinn Quest had a couple issues throughout the whole thing with the NPCs but they were easy fixes. However, I recently ran into a bug I´ve been having a bit of trouble fixing. It seems that when I use magic shield (utamo vita) and I get hit, I loose whatever the hit is in mana and then twice in hitpoints at the same time. I´m going to take a quick look in the scripts and a bit in the source coding but I´ve got to say I don´t have an idea of where to start to get around to fixing this one.

(PD: If anyone else is having trouble with the Green Djinn Quest and wants the NPCs I´m using feel free to PM me.)
That would be me zleck :)
I am in GREAT need of those npc files you have. i remember them beeing bugged in all released datapacks a while ago.
I used to have a fix for them aswell, some messing with the code, but i cant remember what i had done to make them work again, so if you would be so kind to share,
Id be really happy.

As for the mana/Hp bug, Yes it was tfs related, the 9 july version did that. i got rid of it by recompiling to the msot recent version...


Regartz, Rico!
 
@Printer , Very nice release! Been checking it out for a while and looking around trying some quests, the Green Djinn Quest had a couple issues throughout the whole thing with the NPCs but they were easy fixes. However, I recently ran into a bug I´ve been having a bit of trouble fixing. It seems that when I use magic shield (utamo vita) and I get hit, I loose whatever the hit is in mana and then twice in hitpoints at the same time. I´m going to take a quick look in the scripts and a bit in the source coding but I´ve got to say I don´t have an idea of where to start to get around to fixing this one.

(PD: If anyone else is having trouble with the Green Djinn Quest and wants the NPCs I´m using feel free to PM me.)

Why not send a pull request to the git project with the fixed NPC's?
 
Hard to say but there is inssue with The Oracle in Rookgaard. One try talk with Oracle bug all NPCs till relogin character. Any ideas?
 
Just downloaded, compiled and ran. The only problem I have it hat I can't use god commands even if I have god flag (3 access). Any solution?
 
Hard to say but there is inssue with The Oracle in Rookgaard. One try talk with Oracle bug all NPCs till relogin character. Any ideas?
I have not reached so far with adding on the rook. I'm still on the tutorial island which starts being tedious... But i can fix The Oracle before hand.
Just downloaded, compiled and ran. The only problem I have it hat I can't use god commands even if I have god flag (3 access). Any solution?
Make sure on account type is set 5.

@Update
Rework The Oracle
https://github.com/PrinterLUA/FORGOTTENSERVER-ORTS/commit/9b11a3486d38da1e891d1ee54b1e3b12808ac4e0
 
Last edited:
How is the progression? Is there still buggs and things that doesn't really work, big or small ones?
 
How is the progression? Is there still buggs and things that doesn't really work, big or small ones?
If you see a bug post it then.
As you see fixes occur everyday:
Code:
https://github.com/PrinterLUA/FORGOTTENSERVER-ORTS/commits/master
 
This may be a little off-topic but anyways,

If i encounter a bug and know the sollution, and i want to create a pull request,
does this request need to be aproved? because the fix i aplied may work, but im not
sure if the code is optimal.

regartz, rico
 
This may be a little off-topic but anyways,

If i encounter a bug and know the sollution, and i want to create a pull request,
does this request need to be aproved? because the fix i aplied may work, but im not
sure if the code is optimal.

regartz, rico
The pull request need to be accepted before getting merged to main branch. Ofcourse we will review it and give feedback.
 
Why not send a pull request to the git project with the fixed NPC's?

The reason I didn't submit a pull request is because I just fixed them really quickly for my cousin and I didn't use optimal coding, so I imagine they wouldn't want them! Anyways for anyone that wants them here is the ones I changed to get it working!
@ricotjeh @SpoYeR

(I don't remember what else I changed, I have it fully working know but as far as I can remember this is what I changed, if there is anything else that isn't working let me know and I will posted the fixed script)

Code for Alesar is on a seperate post because of character limitation!

Code for Shauna
Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)            npcHandler:onCreatureAppear(cid)            end
function onCreatureDisappear(cid)        npcHandler:onCreatureDisappear(cid)            end
function onCreatureSay(cid, type, msg)        npcHandler:onCreatureSay(cid, type, msg)        end
function onThink()                npcHandler:onThink()                    end

local function creatureSayCallback(cid, type, msg)
    local player = Player(cid)
    if(not npcHandler:isFocused(cid)) then
        return false
    end

    -- Mission 1 - The Supply Thief
    if(msgcontains(msg, "job")) then
        if player:getStorageValue(GreenDjinn.MissionStart + 1) == 1 then
            npcHandler:say("What do you think? I am the sheriff of Carlin.", cid)
            npcHandler.topic[cid] = 1
        end
    elseif(msgcontains(msg, "water pipe")) then
        if(npcHandler.topic[cid] == 1) then
            npcHandler:say({"Oh, there's a waterpipe in one of my cells? ...", "I guess my last {prisoner} forgot it there."}, cid, 0, 1, 2500)
            npcHandler.topic[cid] = 2
        end
    elseif(msgcontains(msg, "prisoner")) then
        if(npcHandler.topic[cid] == 2) then
            npcHandler:say({"My last prisoner? Hmm. ...", "I think he was some guy from Darama. Can't remember his name. ...", "He was here just for one night, because he got drunk and annoyed our citizens. ...", "Obviously he wasn't pleased with this place, because he headed for Thais the next day. ...", "Something tells me that he won't stay out of trouble for too long."}, cid, 0, 1, 3500)
            player:setStorageValue(GreenDjinn.MissionStart + 1, 2)
            npcHandler.topic[cid] = 0
        end
    end
    -- Mission 1 - The Supply Thief
    return true
end

keywordHandler:addKeyword({'news'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "No news are good news."})
keywordHandler:addKeyword({'queen'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "HAIL TO QUEEN ELOISE!"})
keywordHandler:addKeyword({'leader'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "HAIL TO QUEEN ELOISE!"})
keywordHandler:addKeyword({'how are you?'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Just fine."})
keywordHandler:addKeyword({'sell'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Would you like to buy the general key to the town?"})
keywordHandler:addKeyword({'yes'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Yeah, I bet you'd like to do that! HO, HO, HO!"})
keywordHandler:addKeyword({'army'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "If they make trouble, I'll put them behind bars like all others."})
keywordHandler:addKeyword({'guard'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "If they make trouble, I'll put them behind bars like all others."})
keywordHandler:addKeyword({'general'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "The Bonecrusher family is ideally suited for military jobs."})
keywordHandler:addKeyword({'bonecrusher'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "The Bonecrusher family is ideally suited for military jobs."})
keywordHandler:addKeyword({'enemies'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "If you have a crime to report and clues, then do it, but don't waste my time."})
keywordHandler:addKeyword({'enemy'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "If you have a crime to report and clues, then do it, but don't waste my time."})
keywordHandler:addKeyword({'criminal'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "If you have a crime to report and clues, then do it, but don't waste my time."})
keywordHandler:addKeyword({'murderer'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "If you have a crime to report and clues, then do it, but don't waste my time."})
keywordHandler:addKeyword({'castle'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "The castle is one of the safest places in Carlin."})
keywordHandler:addKeyword({'subject'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Our people are fine and peaceful."})
keywordHandler:addKeyword({'tbi'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "I bet they spy on us... not my business, however."})
keywordHandler:addKeyword({'todd'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "I scared this bigmouth so much that he left the town by night. HO, HO, HO!"})
keywordHandler:addKeyword({'city'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "The city is is a peaceful place, and it's up to me to keep it this way."})
keywordHandler:addKeyword({'hain'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "He is the guy responsible to keep the sewers working. Someone has to do such kind of jobs. I can't handle all the garbage of the city myself."})
keywordHandler:addKeyword({'rowenna'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Rowenna is one of our local smiths. When you look for weapons, look for Rowenna."})
keywordHandler:addKeyword({'weapon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Rowenna is one of our local smiths. When you look for weapons, look for Rowenna."})
keywordHandler:addKeyword({'cornelia'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Cornelia is one of our local smiths. When you look for armor, look for Cornelia."})
keywordHandler:addKeyword({'armor'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Cornelia is one of our local smiths. When you look for armor, look for Cornelia."})
keywordHandler:addKeyword({'legola'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "She has the sharpest eye in the region, I'd say."})
keywordHandler:addKeyword({'padreia'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Her peacefulness is sometimes near stupidity."})
keywordHandler:addKeyword({'god'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "I worship Banor of course."})
keywordHandler:addKeyword({'banor'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "For me, he's the god of justice."})
keywordHandler:addKeyword({'zathroth'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "His cult is forbidden in our town."})
keywordHandler:addKeyword({'brog'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Wouldn't wonder if some males worship him secretly. HO, HO, HO!"})
keywordHandler:addKeyword({'monster'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "I deal more with the human mosters, you know? HO, HO, HO!"})
keywordHandler:addKeyword({'excalibug'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Would certainly make a good butterknife. HO, HO, HO!"})
keywordHandler:addKeyword({'rebellion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "The only thing that rebels here now and then is the stomach of a male after trying to make illegal alcohol. HO, HO, HO!"})
keywordHandler:addKeyword({'alcohol'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "For obvious reasons it's forbidden in our city."})

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:setMessage(MESSAGE_GREET, "Howdy, |PLAYERNAME|!")
npcHandler:setMessage(MESSAGE_FAREWELL, "LONG LIVE THE QUEEN!")
npcHandler:setMessage(MESSAGE_WALKAWAY, "LONG LIVE THE QUEEN!")
npcHandler:addModule(FocusModule:new())
 
Code for Alesar:
Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)            npcHandler:onCreatureAppear(cid)            end
function onCreatureDisappear(cid)        npcHandler:onCreatureDisappear(cid)            end
function onCreatureSay(cid, type, msg)        npcHandler:onCreatureSay(cid, type, msg)        end
function onThink()                npcHandler:onThink()                    end

local function getTable()
local list = {
    {id = 2532,        buy = 5000,        sell = 900,        name='Ancient Shield'},
    {id = 2489,        buy = 1500,        sell = 400,        name='Dark Armor'},
    {id = 2490,        buy = 1000,        sell = 250,        name='Dark Helmet'},
    {id = 2396,        buy = 5000,        sell = 0,        name='Ice Rapier'},
    {id = 2409,        buy = 6000,        sell = 900,        name='Serpent Sword'},
    {id = 2529,        buy = 0,        sell = 800,        name='Black Shield'},
    {id = 7428,        buy = 0,        sell = 10000,    name='Bonebreaker'},
    {id = 2434,        buy = 0,        sell = 2000,    name='Dragon Hammer'},
    {id = 7419,        buy = 0,        sell = 15000,    name='Dreaded Cleaver'},
    {id = 7860,        buy = 0,        sell = 2000,    name='Earth Knight Axe'},
    {id = 7875,        buy = 0,        sell = 2000,    name='Energy Knight Axe'},
    {id = 7750,        buy = 0,        sell = 2000,    name='Fiery Knight Axe'},
    {id = 2393,        buy = 0,        sell = 17000,    name='Giant Sword'},
    {id = 7407,        buy = 0,        sell = 8000,    name='Haunted Blade'},
    {id = 7769,        buy = 0,        sell = 2000,    name='Icy Knight Axe'},
    {id = 2476,        buy = 0,        sell = 5000,    name='Knight Armor'},
    {id = 2430,        buy = 0,        sell = 2000,    name='Knight Axe'},
    {id = 2477,        buy = 0,        sell = 5000,    name='Knight Legs'},
    {id = 2663,        buy = 0,        sell = 150,        name='Mystic Turban'},
    {id = 7421,        buy = 0,        sell = 22000,    name='Onyx Flail'},
    {id = 7411,        buy = 0,        sell = 20000,    name='Ornamented Axe'},
    {id = 2411,        buy = 0,        sell = 50,        name='Poison Dagger'},
    {id = 2436,        buy = 0,        sell = 6000,    name='Skull Staff'},
    {id = 2479,        buy = 0,        sell = 500,        name='Strange Helmet'},
    {id = 7413,        buy = 0,        sell = 4000,    name='Titan Axe'},
    {id = 2528,        buy = 0,        sell = 8000,    name='Tower Shield'},
    {id = 2534,        buy = 0,        sell = 15000,    name='Vampire Shield'},
    {id = 2475,        buy = 0,        sell = 5000,    name='Warrior Helmet'}
}
return list
end

local function creatureSayCallback(cid, type, msg)
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local player = Player(cid)
    -- GREET
    if(msg == "DJANNI'HAH" or (getPlayerStorageValue(cid,GreenDjinn.MissionEnd) >= 3 and msg == "hi")) then
        if(player:getStorageValue(Factions) > 0) then
            npcHandler:addFocus(cid)
            if(player:getStorageValue(BlueDjinn.MissionStart) < 1 or not BlueOrGreen) then
                npcHandler:say("What do you want from me, " .. getCreatureName(cid) .."?", cid)
                npcHandler:addFocus(cid)
            end
        end
    end
    -- GREET
    if(not npcHandler:isFocused(cid)) then
        return false
    end

    -- Mission 2 - The Tear of Daraman
    if(msgcontains(msg, "mission")) then
        if(player:getStorageValue(GreenDjinn.MissionStart+1) == 4 and player:getStorageValue(GreenDjinn.MissionStart+2) < 1) then
            npcHandler:say({"So Baa'leal thinks you are up to do a mission for us? ...", "I think he is getting old, entrusting human scum such as you are with an important mission like that. ...", "Personally, I don't understand why you haven't been slaughtered right at the gates. ...", "Anyway. Are you prepared to embark on a dangerous mission for us?"}, cid, 0, 1, 3500)
            npcHandler.topic[cid] = 1
        elseif(player:getStorageValue(GreenDjinn.MissionStart+2) == 2) then
            npcHandler:say("Did you find the tear of Daraman?", cid)
            npcHandler.topic[cid] = 2
        end
    -- Mission 2 - The Tear of Daraman
    elseif(msgcontains(msg, "yes")) then
        if(npcHandler.topic[cid] == 1) then
            npcHandler:say({"All right then, human. Have you ever heard of the {'Tears of Daraman'}? ...", "They are precious gemstones made of some unknown blue mineral and possess enormous magical power. ...", "If you want to learn more about these gemstones don't forget to visit our library. ...", "Anyway, one of them is enough to create thousands of our mighty djinn blades. ...", "Unfortunately my last gemstone broke and therefore I'm not able to create new blades anymore. ...", "To my knowledge there is only one place where you can find these gemstones - I know for a fact that the Marid have at least one of them. ...", "Well... to cut a long story short, your mission is to sneak into Ashta'daramai and to steal it. ...", "Needless to say, the Marid won't be too eager to part with it. Try not to get killed until you have delivered the stone to me."}, cid, 0, 1, 4500)
            npcHandler.topic[cid] = 0
            player:setStorageValue(GreenDjinn.MissionStart+2, 1)
        elseif(npcHandler.topic[cid] == 2) then
            if player:getItemCount(2346) > 0 then
                doPlayerRemoveItem(cid, 2346, 1)
                npcHandler:say({"So you have made it? You have really managed to steal a Tear of Daraman? ...", "Amazing how you humans are just impossible to get rid of. Incidentally, you have this character trait in common with many insects and with other vermin. ...", "Nevermind. I hate to say it, but it you have done us a favour, human. That gemstone will serve us well. ...", "Baa'leal, wants you to talk to Malor concerning some new mission. ...", "Looks like you have managed to extended your life expectancy - for just a bit longer."}, cid, 0, 1, 4000)
                npcHandler.topic[cid] = 0
                player:setStorageValue(GreenDjinn.MissionStart+2, 3)
                else
                npcHandler:say("You don't have the tear of daraman!", cid)
            end
        end
    end
    if (msgcontains(msg, "bye") or msgcontains(msg, "farewell")) then
        npcHandler:say("Finally.", cid)
        npcHandler.topic[cid] = 0
        npcHandler:releaseFocus(cid)
    end
    return true
end

local function onTradeRequest(cid)
    TradeRequest(cid, npcHandler, getTable(), GreenDjinn, 4)
end
npcHandler:setCallback(CALLBACK_ONTRADEREQUEST, onTradeRequest)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
 
Server is crashing for me every 10 minutes. I have been running for about a month non stop perfectly fine. Can't run debug.exe to get crash log. Need help please.
 
This is a long list of errors :)

- Some mounts can't be tamed
- Dracoyle Statue miss function
- claw of the noxious spawn no function in game

-Ongulf first mission in The New Fronter Quest Bug, you say to npc s hi/mission and nothing happend.
-Inquisition Quest bug Miles, The Guard do not say anymore whe you say "foresight of authorities"
-Orockle Npc fail function.

-NPC Melchior is bug, do not respond anything when you say "Word of Meeting" Npc for Djinn War Quest.
-Rashid quest BUG
-Mission 8 De In Service Of Yalahar is bug the door do not open the mechanism, and the final door do not open

-The Npc Shauna for Djinn quest (Efreet Faction)do not respond me when i say "Water Pipe"
-Banuta Quest the barrel doors not open
-El Npc Telas, Edron not buy Battle Stonesy and another items.
 
Back
Top