What's new

Skrypty & Kody Task - Nie dziala ?

Status
Not open for further replies.

Mr ImaGu?

Advanced User
Joined
Dec 13, 2014
Messages
289
Reaction score
10
G??wny temat : http://tibia.net.pl/threads/554387-Konkurs-Task-system-przez-komendy!
B??d : [21/06/2015 14:43:12] [Warning - Event::loadScript] Event onKill not found (data/creaturescripts/scripts/killinginthenameof.lua)

Wszystko mi dzia?a doda?em lib / creaturescript / login / talkactions - bo nie dzia?a?y komendy
tylko ,?e gdy zabijam potwora nie zalicza mi go .

Prosz? o pomoc !

i gdzie to doda? :
[lua] if getCreatureStorage(cid, tasks[msg].questStarted) == 2 then
selfSay("You already finished this task.", cid)
talkState[talkUser] = 0
can = false
end[/lua]

For this:
[lua] local storage = 64521 --same storage used in other script
if getCreatureStorage(cid, tasks[msg].questStarted) == 2 or getCreatureStorage(cid, storage) <= msg then
selfSay("You already finished this task.", cid)
talkState[talkUser] = 0
can = false
end
[/lua]


TFS 0.3.6
 

misztrz440

Banned
Joined
Dec 15, 2012
Messages
1,032
Reaction score
39
Odp: Task - Nie dziala ?

Doda? to musisz do npc. S?ysza?em gdzies, ze w creaturescript trzeba zmieni? pierwsza liter? potwora na wielka np. z troll na Troll
 

Ciamciaj Bigos

&#3585;&#3657;&#3657;&#3657;&#3657;&#3657;&#3657;&
Joined
Jun 6, 2013
Messages
2,081
Reaction score
192
Odp: Task - Nie dziala ?

W creaturescripts.xml zadeklarowales, ze w killinginthenameof.lua bedzie funkcja onKill, a cos nie wyszlo i takiej tam nie ma, dlatego silnik wypluwa bledy. Najlepiej to pokaz co tam masz.
 

Mr ImaGu?

Advanced User
Joined
Dec 13, 2014
Messages
289
Reaction score
10
Odp: Task - Nie dziala ?

[MENTION=408163]Ciamciaj Bigos[/MENTION]
Oto ca?e creaturescript.xml
<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>
<event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/> <---- task ,ktory mi nie dziala
<event type="login" name="FirstItems" script="firstitems.lua"/>
<event type="advance" name="LvlEffect" event="script" value="lvleffect.lua"/>
<event type="kill" name="Task" event="script" value="Task.lua"/> <---- to jest do tasku na fragi
<event type="advance" name="Addons" event="script" value="Addons.lua"/>
<event type="login" name="PlayerLogin" event="script" value="login.lua"/>

<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
<event type="receivemail" name="Mail" event="script" value="mail.lua"/>
<event type="reportbug" name="SaveReportBug" script="reportbug.lua"/>
<event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/>

<event type="login" name="Antimagebomb" event="script" value="Antimagebomb.lua"/>
<event type="think" name="Idle" event="script" value="idle.lua"/>
<event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/>
<event type="advance" name="SpellUp" event="script" value="spellup.lua"/>
</creaturescripts>


a to login
local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)
if (getConfigValue("accountManager") == FALSE and getCreatureName(cid) == "Account Manager") then
return false
end

local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
end

local accountManager = getPlayerAccountManager(cid)
if(accountManager == MANAGER_NONE) then
local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
if(lastLogin > 0) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
else
str = str .. " Please choose your outfit."
doPlayerSendOutfitWindow(cid)
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
elseif(accountManager == MANAGER_NAMELOCK) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
elseif(accountManager == MANAGER_ACCOUNT) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
end

if(not isPlayerGhost(cid)) then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end

registerCreatureEvent(cid, "attackguild")
registerCreatureEvent(cid, "KillingInTheNameOf")
registerCreatureEvent(cid, "FirstItems")

