• 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!

Need Help :((

Keshoo

Newer Rich
Joined
Feb 23, 2010
Messages
166
Reaction score
5
in my ot when i eat food it say you cant use it its not work i dont know why? lol (thats first)


in my ot when i use mana its not say how many i have of mana//\\ example:if i have 100 great mana and use it
say you have 25 great mana lol


please anyone have idea for these problems help me Thx :$
 
Use Another Server. Easy Fix

Use another servers... that was really an answer that would be better answered by a cheese.
it's like saying "shit my tire on the car is flat.. where to change?" and you'd reply "use another car. easy fix".

@Keshoo, it's an action thing.. you need to add the id's of the food in actions.xml..
Maybe you have a file in actions/lib/??.lua, open it and see if you find anything saying food, most servers got that
 
Yh, but for the mana thing, that is in the source code.. Therefore USE ANOTHER SERVER!
S/he can still transfer all scripts/map needed etc to the same version server. Just find a working distro.
 
Yh, but for the mana thing, that is in the source code.. Therefore USE ANOTHER SERVER!
S/he can still transfer all scripts/map needed etc to the same version server. Just find a working distro.

yeah, but problems are never solved by avoid them... better try to deal with it =)
I don't mean to be a jerk on you but your answer was bit of a hilarious to me xD
so don't feel offended =)
 
Na i don't, and i know. But Instead of spending ages going through the sources, he can just find the exact same distro, e.g. there are millions of tfs 8.54 mystic spirits.

And transfer all scripts. I know not all problems are solved by avoiding them. But for instance with your previous example.

The car's tyres are flat. Getting a new car would seem irational. BUT it would make the problem disappear forever! Since you don't have that flat tyre anymore.
 
Na i don't, and i know. But Instead of spending ages going through the sources, he can just find the exact same distro, e.g. there are millions of tfs 8.54 mystic spirits.

And transfer all scripts. I know not all problems are solved by avoiding them. But for instance with your previous example.

The car's tyres are flat. Getting a new car would seem irational. BUT it would make the problem disappear forever! Since you don't have that flat tyre anymore.

seriously, I've seen people would buy a new car for any reason XD
a dad's pal of mine sold his volvo because the radio didn't work... Duuuh buy new and change? XD
 
xD lol, yh well if you have the money, why nawt >=d

and on topic, If he wants to fix the mana/hotkey bug then its in the sources, so either cykotitan can do his magic and fix it? or just find the same distro and version but not the one where you got last time.
 
game.cpp
Repleace this
LUA:
void Game::showHotkeyUseMessage(Player* player, Item* item)
 {
        int32_t subType = -1;
        if(item->hasSubType() && !item->hasCharges())
                subType = item->getSubType();
 
        const ItemType& it = Item::items[item->getID()];
        uint32_t count = player->__getItemTypeCount(item->getID(), subType, false);
 
        char buffer[40 + it.name.size()];
        if(count == 1)
                sprintf(buffer, "Using the last %s...", it.name.c_str());
        else
                sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str());
 
        player->sendTextMessage(MSG_INFO_DESCR, buffer);
 }

for this
LUA:
void Game::showHotkeyUseMessage(Player* player, Item* item)
{
    const ItemType& it = Item::items[item->getID()];
    uint32_t count = player->__getItemTypeCount(item->getID(), -1);

    char buffer[40 + it.name.size()];
    if(count == 1)
        sprintf(buffer, "Using the last %s...", it.name.c_str());
    else
        sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str());

    player->sendTextMessage(MSG_INFO_DESCR, buffer);
}
 
data/actions/liquids
open your script potions.lua delete everything and paste this
LUA:
local config = {
	removeOnUse = "yes",
	usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
	splashable = "no",
	range = -1,
	realAnimation = "no", -- make text effect visible only for players in range 1x1
	multiplier = {
		health = 1.0,
		mana = 1.0
	}
}

config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)

