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

Chris77's Scripting Services

Reward System: When I give 2 talons NPC teleport me into a choose position.
Type Of Script: NPC
Priority: High
Reason: Because I cannot open my server without this script ;)
Public
 
@Technic
Test:
Lua:
function onStepIn(cid, item, position, fromPosition)
-- Script by BomBa
if item.actionid == 5566
 if isPlayer(cid) == TRUE then
  local storageOnRemove = 449933
   setPlayerStorageValue(cid, storageOnRemove, 1)
  end
 return TRUE
-- Script by BomBa
end

if item.actionid == 6655
-- Script by BomBa
 local positions =
  {
   spikeSword = {x=100, y=10, z=1, stackpos=255},
    fieldPos = {{x=100, y=10, z=1, stackpos=1}, {x=100, y=10, z=1, stackpos=1}, {x=100, y=10, z=1, stackpos=1}, {x=100, y=10, z=1, stackpos=1}}
     }
      if isPlayer(cid) == TRUE then
       local storageOnRemove = 449933
        if getPlayerStorageValue(cid, storageOnRemove) == 1 then
         for a = 4, table.maxn(positions.fieldPos) do
         doRemoveItem(getThingfromPos(positions.fieldPos[a]).uid, 1)
        addEvent(onCreateSwordOfFury, 60000)
       setPlayerStorageValue(cid, storageOnRemove, 2)
      elseif getPlayerStorageValue(cid, storageOnRemove) == 2 then
     doPlayerSendCancel(cid, "Sorry, not possible.")
    end
   end
  end
 return TRUE
-- Script by BomBa
end

function onCreateSwordOfFury()
-- Script by BomBa
 local createAgain = FALSE
  if createAgain == TRUE then
   local positions =
    {
     spikeSword = {x=100, y=10, z=1},
      fieldPos = {{x=100, y=10, z=1}, {x=100, y=10, z=1}, {x=100, y=10, z=1}, {x=100, y=10, z=1}}
       }
        local fieldId = 1487
       doCreateItem(2383, 1, positions.spikeSword)
      for b = 4, table.maxn(positions.fieldPos) do
     doCreateItem(fieldId, 1, positions.fieldPos[b])
    end
   return TRUE
  end
 return TRUE
-- Script by BomBa
end

okay, write at the top the script is made by you, not every 5 lines.
 
Reward System: When I give 2 talons NPC teleport me into a choose position.
Type Of Script: NPC
Priority: High
Reason: Because I cannot open my server without this script ;)
Public

Ehm, im not to good at Npc's but i gave it a shot

Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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
function creatureSayCallback(cid, type, msg)
	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
	local storage = 5000 --Set a storage value
	local place = {x=1000, y=1000, z=7}
	
	if(msgcontains(msg, 'talon Tp please') or msgcontains(msg, 'talons')) then
			npcHandler:say("Do you wanna ride the Boat to the place for 2 talons?", cid)
			talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if(doPlayerRemoveItem(cid, 2151, 2) == TRUE) then
			npcHandler:say("Off you go!", cid)
			doTeleportThing(cid,place)
			talkState[talkUser] = 0
		else
			npcHandler:say("Sorry, you don\'t have enough money.", cid)
			talkState[talkUser] = 0
		end
	elseif(msgcontains(msg, 'no') and talkState[talkUser] > 0) then
		npcHandler:say("Then not.", cid)
		talkState[talkUser] = 0
	end
	return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Thanks, it works, but I need next NPC ;)

Reward System: When I give 100 talons I will swim to other islands. Hm, it's kind of quest.
Type Of Script: NPC
Priority: High
Reason: Because I cannot open my server without this script
Public
 
Wow..... I honestly hate people like you. I dont even know why i made this for you when you cant even change a Number on a script...

Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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
function creatureSayCallback(cid, type, msg)
	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
	local storage = 5000 --Set a storage value
	local place = {x=1000, y=1000, z=7}
	
	if(msgcontains(msg, 'talon Tp please') or msgcontains(msg, 'talons')) then
			npcHandler:say("Do you wanna ride the Boat to the place for 2 talons?", cid)
			talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if(doPlayerRemoveItem(cid, 2151, 100) == TRUE) then
			npcHandler:say("Off you go!", cid)
			doTeleportThing(cid,place)
			talkState[talkUser] = 0
		else
			npcHandler:say("Sorry, you don\'t have enough money.", cid)
			talkState[talkUser] = 0
		end
	elseif(msgcontains(msg, 'no') and talkState[talkUser] > 0) then
		npcHandler:say("Then not.", cid)
		talkState[talkUser] = 0
	end
	return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Type of Script:
Source / Creature Scripts

Priority:
I only need it, if you get it.

Reason of Request:
1. For my new Server.
2. I want test you.

Description:

A monster have to walk From A to B (without attacking players)

Private
 
Type of Script: Spell

Priority: medium

Reason of Request: i tried a lot to get this one woking but i cant make it work.

Description: i want a spell that does 100% damage in pvp. same damage as you hit monsters.

Public.
 
Type of Script: NPC/QUEST

Priority: high

Reason of Request: Because I need it to open my OTserv, only this quest.