registerCreatureEvent(cid, "Addons")

registerCreatureEvent(cid, "LvlEffect")
registerCreatureEvent(cid, "Task")

registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "GuildMotd")
registerCreatureEvent(cid,'SpellUp')
registerCreatureEvent(cid, "Idle")
if(config.useFragHandler) then
registerCreatureEvent(cid, "SkullCheck")
end

registerCreatureEvent(cid, "ReportBug")
registerCreatureEvent(cid, "AdvanceSave")
return true
end
lib/050_function trzeba by?o doda? to co mam na samej g?rze doda?em :
function isSummon(cid)
return getCreatureMaster(cid) ~= cid or false
end
function doPlayerGiveItem(cid, itemid, amount, subType)
local item = 0
if(isItemStackable(itemid)) then
item = doCreateItemEx(itemid, amount)
if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
return false
end
else
for i = 1, amount do
item = doCreateItemEx(itemid, subType)
if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
return false
end
end
end

return true
end

function doPlayerGiveItemContainer(cid, containerid, itemid, amount, subType)
for i = 1, amount do
local container = doCreateItemEx(containerid, 1)
for x = 1, getContainerCapById(containerid) do
doAddContainerItem(container, itemid, subType)
end

if(doPlayerAddItemEx(cid, container, true) ~= RETURNVALUE_NOERROR) then
return false
end
end

return true
end


function doPlayerTakeItem(cid, itemid, amount)
return getPlayerItemCount(cid, itemid) >= amount and doPlayerRemoveItem(cid, itemid, amount)
end

function doPlayerBuyItem(cid, itemid, count, cost, charges)
return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItem(cid, itemid, count, charges)
end

function doPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges)
return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItemContainer(cid, containerid, itemid, count, charges)
end

function doPlayerSellItem(cid, itemid, count, cost)
if(not doPlayerTakeItem(cid, itemid, count)) then
return false
end

if(not doPlayerAddMoney(cid, cost)) then
error('[doPlayerSellItem] Could not add money to: ' .. getPlayerName(cid) .. ' (' .. cost .. 'gp).')
end

return true
end

function doPlayerWithdrawMoney(cid, amount)
if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
return false
end

local balance = getPlayerBalance(cid)
if(amount > balance or not doPlayerAddMoney(cid, amount)) then
return false
end

doPlayerSetBalance(cid, balance - amount)
return true
end

function doPlayerDepositMoney(cid, amount)
if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
return false
end

if(not doPlayerRemoveMoney(cid, amount)) then
return false
end

doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
return true
end

function isPremium(cid)
return (isPlayer(cid) and (getPlayerPremiumDays(cid) > 0 or getBooleanFromString(getConfigInfo('freePremium'))))
end

function getMonthDayEnding(day)
if(day == "01" or day == "21" or day == "31") then
return "st"
elseif(day == "02" or day == "22") then
return "nd"
elseif(day == "03" or day == "23") then
return "rd"
end

return "th"
end

function getMonthString(m)
return os.date("%B", os.time{year = 1970, month = m, day = 1})
end

function getArticle(str)
return str:find("[AaEeIiOoUuYy]") == 1 and "an" or "a"
end

function isNumber(str)
return tonumber(str) ~= nil
end

function doPlayerAddAddons(cid, addon)
for i = 0, table.maxn(maleOutfits) do
doPlayerAddOutfit(cid, maleOutfits, addon)
end

for i = 0, table.maxn(femaleOutfits) do
doPlayerAddOutfit(cid, femaleOutfits, addon)
end
end

function doPlayerWithdrawAllMoney(cid)
return doPlayerWithdrawMoney(cid, getPlayerBalance(cid))
end

function doPlayerDepositAllMoney(cid)
return doPlayerDepositMoney(cid, getPlayerMoney(cid))
end

function doPlayerTransferAllMoneyTo(cid, target)
return doPlayerTransferMoneyTo(cid, target, getPlayerBalance(cid))
end

