What's new

Skrypty na zam?wienie!

Status
Not open for further replies.
Joined
Jul 21, 2010
Messages
10
Reaction score
0
Odp: Skrypty na zam?wienie!

Harr harr harr! B?j si?!
Rodzaj skryptu: NPC
Opis: NPC sprzedaje skill (np sword) tylko dla okre?lonych profesji ; cena zale?na od poziomu skilla, np.
Knight: Hi
NPC: Hi
Knight: Learn sword
NPC: *skill postaci * 100*. (11-12 sworda to 1100 gp, 12-13 1200 GP)
Knight: Yes
You advanced in sword fighting.
 

Shikos

Advanced User
Joined
Jun 26, 2009
Messages
152
Reaction score
2
Odp: Skrypty na zam?wienie!

Gdzie to trzeba dokladnie umiescic moze jakas instrukcja ? chodzi o system pucharow

// Pierwsze - creaturescripts.xml, drugie - login.lua, trzecie - nowy plik o nazwie puchary.lua // Xayan
 
Last edited by a moderator:
Joined
Jul 21, 2010
Messages
10
Reaction score
0
Odp: Skrypty na zam?wienie!

Wiesz, przecie? to w sumie nie jest takie trudne ; po prostu zobacz na tytu? (rodzaj) skryptu, i tam to wklej. Je?eli jakiej? pomocy b?dziesz potrzebowa? z wklejaniem, ch?tnie wyr?cze Ksajana :p
 

Hilary

Active User
Joined
Aug 13, 2010
Messages
99
Reaction score
9
Odp: Skrypty na zam?wienie!

Witaj, znowu Ci? prosz? o pomoc.
Potrzebuje NPC, kt?ry po rozmowie da nam mo?liwo?? otworzenia Questu :)

Oraz

Potrzebuje NPC, kt?ry po daniu mu np : Nose Ringa + Behemoth Fanga da nam Assassin Mieczyk;)

Pozdrawiam,
Hilary

Notka moderatorska:
Wz?r!
 
Last edited by a moderator:

rege stail

Senior User
Joined
Dec 8, 2008
Messages
683
Reaction score
32
Odp: Skrypty na zam?wienie!

Rodzaj skryptu: movements.
Opis skryptu: Pier?cie? kt?ry zmienia nam (wygl?d na wolfa,dodaje szybko?ci,trwa 30 min). Jak robie co? takiego :
-- >> Small config section --

local outfitMale =
{
lookType = 27,
lookHead = 0,
lookBody = 0,
lookLegs = 0,
lookFeet = 0,
lookAddons = 0
}

local outfitFemale =
{
lookType = 27,
lookHead = 0,
lookBody = 0,
lookLegs = 0,
lookFeet = 0,
lookAddons = 0
}

local cointype = 2148 -- Id of the coin the spell will use (2148 = gold coin, 2152 = platinum coin, 2160 = crystal coin) --
local tbcw = 99000 -- coin wasting time interval (miliseconds) --
local ncws = 0 -- number of coins used up during time interval --
local ncni = 10 -- number of coins needed to trigger the transformation --
local stcn = 10 -- number of coins needed to execute script (must be higher than ncni value) --
local warn = 0 -- warns player when runing short on coins, 1 = yes --
local cwar = 20 -- number of coins that triggers the warnings --

local bmaineff = CONST_ME_YELLOW_RINGS
local bsecondeff = CONST_ME_BLOCKHIT
local bflingeff = CONST_ANI_SMALLHOLY
local blandeff = CONST_ME_HOLYAREA
local bringwaste = CONST_ME_FIREWORK_YELLOW
local bringabsorb = CONST_ME_MAGIC_GREEN

local gmaineff = CONST_ME_EXPLOSIONAREA
local gsecondeff = CONST_ME_FIREAREA
local gflingeff = CONST_ANI_FIRE
local glandeff = CONST_ME_FIREWORK_RED
local gringwaste = CONST_ME_FIREWORK_RED
local gringabsorb = CONST_ME_MAGIC_RED

-- Small config section << --