Description:
-You talk to the NPC and he gives you a mission to kill 400 rats.
-Then the quest would appear in the quest log saying "You have killed 0/400 rats." Then every rat you kill, that count goes up by one, so if you killed 57 rats after you were given the mission, it would show "You have killed 57/400 rats.".
-Then after you kill 400 rats, you will go back to the NPC and he will give you a prize.
-Then you ask him for another mission and this time its a different monster or different kill count, so on so forth.

http://otland.net/f132/request-killing-name-quest-38555/
Like global tibia!

Public.
Thanks.
 
Type: Action
Priority: High
Reason: My RL rookgard
Desc: Rewrite it to work like RL Tibia key system.
Code:
local function checkStackpos(item, position)
	position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
	local thing = getThingFromPos(position)

	position.stackpos = STACKPOS_TOP_FIELD
	local field = getThingFromPos(position)

	return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0)
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getItemLevelDoor(item.itemid) > 0) then
		if(item.actionid == 189) then
			if(isPremium(cid) ~= TRUE) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return TRUE
			end

			doTransformItem(item.uid, item.itemid + 1)
			doTeleportThing(cid, toPosition, TRUE)
			return TRUE
		end

		local gender = item.actionid - 186
		if(isInArray({PLAYERSEX_FEMALE,  PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender) == TRUE) then
			local playerGender = getPlayerSex(cid)
			if(playerGender ~= gender) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return TRUE
			end

			doTransformItem(item.uid, item.itemid + 1)
			doTeleportThing(cid, toPosition, TRUE)
			return TRUE
		end

		local skull = item.actionid - 180
		if(skull >= 0 and skull < 6) then
			local playerSkull = getCreatureSkullType(cid)
			if(playerSkull ~= skull) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return TRUE
			end

			doTransformItem(item.uid, item.itemid + 1)
			doTeleportThing(cid, toPosition, TRUE)
			return TRUE
		end

		local group = item.actionid - 150
		if(group >= 0 and group < 30) then
			local playerGroup = getPlayerGroupId(cid)
			if(playerGroup < group) then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return TRUE
			end

			doTransformItem(item.uid, item.itemid + 1)
			doTeleportThing(cid, toPosition, TRUE)
			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
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
				return TRUE
			end

			doTransformItem(item.uid, item.itemid + 1)
			doTeleportThing(cid, toPosition, TRUE)
			return TRUE
		end

		if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then
			doTransformItem(item.uid, item.itemid + 1)
			doTeleportThing(cid, toPosition, TRUE)
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
		end

		return TRUE
	end

	if(isInArray(specialDoors, item.itemid) == TRUE) then
		if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then
			doTransformItem(item.uid, item.itemid + 1)
			doTeleportThing(cid, toPosition, TRUE)
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
		end

		return TRUE
	end

	if(isInArray(keys, item.itemid) == TRUE) then
		if(itemEx.actionid > 0) then
			if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then
				doTransformItem(itemEx.uid, doors[itemEx.itemid])
				return TRUE
			end

			doPlayerSendCancel(cid, "The key does not match.")
			return TRUE
		end

		return FALSE
	end

	if(isInArray(horizontalOpenDoors, item.itemid) == TRUE and checkStackpos(item, fromPosition)) then
		local newPosition = toPosition
		newPosition.y = newPosition.y + 1
		local doorPosition = fromPosition
		doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
		local doorCreature = getThingfromPos(doorPosition)
		if(doorCreature.itemid ~= 0) then
			if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
				doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
			else
				doTeleportThing(doorCreature.uid, newPosition, TRUE)
				if(isInArray(closingDoors, item.itemid) ~= TRUE) then
					doTransformItem(item.uid, item.itemid - 1)
				end
			end

			return TRUE
		end

		doTransformItem(item.uid, item.itemid - 1)
		return TRUE
	end

	if(isInArray(verticalOpenDoors, item.itemid) == TRUE and checkStackpos(item, fromPosition)) then
		local newPosition = toPosition
		newPosition.x = newPosition.x + 1
		local doorPosition = fromPosition
		doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
		local doorCreature = getThingfromPos(doorPosition)
		if(doorCreature.itemid ~= 0) then
			if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
				doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
			else
				doTeleportThing(doorCreature.uid, newPosition, TRUE)
				if(isInArray(closingDoors, item.itemid) ~= TRUE) then
					doTransformItem(item.uid, item.itemid - 1)
				end
			end

			return TRUE
		end

		doTransformItem(item.uid, item.itemid - 1)
		return TRUE
	end

	if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition)) then
		if(item.actionid == 0) then
			doTransformItem(item.uid, doors[item.itemid])
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")
		end

		return TRUE
	end

	return FALSE
end


Also i need script when i click on the floor (uni id) it gives me an item.
 
Sup guys i need to req another script =/

This time i need a infinite aol script

I made a quest but the infinite aol dont works idk what to do so i need to request ur guys help. Tnx =p
 
Type of Script: action

Priority: mid-high i really need it :/

Reason of Request: its the only thing missing for my ot inauguration
Description: a casino slot machine that gives you random prices.. but u need to pay certain amount of money yo use it..

Public/Private: whatever u want :)
 
Big bump. Service reopened
EDIT: nver mind made a new one cause couldnt change name. Mod lock this.
 
Last edited:
Back
Top