function playerExists(name)
return getPlayerGUIDByName(name) ~= 0
end

function getTibiaTime()
local minutes = getWorldTime()
local hours = 0
while (minutes > 60) do
hours = hours + 1
minutes = minutes - 60
end

return {hours = hours, minutes = minutes}
end

function doWriteLogFile(file, text)
local f = io.open(file, "a+")
if(not f) then
return false
end

f:write("[" .. os.date("%d/%m/%Y %H:%M:%S") .. "] " .. text .. "\n")
f:close()
return true
end

function getExperienceForLevel(lv)
lv = lv - 1
return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
end

function doMutePlayer(cid, time)
local condition = createConditionObject(CONDITION_MUTED)
setConditionParam(condition, CONDITION_PARAM_TICKS, time * 1000)
return doAddCondition(cid, condition)
end

function getPlayerGroupName(cid)
return getGroupInfo(getPlayerGroupId(cid)).name
end

function getPlayerVocationName(cid)
return getVocationInfo(getPlayerVocation(cid)).name
end

function getPromotedVocation(vid)
return getVocationInfo(vid).promotedVocation
end

function doPlayerRemovePremiumDays(cid, days)
return doPlayerAddPremiumDays(cid, -days)
end

function getPlayerMasterPos(cid)
return getTownTemplePosition(getPlayerTown(cid))
end

function getHouseOwner(houseId)
return getHouseInfo(houseId).owner
end

function getHouseName(houseId)
return getHouseInfo(houseId).name
end

function getHouseEntry(houseId)
return getHouseInfo(houseId).entry
end

function getHouseRent(houseId)
return getHouseInfo(houseId).rent
end

function getHousePrice(houseId)
return getHouseInfo(houseId).price
end

function getHouseTown(houseId)
return getHouseInfo(houseId).town
end

function getHouseTilesCount(houseId)
return getHouseInfo(houseId).tiles
end

function getItemNameById(itemid)
return getItemDescriptionsById(itemid).name
end

function getItemPluralNameById(itemid)
return getItemDescriptionsById(itemid).plural
end

function getItemArticleById(itemid)
return getItemDescriptionsById(itemid).article
end

function getItemName(uid)
return getItemDescriptions(uid).name
end

function getItemPluralName(uid)
return getItemDescriptions(uid).plural
end

function getItemArticle(uid)
return getItemDescriptions(uid).article
end

function getItemText(uid)
return getItemDescriptions(uid).text
end

function getItemSpecialDescription(uid)
return getItemDescriptions(uid).special
end

function getItemWriter(uid)
return getItemDescriptions(uid).writer
end

function getItemDate(uid)
return getItemDescriptions(uid).date
end

function getTilePzInfo(pos)
return getTileInfo(pos).protection
end

function getTileZoneInfo(pos)
local tmp = getTileInfo(pos)
if(tmp.pvp) then
return 2
end

if(tmp.nopvp) then
return 1
end

return 0
end

function doShutdown()
return doSetGameState(GAMESTATE_SHUTDOWN)
end

function doSummonCreature(name, pos, displayError)
local displayError, cid = displayError or true, doCreateMonster(name, pos, displayError)
if(not cid) then
cid = doCreateNpc(name, pos, displayError)
end

return cid
end

function getOnlinePlayers()
local tmp = getPlayersOnline()
local players = {}
for i, cid in ipairs(tmp) do
table.insert(players, getCreatureName(cid))
end

return players
end

function getPlayerByName(name)
local cid = getCreatureByName(name)
return isPlayer(cid) and cid or nil
end

function isPlayer(cid)
return isCreature(cid) and cid >= AUTOID_PLAYERS and cid < AUTOID_MONSTERS
end

function isPlayerGhost(cid)
if(not isPlayer(cid)) then
return false
end

return getCreatureCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) or getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBESEEN)
end

function isMonster(cid)
return isCreature(cid) and cid >= AUTOID_MONSTERS and cid < AUTOID_NPCS
end