local condition1 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition1, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FIST, 5)
setConditionParam(condition1, CONDITION_PARAM_SKILL_SHIELD, 4)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 105)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 105)

local condition2 = createConditionObject(CONDITION_HASTE)
setConditionParam(condition2, CONDITION_PARAM_TICKS, -1)
setConditionFormula(condition2, 2.5, 0, 3.0, 0)

function superform1(param)
if param.crca == 1 then

local pos = getCreaturePosition(param.cid)
local sex = getPlayerSex(param.cid)

local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}

local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}

if sex == 1 then
doSendMagicEffect(pos, bmaineff)
doSendMagicEffect(pos, bsecondeff)

doSendDistanceShoot(pos, nha, bflingeff)
doSendDistanceShoot(pos, sha, bflingeff)
doSendDistanceShoot(pos, wha, bflingeff)
doSendDistanceShoot(pos, eha, bflingeff)
doSendDistanceShoot(pos, nwa, bflingeff)
doSendDistanceShoot(pos, nea, bflingeff)
doSendDistanceShoot(pos, sea, bflingeff)
doSendDistanceShoot(pos, swa, bflingeff)

doSendMagicEffect(nha, blandeff)
doSendMagicEffect(sha, blandeff)
doSendMagicEffect(wha, blandeff)
doSendMagicEffect(eha, blandeff)
doSendMagicEffect(nwa, blandeff)
doSendMagicEffect(nea, blandeff)
doSendMagicEffect(sea, blandeff)
doSendMagicEffect(swa, blandeff)

doSetCreatureOutfit(param.cid, outfitMale, -1)
else
doSendMagicEffect(pos, gmaineff)
doSendMagicEffect(pos, gsecondeff)

doSendDistanceShoot(pos, nha, gflingeff)
doSendDistanceShoot(pos, sha, gflingeff)
doSendDistanceShoot(pos, wha, gflingeff)
doSendDistanceShoot(pos, eha, gflingeff)
doSendDistanceShoot(pos, nwa, gflingeff)
doSendDistanceShoot(pos, nea, gflingeff)
doSendDistanceShoot(pos, sea, gflingeff)
doSendDistanceShoot(pos, swa, gflingeff)

doSendMagicEffect(nha, glandeff)
doSendMagicEffect(sha, glandeff)
doSendMagicEffect(wha, glandeff)
doSendMagicEffect(eha, glandeff)
doSendMagicEffect(nwa, glandeff)
doSendMagicEffect(nea, glandeff)
doSendMagicEffect(sea, glandeff)
doSendMagicEffect(swa, glandeff)
doSetCreatureOutfit(param.cid, outfitFemale, -1)
end

doAddCondition(param.cid, condition1)
doAddCondition(param.cid, condition2)

local mhp = getCreatureMaxHealth(param.cid)
local mma = getPlayerMaxMana(param.cid)
local chp = getCreatureHealth(param.cid)
local cma = getPlayerMana(param.cid)

local dhp = mhp - chp
local dma = mma - cma

doCreatureAddHealth(param.cid, dhp)
doPlayerAddMana(param.cid, dma)
doPlayerRemoveItem(param.cid, cointype, ncni)

param.crcb = 1
param.sex = sex
setPlayerStorageValue(param.cid, 50780, 1)

addEvent(superform2, 1, param)
end
end


function superform2(param)
if param.crca == 1 and param.crcb == 1 and isCreature(param.cid) == TRUE and getPlayerStorageValue(param.cid, 50780) == 1 then
local pos = getCreaturePosition(param.cid)
doPlayerRemoveItem(param.cid, cointype, ncws)
if param.sex == 1 then
doSendMagicEffect(pos, bringwaste)
doSendMagicEffect(pos, bringabsorb)
else
doSendMagicEffect(pos, gringwaste)
doSendMagicEffect(pos, gringabsorb)
end
local goldleft = getPlayerItemCount(param.cid, cointype)
if goldleft < cwar and warn == 1 then
doPlayerSendTextMessage(param.cid, MESSAGE_STATUS_CONSOLE_RED, "Coins left: " ..goldleft.. ".")
end
if goldleft < ncws then
param.crca = 0
param.crcb = 0
setPlayerStorageValue(param.cid, 50780, 0)
doPlayerSendTextMessage(param.cid, MESSAGE_EVENT_DEFAULT, "No cash left!")

