Thaian Citizen
Hexenjäger
Hello,
I am using tfs 0.3.6 - 8.6 crying damson distro..
I got following problem: When I walk on a premium tile it kicks me back, even though that player/acc has premium. I dont think the problem is within the check-for-premium lines in the code, but somewhere else in the code. I get to this assumption, because:
I get the message -> "The tile seems to be protected against unwanted intruders."
and not this one ->"You need premium account to enter this zone."
So I think that the server doesn't even get as far as checking if the player has premium or if the tile has the action id 189, instead it stops after it has checked some previous lines that denied entry.. I just can't find the misstake.
Would be nice if someone could take a look at it..
This is my tiles.lua file:
I am using tfs 0.3.6 - 8.6 crying damson distro..
I got following problem: When I walk on a premium tile it kicks me back, even though that player/acc has premium. I dont think the problem is within the check-for-premium lines in the code, but somewhere else in the code. I get to this assumption, because:
I get the message -> "The tile seems to be protected against unwanted intruders."
and not this one ->"You need premium account to enter this zone."
So I think that the server doesn't even get as far as checking if the player has premium or if the tile has the action id 189, instead it stops after it has checked some previous lines that denied entry.. I just can't find the misstake.
Would be nice if someone could take a look at it..
This is my tiles.lua file:
Code:
local config = {
maxLevel = getConfigInfo('maximumDoorLevel')
}
local increasingItems = {[416] = 417, [426] = 425, [446] = 447, [3216] = 3217, [3202] = 3215, [11059] = 11060}
local decreasingItems = {[417] = 416, [425] = 426, [447] = 446, [3217] = 3216, [3215] = 3202, [11060] = 11059}
local depots = {2589, 2590, 2591, 2592}
local checkCreature = {isPlayer, isMonster, isNpc}
local function pushBack(cid, position, fromPosition, displayMessage)
doTeleportThing(cid, fromPosition, false)
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
if(displayMessage) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The tile seems to be protected against unwanted intruders.")
end
end
function onStepIn(cid, item, position, fromPosition)
if(not increasingItems[item.itemid]) then
return false
end
if(not isPlayerGhost(cid)) then
doTransformItem(item.uid, increasingItems[item.itemid])
end
if(item.actionid >= 194 and item.actionid <= 196) then
local f = checkCreature[item.actionid - 193]
if(f(cid)) then
pushBack(cid, position, fromPosition, false)
end
return true
end
if(item.actionid >= 191 and item.actionid <= 193) then
local f = checkCreature[item.actionid - 190]
if(not f(cid)) then
pushBack(cid, position, fromPosition, false)
end
return true
end
if(not isPlayer(cid)) then
return true
end
if(item.actionid == 189 and not isPremium(cid)) then
pushBack(cid, position, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You need premium account to enter this zone.")
return true
end
local gender = item.actionid - 186
if(isInArray({PLAYERSEX_FEMALE, PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender)) then
if(gender ~= getPlayerSex(cid)) then
pushBack(cid, position, fromPosition, true)
end
return true
end
local skull = item.actionid - 180
if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then
if(skull ~= getCreatureSkullType(cid)) then
pushBack(cid, position, fromPosition, true)
end
return true
end
local group = item.actionid - 150
if(group >= 0 and group < 30) then
if(group > getPlayerGroupId(cid)) then
pushBack(cid, position, fromPosition, true)
end
return true
end
local vocation = item.actionid - 100
if(vocation >= 0 and vocation < 50) then
local playerVocationInfo = getVocationInfo(getPlayerVocation(cid))
if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then
pushBack(cid, position, fromPosition, true)
end
return true
end
local level = item.actionid - 1000
if(level >= 1 and level <= (config.maxLevel)) then
if(getPlayerLevel(cid) < level) then
pushBack(cid, position, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You need at least level " .. level .. " to enter this zone.")
end
return true
end
if(item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) <= 0) then
pushBack(cid, position, fromPosition, true)
return true
end
if(getTileInfo(position).protection) then
local depotPos, depot = getCreatureLookPosition(cid), {}
depotPos.stackpos = STACKPOS_GROUND
while(true) do
if(not getTileInfo(depotPos).depot) then
break
end
depotPos.stackpos = depotPos.stackpos + 1
depot = getThingFromPos(depotPos)
if(depot.uid == 0) then
break
end
if(isInArray(depots, depot.itemid)) then
local depotItems = getPlayerDepotItems(cid, getDepotId(depot.uid))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Your depot contains " .. depotItems .. " item" .. (depotItems > 1 and "s" or "") .. ".")
break
end
end
return true
end
return false
end
function onStepOut(cid, item, position, fromPosition)
if(not decreasingItems[item.itemid]) then
return false
end
if(not isPlayerGhost(cid)) then
doTransformItem(item.uid, decreasingItems[item.itemid])
return true
end
return false
end