function isNpc(cid)
return isCreature(cid) and cid >= AUTOID_NPCS
end

function doPlayerSetExperienceRate(cid, value)
return doPlayerSetRate(cid, SKILL__LEVEL, value)
end

function doPlayerSetMagicRate(cid, value)
return doPlayerSetRate(cid, SKILL__MAGLEVEL, value)
end

function doPlayerAddLevel(cid, amount, round)
local experience, level = 0, getPlayerLevel(cid)
if(amount > 0) then
experience = getExperienceForLevel(level + amount) - (round and getPlayerExperience(cid) or getExperienceForLevel(level))
else
experience = -((round and getPlayerExperience(cid) or getExperienceForLevel(level)) - getExperienceForLevel(level + amount))
end

return doPlayerAddExperience(cid, experience)
end

function doPlayerAddMagLevel(cid, amount)
for i = 1, amount do
doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid)) / getConfigInfo('rateMagic'))
end
return true
end

function doPlayerAddSkill(cid, skill, amount, round)
if(skill == SKILL__LEVEL) then
return doPlayerAddLevel(cid, amount, round)
elseif(skill == SKILL__MAGLEVEL) then
return doPlayerAddMagLevel(cid, amount)
end

return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
end

function getPartyLeader(cid)
local party = getPartyMembers(cid)
if(type(party) ~= 'table') then
return 0
end

return party[1]
end

function isInParty(cid)
return type(getPartyMembers(cid)) == 'table'
end

function isPrivateChannel(channelId)
return channelId >= CHANNEL_PRIVATE
end

function doPlayerResetIdleTime(cid)
return doPlayerSetIdleTime(cid, 0)
end

function doBroadcastMessage(text, class)
local class = class or MESSAGE_STATUS_WARNING
if(type(class) == 'string') then
local className = MESSAGE_TYPES[class]
if(className == nil) then
return false
end

class = className
elseif(class < MESSAGE_FIRST or class > MESSAGE_LAST) then
return false
end

local players = getPlayersOnline()
for _, pid in ipairs(players) do
doPlayerSendTextMessage(pid, class, text)
end

print("> Broadcasted message: \"" .. text .. "\".")
return true
end

function doPlayerBroadcastMessage(cid, text, class, checkFlag, ghost)
local checkFlag, ghost, class = checkFlag or true, ghost or false, class or TALKTYPE_BROADCAST
if(checkFlag and not getPlayerFlagValue(cid, PLAYERFLAG_CANBROADCAST)) then
return false
end

if(type(class) == 'string') then
local className = TALKTYPE_TYPES[class]
if(className == nil) then
return false
end

class = className
elseif(class < TALKTYPE_FIRST or class > TALKTYPE_LAST) then
return false
end

local players = getPlayersOnline()
for _, pid in ipairs(players) do
doCreatureSay(cid, text, class, ghost, pid)
end

print("> " .. getCreatureName(cid) .. " broadcasted message: \"" .. text .. "\".")
return true
end

function getBooleanFromString(input)
local tmp = type(input)
if(tmp == 'boolean') then
return input
end

if(tmp == 'number') then
return input > 0
end

local str = string.lower(tostring(input))
return (str == "yes" or str == "true" or (tonumber(str) ~= nil and tonumber(str) > 0))
end

function doCopyItem(item, attributes)
local attributes = attributes or false

local ret = doCreateItemEx(item.itemid, item.type)
if(attributes) then
if(item.actionid > 0) then
doItemSetAttribute(ret, "aid", item.actionid)
end
end

if(isContainer(item.uid)) then
for i = (getContainerSize(item.uid) - 1), 0, -1 do
local tmp = getContainerItem(item.uid, i)
if(tmp.itemid > 0) then
doAddContainerItemEx(ret, doCopyItem(tmp, true).uid)
end
end
end

return getThing(ret)
end

function doRemoveThing(uid)
if(isCreature(uid)) then
return doRemoveCreature(uid)
end

return doRemoveItem(uid)
end