local pos = getCreaturePosition(param.cid)

local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}

local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}


doRemoveCondition(param.cid, CONDITION_OUTFIT)
doRemoveCondition(param.cid, CONDITION_ATTRIBUTES)
doRemoveCondition(param.cid, CONDITION_HASTE)

if param.sex == 1 then
doSendMagicEffect(pos, bmaineff)
doSendMagicEffect(pos, bsecondeff)

doSendDistanceShoot(pos, nha, bflingeff)
doSendDistanceShoot(pos, sha, bflingeff)
doSendDistanceShoot(pos, wha, bflingeff)
doSendDistanceShoot(pos, eha, bflingeff)
doSendDistanceShoot(pos, nwa, bflingeff)
doSendDistanceShoot(pos, nea, bflingeff)
doSendDistanceShoot(pos, sea, bflingeff)
doSendDistanceShoot(pos, swa, bflingeff)

doSendMagicEffect(nha, blandeff)
doSendMagicEffect(sha, blandeff)
doSendMagicEffect(wha, blandeff)
doSendMagicEffect(eha, blandeff)
doSendMagicEffect(nwa, blandeff)
doSendMagicEffect(nea, blandeff)
doSendMagicEffect(sea, blandeff)
doSendMagicEffect(swa, blandeff)
else
doSendMagicEffect(pos, gmaineff)
doSendMagicEffect(pos, gsecondeff)

doSendDistanceShoot(pos, nha, gflingeff)
doSendDistanceShoot(pos, sha, gflingeff)
doSendDistanceShoot(pos, wha, gflingeff)
doSendDistanceShoot(pos, eha, gflingeff)
doSendDistanceShoot(pos, nwa, gflingeff)
doSendDistanceShoot(pos, nea, gflingeff)
doSendDistanceShoot(pos, sea, gflingeff)
doSendDistanceShoot(pos, swa, gflingeff)

doSendMagicEffect(nha, glandeff)
doSendMagicEffect(sha, glandeff)
doSendMagicEffect(wha, glandeff)
doSendMagicEffect(eha, glandeff)
doSendMagicEffect(nwa, glandeff)
doSendMagicEffect(nea, glandeff)
doSendMagicEffect(sea, glandeff)
doSendMagicEffect(swa, glandeff)
end
else
addEvent(superform2, tbcw, param)
end
end

end

function onEquip(cid, item, slot)
local param = {cid = cid, item = item, slot = slot}
local gold = getPlayerItemCount(cid, cointype)
if gold > stcn then
param.crca = 1
--can equip here?
addEvent(superform1, 1, param)
return TRUE
end
end

function onDeEquip(cid, item, slot)
if isPlayer(cid) and getPlayerStorageValue(cid, 50780) == 1 then

doRemoveCondition(cid, CONDITION_OUTFIT)
doRemoveCondition(cid, CONDITION_ATTRIBUTES)
doRemoveCondition(cid, CONDITION_HASTE)

local pos = getCreaturePosition(cid)
setPlayerStorageValue(cid, 50780, 0)
local sex = getPlayerSex(cid)

local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}

local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}

if sex == 1 then
doSendMagicEffect(pos, bmaineff)
doSendMagicEffect(pos, bsecondeff)

doSendDistanceShoot(pos, nha, bflingeff)
doSendDistanceShoot(pos, sha, bflingeff)
doSendDistanceShoot(pos, wha, bflingeff)
doSendDistanceShoot(pos, eha, bflingeff)
doSendDistanceShoot(pos, nwa, bflingeff)
doSendDistanceShoot(pos, nea, bflingeff)
doSendDistanceShoot(pos, sea, bflingeff)
doSendDistanceShoot(pos, swa, bflingeff)