local POTIONS = {
	[8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
	[7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
	[7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
	[7591] = {empty = 7635, splash = 42, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
	[8473] = {empty = 7635, splash = 42, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

	[7620] = {empty = 7636, splash = 47, mana = {70, 130}}, -- mana potion
	[7589] = {empty = 7634, splash = 47, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
	[7590] = {empty = 7635, splash = 47, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

	[8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local potion = POTIONS[item.itemid]
	if(not potion) then
		return false
	end

	if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
		if(not config.splashable) then
			return false
		end

		if(toPosition.x == CONTAINER_POSITION) then
			toPosition = getThingPosition(item.uid)
		end

		doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
		doRemoveItem(item.uid, 1)
		if(not potion.empty or config.removeOnUse) then
			return true
		end

		if(fromPosition.x ~= CONTAINER_POSITION) then
			doCreateItem(potion.empty, fromPosition)
		else
			doPlayerAddItem(cid, potion.empty, 1)
		end

		return true
	end

	if(hasCondition(cid, CONDITION_EXHAUST)) then
		doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
		return true
	end

	if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
		not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
	then
		doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
		return true
	end

	if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(itemEx.uid)) > config.range) then
		return false
	end

	local health = potion.health
	if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then
		return false
	end

	local mana = potion.mana
	if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then
		return false
	end

	doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
	if(not config.realAnimation) then
		doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
	else
		for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
			if(isPlayer(tid)) then
				doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
			end
		end
	end

	doAddCondition(cid, exhaust)
	doRemoveItem(item.uid, 1)
	if(not potion.empty or config.removeOnUse) then
		return true
	end

	if(fromPosition.x ~= CONTAINER_POSITION) then
		doCreateItem(potion.empty, fromPosition)
	else
		doPlayerAddItem(cid, potion.empty, 1)
	end

	return true
end

for food try this
data/actions/other food.lua
LUA:
local FOODS =
{
	[2362] = {8, "Crunch."},
	[2666] = {15, "Munch."},
	[2667] = {12, "Munch."},
	[2668] = {10, "Mmmm."},
	[2669] = {17, "Munch."},
	[2670] = {4, "Gulp."},
	[2671] = {30, "Chomp."},
	[2672] = {60, "Chomp."},
	[2673] = {5, "Yum."},
	[2674] = {6, "Yum."},
	[2675] = {13, "Yum."},
	[2676] = {8, "Yum."},
	[2677] = {1, "Yum."},
	[2678] = {18, "Slurp."},
	[2679] = {1, "Yum."},
	[2680] = {2, "Yum."},
	[2681] = {9, "Yum."},
	[2682] = {20, "Yum."},
	[2683] = {17, "Munch."},
	[2684] = {8, "Crunch."},
	[2685] = {6, "Munch."},
	[2686] = {9, "Crunch."},
	[2687] = {2, "Crunch."},
	[2688] = {9, "Munch."},
	[2689] = {10, "Crunch."},
	[2690] = {3, "Crunch."},
	[2691] = {8, "Crunch."},
	[2792] = {6, "Munch."},
	[2793] = {9, "Munch."},
	[2695] = {6, "Gulp."},
	[2696] = {9, "Smack."},
	[2787] = {9, "Munch."},
	[2788] = {4, "Munch."},
	[2789] = {22, "Munch."},
	[2790] = {30, "Munch."},
	[2791] = {30, "Munch."},
	[2792] = {6, "Munch."},
	[2794] = {3, "Munch."},
	[2795] = {36, "Munch."},
	[2796] = {5, "Munch."},
	[2793] = {9, "Munch."},
	[5097] = {4, "Yum."},
	[6125] = {8, "Gulp."},
	[6278] = {10, "Mmmm."},
	[6279] = {15, "Mmmm."},
	[6393] = {12, "Mmmm."},
	[6394] = {15, "Mmmm."},
	[6501] = {20, "Mmmm."},
	[6541] = {6, "Gulp."},
	[6542] = {6, "Gulp."},
	[6543] = {6, "Gulp."},
	[6544] = {6, "Gulp."},
	[6545] = {6, "Gulp."},
	[6569] = {1, "Mmmm."},
	[6574] = {4, "Mmmm."},
	[7158] = {15, "Munch."},
	[7159] = {13, "Munch."},
	[7372] = {7, "Yum."},
	[7373] = {7, "Yum."},
	[7374] = {7, "Yum."},
	[7375] = {7, "Yum."},
	[7376] = {7, "Yum."},
	[7377] = {7, "Yum."},
	[7909] = {4, "Crunch."},
	[8838] = {7, "Gulp."},
	[8839] = {5, "Yum."},
	[8840] = {2, "Yum."},
	[8841] = {3, "Urgh."},
	[8842] = {3, "Munch."},
	[8843] = {3, "Crunch."},
	[8844] = {3, "Gulp."},
	[8845] = {2, "Munch."},
	[8847] = {11, "Yum."}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local food = FOODS[item.itemid]
	if(not food) then
		return false
	end

	if((getPlayerFood(cid) + food[1]) >= 400) then
		doPlayerSendCancel(cid, "You are full.")
		return true
	end

	doPlayerFeed(cid, food[1] * 4)
	doCreatureSay(cid, food[2], TALKTYPE_ORANGE_1)
	doRemoveItem(item.uid, 1)
	return true
end
 
game.cpp
Repleace this
LUA:
void Game::showHotkeyUseMessage(Player* player, Item* item)
 {
        int32_t subType = -1;
        if(item->hasSubType() && !item->hasCharges())
                subType = item->getSubType();
 
        const ItemType& it = Item::items[item->getID()];
        uint32_t count = player->__getItemTypeCount(item->getID(), subType, false);
 
        char buffer[40 + it.name.size()];
        if(count == 1)
                sprintf(buffer, "Using the last %s...", it.name.c_str());
        else
                sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str());
 
        player->sendTextMessage(MSG_INFO_DESCR, buffer);
 }

for this
LUA:
void Game::showHotkeyUseMessage(Player* player, Item* item)
{
    const ItemType& it = Item::items[item->getID()];
    uint32_t count = player->__getItemTypeCount(item->getID(), -1);

    char buffer[40 + it.name.size()];
    if(count == 1)
        sprintf(buffer, "Using the last %s...", it.name.c_str());
    else
        sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str());

    player->sendTextMessage(MSG_INFO_DESCR, buffer);
}



where this game.cpp
 
@up
you use windows no?
game.cpp is linux .. you no say i use" linux or windows...

your config in libs... are damage
test change your
data/libs for other ots or TFS.
 
download TS or other ,ok? now open data/ copy folder lib and paste in your ot data
note: is your decision make backup.. online change libs!
 
Back
Top