function setAttackFormula(combat, type, minl, maxl, minm, maxm, min, max)
local min, max = min or 0, max or 0
return setCombatFormula(combat, type, -1, 0, -1, 0, minl, maxl, minm, maxm, min, max)
end

function setHealingFormula(combat, type, minl, maxl, minm, maxm, min, max)
local min, max = min or 0, max or 0
return setCombatFormula(combat, type, 1, 0, 1, 0, minl, maxl, minm, maxm, min, max)
end

function doChangeTypeItem(uid, subtype)
local thing = getThing(uid)
if(thing.itemid < 100) then
return false
end

local subtype = subtype or 1
return doTransformItem(thing.uid, thing.itemid, subtype)
end

function doSetItemText(uid, text, writer, date)
local thing = getThing(uid)
if(thing.itemid < 100) then
return false
end

doItemSetAttribute(uid, "text", text)
if(writer ~= nil) then
doItemSetAttribute(uid, "writer", tostring(writer))
if(date ~= nil) then
doItemSetAttribute(uid, "date", tonumber(date))
end
end

return true
end

function getFluidSourceType(itemid)
local item = getItemInfo(itemid)
return item and item.fluidSource or false
end

function getDepotId(uid)
return getItemAttribute(uid, "depotid") or false
end

function getItemDescriptions(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
return false
end

local item = getItemInfo(thing.itemid)
return {
name = getItemAttribute(uid, "name") or item.name,
plural = getItemAttribute(uid, "pluralname") or item.plural,
article = getItemAttribute(uid, "article") or item.article,
special = getItemAttribute(uid, "description") or "",
text = getItemAttribute(uid, "text") or "",
writer = getItemAttribute(uid, "writer") or "",
date = getItemAttribute(uid, "date") or 0
}
end

function getItemWeightById(itemid, count, precision)
local item, count, precision = getItemInfo(itemid), count or 1, precision or false
if(not item) then
return false
end

if(count > 100) then
-- print a warning, as its impossible to have more than 100 stackable items without "cheating" the count
print('[Warning] getItemWeightById', 'Calculating weight for more than 100 items!')
end

local weight = item.weight * count
--[[if(precision) then
return weight
end

local t = string.explode(tostring(weight), ".")
if(table.maxn(t) == 2) then
return tonumber(t[1] .. "." .. string.sub(t[2], 1, 2))
end]]--

return weight
end

function getItemWeaponType(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
return false
end

return getItemInfo(thing.itemid).weaponType
end

function getItemRWInfo(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
return false
end

local item, flags = getItemInfo(thing.itemid), 0
if(item.readable) then
flags = 1
end

if(item.writable) then
flags = flags + 2
end

return flags
end

function getItemLevelDoor(itemid)
local item = getItemInfo(itemid)
return item and item.levelDoor or false
end

function isItemStackable(itemid)
local item = getItemInfo(itemid)
return item and item.stackable or false
end

function isItemRune(itemid)
local item = getItemInfo(itemid)
return item and item.clientCharges or false
end

function isItemDoor(itemid)
local item = getItemInfo(itemid)
return item and item.type == 5 or false
end

function isItemContainer(itemid)
local item = getItemInfo(itemid)
return item and item.group == 2 or false
end

function isItemFluidContainer(itemid)
local item = getItemInfo(itemid)
return item and item.group == 12 or false
end

function isItemMovable(itemid)
local item = getItemInfo(itemid)
return item and item.movable or false
end

function isCorpse(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
return false
end

local item = getItemInfo(thing.itemid)
return item and item.corpseType ~= 0 or false
end

function getContainerCapById(itemid)
local item = getItemInfo(itemid)
if(not item or item.group ~= 2) then
return false
end

return item.maxItems
end

function getMonsterAttackSpells(name)
local monster = getMonsterInfo(name)
return monster and monster.attacks or false
end

function getMonsterHealingSpells(name)
local monster = getMonsterInfo(name)
return monster and monster.defenses or false
end

function getMonsterLootList(name)
local monster = getMonsterInfo(name)
return monster and monster.loot or false
end

function getMonsterSummonList(name)
local monster = getMonsterInfo(name)
return monster and monster.summons or false
end


a do talkactions doda?em to co w temacie ,ktry poda?em na pocz?tku
 
Last edited:

Ciamciaj Bigos

&#3585;&#3657;&#3657;&#3657;&#3657;&#3657;&#3657;&
Joined
Jun 6, 2013
Messages
2,081
Reaction score
192
Odp: Task - Nie dziala ?

[MENTION=426089]ImaG[/MENTION]
to mi podaj data/creaturescripts/scripts/killinginthenameof.lua, bo tam jest blad
 

Mr ImaGu?

Advanced User
Joined
Dec 13, 2014
Messages
289
Reaction score
10
Odp: Task - Nie dziala ?

[MENTION=408163]Ciamciaj Bigos[/MENTION]
local tasks =
{
[1] = {questStarted = 1601, questStorage = 65001, killsRequired = 10, raceName = "Dynia", rewards = { {enable = true, type = "exp", values = 10000}, {enable = true, type = "money", values = 10000}}},

[2] = {questStarted = 1602, questStorage = 65002, killsRequired = 50, raceName = "Dragons", rewards = { { enable = true, type = "points", values = 1},{enable = true, type = "exp", values = 150000}, {enable = true, type = "money", values = 15000}}},

}

local rankStorage2 = 32150
local rankStorage = 32151

function onSay(cid, words, param)
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "!task list, aby zobaczyc liste taskow.")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "!task numer zadania, aby rozpoczac zadanie.")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "!task report, aby sprawdzic ile potworow zabiles lub aby otrzymac nagrode.")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "!task points, aby sprawdzic ile punktow masz na koncie.")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "!task stop, aby przerwac zadanie ktore aktualnie wykonujesz.")
return true
end
if (param == 'stop') then
for k, v in pairs(tasks) do
if getPlayerStorageValue(cid, v.questStarted) == 1 then
doCreatureSetStorage(cid, v.questStarted, -1)
doCreatureSetStorage(cid, v.questStorage, -1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Przerwales zadanie. Mozesz teraz rozpoczac inne.")
break
end
end
end
if (param == 'list') then
local text = "Lista zadan:"
for i = 1, table.maxn(tasks) do
text = text .. "\n" .. i .. " - " .. tasks.raceName .. (getCreatureStorage(cid, tasks.questStarted) == 2 and " [Done]" or "")
end
doShowTextDialog(cid, 5956, text)
end
if tasks[tonumber(param)] then
param = tonumber(param)
if getCreatureStorage(cid, tasks[param].questStarted) == 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Jestes w trakcje wykonywania tego zadania.")
return true
end
for k, v in pairs(tasks) do
if getCreatureStorage(cid, v.questStarted) == 1 and param ~= k then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wlasnie wykonujesz inne zadanie.")
return true
end
end

doCreatureSetStorage(cid, tasks[param].questStarted, 1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Rozpoczales zadanie numer: " .. param .. ", pamietaj, w tym zadaniu musisz pokonac " .. tasks[param].killsRequired .. " " .. tasks[param].raceName .. ". Powodzenia!")
end
if (param == 'points') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Posiadasz " .. getCreatureStorage(cid, rankStorage2) .. " punktow.")
end
if (param == 'report') then
for k, v in pairs(tasks) do
--if getCreatureStorage(cid, v.questStarted) <= 0 then
--doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Nie rozpoczales jeszcze zadnego zadania.")
--break
--end
if getCreatureStorage(cid, v.questStarted) == 1 then
if getCreatureStorage(cid, v.questStorage) >= v.killsRequired then
for i = 1, table.maxn(v.rewards) do
if(v.rewards.enable) then
if isInArray({"boss", "teleport", 1}, v.rewards.type) then
doTeleportThing(cid, v.rewards.values)
elseif isInArray({"exp", "experience", 2}, v.rewards.type) then
doPlayerAddExperience(cid, v.rewards.values)
elseif isInArray({"item", 3}, v.rewards.type) then
doPlayerAddItem(cid, v.rewards.values[1], v.rewards.values[2])
elseif isInArray({"money", 4}, v.rewards.type) then
doPlayerAddMoney(cid, v.rewards.values)
elseif isInArray({"storage", "stor", 5}, v.rewards.type) then
doCreatureSetStorage(cid, v.rewards.values[1], v.rewards.values[2])
elseif isInArray({"points", "rank", 2}, v.rewards.type) then
doCreatureSetStorage(cid, rankStorage, getCreatureStorage(cid, rankStorage) + v.rewards.values)
doCreatureSetStorage(cid, rankStorage2, getCreatureStorage(cid, rankStorage2) + v.rewards.values)
else
print("[Warning - Error::Killing in the name of::Tasks config] Bad reward type: " .. v.rewards.type .. ", reward could not be loaded.")
end
end
end
local rank = getCreatureStorage(cid, rankStorage)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Swietnie!... skonczyles zadanie numer " .. k .. ". Dobra robota.")
doCreatureSetStorage(cid, v.questStarted, -1)
doCreatureSetStorage(cid, v.questStorage, -1)
break
else
if getCreatureStorage(cid, v.questStorage) < 0 then
doCreatureSetStorage(cid, v.questStorage, 0)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Zabiles " .. getCreatureStorage(cid, v.questStorage) .. " " .. v.raceName .. ", musisz zabic " .. v.killsRequired .. ".")
break
end
end
end
end
return true
end

Prosz? :d
 

Ciamciaj Bigos

&#3585;&#3657;&#3657;&#3657;&#3657;&#3657;&#3657;&
Joined
Jun 6, 2013
Messages
2,081
Reaction score
192
Odp: Task - Nie dziala ?

funkcja onSay nalezy do talkactions, a ty ja wrzuciles do creaturescripts jako onKill XD
 

Mr ImaGu?

Advanced User
Joined
Dec 13, 2014
Messages
289
Reaction score
10
Odp: Task - Nie dziala ?

[MENTION=408163]Ciamciaj Bigos[/MENTION]
Ok teraz b??du nie wywala ,ale nadal nie zalicza gdy zabije potwora :/
 

Ciamciaj Bigos

&#3585;&#3657;&#3657;&#3657;&#3657;&#3657;&#3657;&
Joined
Jun 6, 2013
Messages
2,081
Reaction score
192
Odp: Task - Nie dziala ?

Bedzie prosciej jesli sprobujesz od nowa wgrac ten task system, a te pozostalosci po prostu usun zeby nie bylo komplikacji, jesli to nie ty spieprzyles sprawe z kopiowaniem tego kodu (talkactions trafilo do creaturescripts) to tworca tamtego tematu cos zle napisal.
 

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: Task - Nie dziala ?

@up
Wszystko w tych postach i tematach na wszystkich forach jest dobrze... Ale jak sie wrzuca kod z talkactions do creaturescripts to nie dziwne, ze nie dziala. Pewnie brak paru linijek, albo brak deklaracji w login.lua albo w ogole brak polowy plikow. Proste.
System dziala, bledow nie ma. Jak ktos nie potrafi nawet skopiowac gotowego kodu i go wkleic to ja nie wiem, ale chyba takim osobom sie nie powinno pomagac... Z gotowcami sobie nie radzic? No serio? Jak sami gowno potrafia i chca wykorzystywac to co innni napisali i udostepnili, to niech sie troche pomecza albo wykaza wlasna inicjatywa w kopiowaniu z tematu. Pomoc przy tym jest zbedna i tematy takie jak ten to bym z miejsca zamykal :<
Jeszcze kurde ten kilkuset linijkowy kod w poscie ktory rozicaga caly temat na 10 metrow, no prosze was...
 
Status
Not open for further replies.
Top