doSendMagicEffect(nha, blandeff)
doSendMagicEffect(sha, blandeff)
doSendMagicEffect(wha, blandeff)
doSendMagicEffect(eha, blandeff)
doSendMagicEffect(nwa, blandeff)
doSendMagicEffect(nea, blandeff)
doSendMagicEffect(sea, blandeff)
doSendMagicEffect(swa, blandeff)
else
doSendMagicEffect(pos, gmaineff)
doSendMagicEffect(pos, gsecondeff)

doSendDistanceShoot(pos, nha, gflingeff)
doSendDistanceShoot(pos, sha, gflingeff)
doSendDistanceShoot(pos, wha, gflingeff)
doSendDistanceShoot(pos, eha, gflingeff)
doSendDistanceShoot(pos, nwa, gflingeff)
doSendDistanceShoot(pos, nea, gflingeff)
doSendDistanceShoot(pos, sea, gflingeff)
doSendDistanceShoot(pos, swa, gflingeff)

doSendMagicEffect(nha, glandeff)
doSendMagicEffect(sha, glandeff)
doSendMagicEffect(wha, glandeff)
doSendMagicEffect(eha, glandeff)
doSendMagicEffect(nwa, glandeff)
doSendMagicEffect(nea, glandeff)
doSendMagicEffect(sea, glandeff)
doSendMagicEffect(swa, glandeff)
end
end
return TRUE
end
To dzia?a bez zarzutu ale jak zrobi? nowego o innym id to od razu jak zak?adam ten pierwszy to przerzuca mi na ofits tego drugiego ;/
Dodatkowe informacje: Prosz? o pomoc !
 

Xayan

Senior User
Joined
Jul 4, 2009
Messages
2,608
Reaction score
390
Age
28
Odp: Skrypty na zam?wienie!

@Mag:

Po co robi?, skoro jest? http://tibia.net.pl/monsters/44050-halloween-hare.html

@rege stail:

Na moje oko wystarczy zmieni? storage value w drugim skrypcie.

@Vicious:

Harr harr harr! B?j si?!

Nie ma czego ;) XML'a nie daj?, jak chcesz jaki? przyk?ad - wal na gg.

