Ir para conteúdo

Script


luishgazarolla

Posts Recomendados

Ola boa tarde eu estou tentando adicionar algumas linhas nesse script, mas n esta dando muito certo.

 

Logo abaixo o script

 

local config = {
maxLevel = getConfigInfo('maximumDoorLevel')
}

local increasingItems = {[416] = 417, [426] = 425, [446] = 447, [3216] = 3217, [3202] = 3215, [11062] = 11063}
local decreasingItems = {[417] = 416, [425] = 426, [447] = 446, [3217] = 3216, [3215] = 3202, [11063] = 11062}
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])
    doCreateItem(1548,1, getPlayerPosition(cid)) 
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)
	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

if(item.actionid >= 1000 and item.actionid <= config.maxLevel) then
	if(getPlayerLevel(cid) < item.actionid - 1000) then
		pushBack(cid, position, fromPosition, true)
	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
       doRemoveItem(1548)
	doTransformItem(item.uid, decreasingItems[item.itemid])
	return true
end

return false
end

 

eu adicionei as seguintes linas.

 

Essa quando o player pisa.

doCreateItem(1548,1, getPlayerPosition(cid))

 

Essa quando o player sai do piso.

doRemoveItem(1548)

,

 

Meu problema esta na parte de remover o item, ele n remove ou quando ele remove ele retira tambem o item de baixo, e eu queria q ele removece apenas o item 1548, se alguem puder me ajudar fico grato.

Link para o comentário
Compartilhar em outros sites

Olá, você disse que estava adicionando a linha (doRemoveItem(xxxx)), não lembro do id, tenta fazer assim olha:

doRemoveItem(XXXX, 1)

é que essa função requer 2 parametros, o UID, e a QT,(quantidade)

tenta la

Link para o comentário
Compartilhar em outros sites

tenta isso mano

function onStepOut(cid, item, position, fromPosition)
   	if(not decreasingItems[item.itemid]) then
           	return false
   	end

   	if(not isPlayerGhost(cid)) then
	i = getThingFromPos({x=fromPosition.x,y=fromPosition.y,z=fromPosition.z,stackpos=1})
   	doRemoveItem(i.uid, 1)
           	doTransformItem(item.uid, decreasingItems[item.itemid])
           	return true
   	end

   	return false
end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...