Code:
local config = {	
	[0] = {enabled=true,  koszt=50,  prof={1, 2, 3, 4, 5, 6, 7, 8}}, -- profesje mog?ce uczy? si? fista
	[1] = {enabled=true,  koszt=100, prof={4, 8}                  }, -- cluba
	[2] = {enabled=true,  koszt=100, prof={4, 8}                  }, -- sworda
	[3] = {enabled=true,  koszt=100, prof={4, 8}                  }, -- aksa
	[4] = {enabled=true,  koszt=100, prof={3, 7}                  }, -- dista
	[5] = {enabled=true,  koszt=150, prof={3, 4, 7, 8}            }, -- shielda
	[6] = {enabled=true,  koszt=50,  prof={1, 2, 3, 4, 5, 6, 7, 8}}, -- fishingu
	[7] = {enabled=false, koszt=200, prof={1, 2, 5, 6}            }  -- mlvla
}

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)
    if(not npcHandler:isFocused(cid)) then
        return false
    end

    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    if(msgcontains(msg, 'fist') and config[0]['enabled'] == true) then
		if(isInArray(config[0]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 0)*config[0]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 0, getPlayerRequiredSkillTries(cid, 0, getPlayerSkillLevel(cid, 0) + 1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 0)*config[0]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
    elseif(msgcontains(msg, 'club') and config[1]['enabled'] == true) then
		if(isInArray(config[1]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 1)*config[1]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 1, getPlayerRequiredSkillTries(cid, 1, getPlayerSkillLevel(cid, 1)+1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 1)*config[1]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
    elseif(msgcontains(msg, 'sword') and config[2]['enabled'] == true) then
		if(isInArray(config[2]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 2)*config[2]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 2, getPlayerRequiredSkillTries(cid, 2, getPlayerSkillLevel(cid, 2) + 1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 2)*config[2]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
    elseif(msgcontains(msg, 'axe') and config[3]['enabled'] == true) then
		if(isInArray(config[3]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 3)*config[3]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 3, getPlayerRequiredSkillTries(cid, 3, getPlayerSkillLevel(cid, 3) + 1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 3)*config[3]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
    elseif(msgcontains(msg, 'dist') and config[4]['enabled'] == true) then
		if(isInArray(config[4]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 4)*config[4]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 4, getPlayerRequiredSkillTries(cid, 4, getPlayerSkillLevel(cid, 4) + 1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 4)*config[4]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
    elseif(msgcontains(msg, 'shield') and config[5]['enabled'] == true) then
		if(isInArray(config[5]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 5)*config[5]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 5, getPlayerRequiredSkillTries(cid, 5, getPlayerSkillLevel(cid, 5) + 1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 5)*config[5]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
    elseif(msgcontains(msg, 'fish') and config[6]['enabled'] == true) then
		if(isInArray(config[6]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 6)*config[6]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 6, getPlayerRequiredSkillTries(cid, 6, getPlayerSkillLevel(cid, 6) + 1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 6)*config[6]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
    elseif(msgcontains(msg, 'magic') and config[7]['enabled'] == true) then
		if(isInArray(config[7]['prof'], getPlayerVocation(cid)) == true) then
			if(doPlayerRemoveMoney(cid, getPlayerSkillLevel(cid, 7)*config[7]['koszt']) == true) then
				doPlayerAddSkillTry(cid, 7, getPlayerRequiredSkillTries(cid, 7, getPlayerSkillLevel(cid, 7) + 1))
				selfSay('Dzieki za zakup skilla!', cid)
			else
				selfSay('Nie masz tyle pieniedzy! Potrzebujesz '..getPlayerSkillLevel(cid, 7)*config[7]['koszt']..'gp.', cid)
			end
		else
			selfSay('Nie masz wymaganej profesji!', cid)
		end
	end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 

Golden pall

Active User
Joined
Mar 18, 2009
Messages
50
Reaction score
2
Odp: Skrypty na zam?wienie!

Tibia 8.54
Rodzaj skryptu: actions/movements/talkactions
Opis skryptu:Chodzi mi jak mamy pet'a wyci?gni?tego z itema i on ma ataki np exori vis i zamiast pisa? exori vis to mo?na wpisa? m1
Dodatkowe informacje: Brak
dasz rade zrobic?
 

Vergil93

Advanced User
Joined
Jun 19, 2010
Messages
263
Reaction score
6
Odp: Skrypty na zam?wienie!

Rodzaj skryptu: Bez kategorii.
Opis skryptu:
PHP:
local tbl = {}
for nx = (pos(cid).x - 5), (pos(cid).x + 5) do
for ny = (pos(cid).y - 5), (pos(cid).y + 5) do
	local item_pos = {x = nx, y = ny, z = pos(cid).z, stackpos = 0}
	table.insert(tbl, item_pos.x)
	table.insert(tbl, item_pos.y)
	table.insert(tbl, item_pos.z)
Chcia?bym by? zrobi? by dla tego przedzia?u skrypt losowa? jedn? pozycj?. Wsp??rz?dne znajduj? si? w tbl.
Dodatkowe informacje: Chyba wszystko zawarte.
 

Xayan

Senior User
Joined
Jul 4, 2009
Messages
2,608
Reaction score
390
Age
28
Odp: Skrypty na zam?wienie!

@Golden:
Nie, nie zrobi? tego... i ju? tu nie spamuj.

@Vergil:
Przyda?by si? ca?y skrypt w celu przetestowania :p Ale mo?esz spr?bowa? tak:

Code:
local x = item_pos[math.random(0, #item_pos)].x
local y = item_pos[math.random(0, #item_pos)].y
local z = item_pos[math.random(0, #item_pos)].z
 

cuxi

User
Joined
Jun 1, 2009
Messages
22
Reaction score
0
Odp: Skrypty na zam?wienie!

Tibia 8.54
Rodzaj skryptu: nieweim
Opis skryptu:Czy mog? bys napisac skrypt ze po zabiciu potwora kazdy z bijacych graczy dostanie pewien item albo ze po zabiciu potwora piszemy np nagroda i dostajemy item
Dodatkowe informacje: Brak
dasz rade zrobic?


Czy mog? bys napisac skrypt ze po zabiciu potwora kazdy z bijacych graczy dostanie pewien item albo ze po zabiciu potwora piszemy np nagroda i dostajemy item
 

Tilazij

User
Joined
Oct 1, 2009
Messages
24
Reaction score
1
Odp: Skrypty na zam?wienie!

a wiec ja poprosze zamowienie na krzeslo elektryczne, exp ticket i stamine i to all pod 8.54 ;) z gory dziekuje ;D

Notka moderatorska:
Wz?r!
 
Last edited by a moderator:

Xayan

Senior User
Joined
Jul 4, 2009
Messages
2,608
Reaction score
390
Age
28
Odp: Skrypty na zam?wienie!

Tibia 8.54
Rodzaj skryptu: nieweim
Opis skryptu:Czy mog? bys napisac skrypt ze po zabiciu potwora kazdy z bijacych graczy dostanie pewien item albo ze po zabiciu potwora piszemy np nagroda i dostajemy item
Dodatkowe informacje: Brak
dasz rade zrobic?
Czy mog? bys napisac skrypt ze po zabiciu potwora kazdy z bijacych graczy dostanie pewien item albo ze po zabiciu potwora piszemy np nagroda i dostajemy item

W LUA jest to niemo?liwe, gdy? wraz z funkcj? onKill przekazywane s? dwie zmienne - traget, czyli zabity potw?r/gracz oraz cid, czyli osoba, kt?ra albo zada?a najwi?cej obra?e?, albo ostatniego hita.
 

Folgowsky

Active User
Joined
Jun 23, 2010
Messages
116
Reaction score
8
Age
31
Odp: Skrypty na zam?wienie!

Rodzaj skryptu: Npc
Opis skryptu: Jest to NPC ucz?cy czar?w , lecz ?eby? nauczy? si? czaru musisz wykona? okre?lone zadanie jak np . odda? item , zabic potwora , mie? 100 sworda itp .Prosz? o zrobienie nauki dw?ch czar?w bo z reszt? to ju? sam s? poradz?.
Dodatkowe informacje: ---
 

naruto555

User
Joined
Jan 26, 2009
Messages
41
Reaction score
0
Odp: Skrypty na zam?wienie!

Witam ;)
Ile w tym siedzisz? :D

Rodzaj Skryptu: Nie mam poj?cia ;|
Opis Skryptu: Gracz u?ywa czaru [xxx] ; co 1 sec z?era mu 1 soul, i na czas dzia?ania dodaje x% skilla, np. sworda
Dodatkowe informacje: Na przyk?ad ;
Gracz: [xxx]
10:10:39 -1 soul
10:10:40 -1 soul (oczywi?cie taka wiadomo?c si? nie wy?wietla ;o)
A gracz przez czas dzia?ania (a? do 0 soula, lub dezaktywacji) posiada dodatkowe 30% sworda ;)
Z g?ry dzi?ki szefie!
 

Vergil93

Advanced User
Joined
Jun 19, 2010
Messages
263
Reaction score
6
Odp: Skrypty na zam?wienie!

Rodzaj skryptu: Jak poprzednio.
Opis Skryptu: Tamten spos?b dzia?a, ale trzeba by?o zrobi? ma?? korekt?, jednak?e teraz inny problem mam, dotycz?cy tego samego skryptu.
PHP:
local tbl_x = {}
local tbl_y = {}
local tbl_z = {}
for nx = (pos(cid).x - 2), (pos(cid).x + 2) do
for ny = (pos(cid).y - 2), (pos(cid).y + 2) do
	local itemFound = getThingFromPos({x = nx, y = ny, z = pos(cid).z, stackpos = 0})
	local item_pos = getThingPos(itemFound.uid)
	table.insert(tbl_x, item_pos.x)
	table.insert(tbl_y, item_pos.y)
	table.insert(tbl_z, item_pos.z)
	local x_pos, y_pos, z_pos = tbl_x[math.random(1, #tbl_x)], tbl_y[math.random(1, #tbl_y)], tbl_z[math.random(1, #tbl_z)]
	local poss = {x=x_pos, y=y_pos, z=z_pos}

Ok, losuje normalnie pozycje, ale szkopu? tkwi w tym, ?e losuje ich wi?cej ani?eli jedn?. Napisz mi wi?c jak zrobi? by wybiera? tylko jedn? pozycj? oraz by poss by?o sta?e, poniewa? w skrypcie tworz? potwora i wysy?am w to samo miejsce efekt, a co za tym idzie, pozycje s? r??ne dla potwora i efektu, gdy? skrypt losuje z osobna poss dla obu z nich.

#down
Sk?d tacy jak Ty si? bior??
 
Last edited:

cuxi

User
Joined
Jun 1, 2009
Messages
22
Reaction score
0
Odp: Skrypty na zam?wienie!

Tibia 8.54
Rodzaj skryptu: NPC
Opis skryptu:Czy mog? bys napisac skrypt ze NPC daje nam misje na zabicie potwora jesli zabijemy go idziemy do npc i daje nam np 1000 expa???
Dodatkowe informacje: Brak
dasz rade zrobic?
 

Xayan

Senior User
Joined
Jul 4, 2009
Messages
2,608
Reaction score
390
Age
28
Odp: Skrypty na zam?wienie!

@naruto555:
Hm... powiedzmy, ?e miesi?c. Zrobi? jutro, bo tw?j skrypt to akurat najwi?cej roboty =/

@Vergil93:

Co do losowania pozycji - nie mam poj?cia. Jednak, aby poss by?o sta?e, zr?b tak:

Code:
local poss = {x=1000, y=1000, z=7}

I ju?. W LUA nie mo?na definiowa? sta?ych, wi?c po prostu nie musisz modyfikowa? warto?ci zmiennych.

@Folgowsky:

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)
    if(not npcHandler:isFocused(cid)) then
        return false
    end

    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    if(msgcontains(msg, 'light healing')) then
        local profesje = {1, 2, 3, 4, 5, 6, 7, 8}
        if(isInArray(profesje, getPlayerVocation(cid)) == true) then
            if(doPlayerRemoveItem(cid, 2383, 1) == true) then
                doPlayerLearnInstantSpell(cid, "Light Healing")
                selfSay('Nauczyles sie zaklecia Light Healing!', cid)
            else
                selfSay('Nie masz spike sworda!', cid)
            end
        else
            selfSay('Nie masz wymaganej profesji!', cid)
        end
    elseif(msgcontains(msg, 'antidote')) then
        local profesje = {1, 2, 3, 4, 5, 6, 7, 8}
        if(isInArray(profesje, getPlayerVocation(cid)) == true) then
            if(getPlayerSkillLevel(cid, 7) >= 3) then
                doPlayerLearnInstantSpell(cid, "Antidote")
                selfSay('Nauczyles sie zaklecia Antidote!', cid)
            else
                selfSay('Nie masz 3 mlvla!', cid)
            end
        else
            selfSay('Nie masz wymaganej profesji!', cid)
        end
    end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 

Vergil93

Advanced User
Joined
Jun 19, 2010
Messages
263
Reaction score
6
Odp: Skrypty na zam?wienie!

Rodzaj Skryptu: Bez kategorii.
Opis Skryptu: Napisz/Znajd? mi funkcj? sprawdzaj?c? czy item z danej pozycji ma warto?? blokuj?c?.
Np.
PHP:
for i = 1, 254 do
stackpos = i
local itemUp = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=stackpos})
end
I niech sprawdza czy ten item blokuje nam przej?cie.

#edit
PHP:
if itemUp.uid == 0 then
xd
 
Last edited:

xdanio7x

Advanced User
Joined
Nov 6, 2008
Messages
300
Reaction score
14
Odp: Skrypty na zam?wienie!

Rodzaj skryptu: npc/monster
Opis skryptu: Co? w stylu misji. Idziemy do npc, kt?ry daje nam misje o zabiciu potwora. Gdy zabijamy wracamy si? i mu o tym m?wimy. Z tym, ?e najlepiej by by?o, je?eli danego potwora mo?na bi? tylko podczas tej misji, nigdy wi?cej.
Dodatkowe informacje: ----
 
Status
Not open for further replies.
Top