楼主: ayase

[未归类主题(有空慢慢分)] 一个重写的任务属性lua脚本 by 2018.1.29

  [复制链接]
头像被屏蔽

104

时沙

0

精华

4

主题

声望: 79   虚弱: 11

禁言

炉石瓦格里的标记

发表于 2018-5-27 15:31:30 | 显示全部楼层
lua_scripts\QuestStateSystem.lua:209: attempt to perform arithmetic on global 'z
xsq' (a nil value)
我使用了没效果啊啊,还出来这个
回复

使用道具 举报

头像被屏蔽

104

时沙

0

精华

4

主题

声望: 79   虚弱: 11

禁言

炉石瓦格里的标记

发表于 2018-5-27 21:48:02 | 显示全部楼层
tbick 发表于 2018-5-27 15:31
lua_scripts\QuestStateSystem.lua:209: attempt to perform arithmetic on global 'z
xsq' (a nil value)
...

大哥,就是你的,名字我自己改的。
print(">>Script: QuestStateSystem   (rewrite by ayase 2018.1.29)..")



local STATE = {}

STATE.Config = {

itemEntry = 1180,   --物品id,需要那些可以点击使用的物品,比如炉石之类的


加载的时候出现lua_scripts\QuestStateSystem.lua:209: attempt to perform arithmetic on global 'z
xsq' (a nil value)
回复

使用道具 举报

1897

时沙

2

精华

20

主题

声望: 4255   虚弱: 0

Lv.6(觉醒者)

祥龙贺岁(尚美制作)金兔迎春(尚美制作)炉石金鸡报晓时沙之瓶银色北伐军祖国万岁!!信仰战假死猎人今天也只能打恢复的增强萨潜行者金鼠(ytfirefox制作) 犇向牛年(尚美制作)

发表于 2018-5-29 01:48:43 | 显示全部楼层
感谢分享!!
[发帖际遇]: vaveca绑架维纶,向他的基友基尔加丹勒索,获得29 金币. 幸运榜 / 衰神榜
回复

使用道具 举报

3402

时沙

62

精华

158

主题

声望: 48772   虚弱: 0

管理员

🔶收集癖,你懂的🔶

万神殿uiwow(lulus制)信仰战假死猎人今天也只能打恢复的增强萨跑路骑士吟游牧师孝顺骑士潜行者登山猎手划水武僧搓水法爷卖糖术神圣光永恒炉石祖国万岁!!积少成多奥的灰烬时沙之瓶炉石天马比格沃斯先生无敌的缰绳黑色宝石猎豹脚男奔波尔菠萝雷施小咕无冕者希尔瓦娜斯·风行者伊利丹·怒风泰兰德·语风莉莉安·沃斯泰坦之握荣耀属于联盟!为了部落!银色北伐军瓦兰纳尔·远古王者之锤金鸡报晓Doge哼哼(lulus制作)金鼠(ytfirefox制作) 犇向牛年(尚美制作)福虎贺岁(尚美制作)金兔迎春(尚美制作)祥龙贺岁(尚美制作)灵蛇献瑞(尚美制作)烈焰星驰(尚美制作)

 楼主| 发表于 2018-5-29 09:26:32 发表自手机触屏版 | 显示全部楼层
tbick 发表于 2018-5-27 21:48
大哥,就是你的,名字我自己改的。
print(">>Script: QuestStateSystem   (rewrite by ayase 2018.1.29) ...

这个脚本一共180多行代码
而你的报错行数是209

另外这个脚本没有任何问题
回复

使用道具 举报

头像被屏蔽

104

时沙

0

精华

4

主题

声望: 79   虚弱: 11

禁言

炉石瓦格里的标记

发表于 2018-5-29 11:13:58 | 显示全部楼层
ayase 发表于 2018-5-29 09:26
这个脚本一共180多行代码
而你的报错行数是209

我想你误会了,我不是说你有问题
我是想问问我的问题怎么解决呢,我是直接复制你的代码的,
print(">>Script: QuestStateSystem   (rewrite by ayase 2018.1.29)..")



local STATE = {}

STATE.Config = {

itemEntry = 1180,   --物品id,需要那些可以点击使用的物品,比如炉石之类的

questToStateRate = 5, --每个任务提供多少点自由属性



ResetItemEntry = 4536, --重置加点所需要的物品材料

ResetItemCount = 1, --重置加点所需要的物品数量

}



STATE.core = {{"力量",7780},{"敏捷",7778},{"耐力",7455},{"智力",7792},{"精神",7456},}



STATE.PlayerData = {}



function Player:SetState(t,v)

    if v < 0 then v = 0 end

    local pGUID = self:GetGUIDLow()

    local s = STATE.core[zxsq-anti-bbcode-t][zxsq-anti-bbcode-2]

    STATE.PlayerData[zxsq-anti-bbcode-pGUID][zxsq-anti-bbcode-t] = v

    self:RemoveAura(s)

    if v ~= 0 then

        self:CastCustomSpell(self,s,true,v)

    end

end



function Player:GetState(t)

    local pGUID = self:GetGUIDLow()

    if (STATE.PlayerData[zxsq-anti-bbcode-pGUID][zxsq-anti-bbcode-t]~=nil) then

        return STATE.PlayerData[zxsq-anti-bbcode-pGUID][zxsq-anti-bbcode-t]

    end

end



function Player:AddStat(t,v)

    if v == nil then v = 1 end

    STATE.PlayerData[zxsq-anti-bbcode-self:GetGUIDLow()][zxsq-anti-bbcode-t] = self:GetState(t) + v

end



function Player:GetQuestCount()

    local pGUID = self:GetGUIDLow()

    return STATE.PlayerData[zxsq-anti-bbcode-pGUID].questCount

end



function Player:QueryQuestCount()

    self:SaveToDB()

    local pGUID = self:GetGUIDLow()

    local query = CharDBQuery("SELECT counter FROM character_achievement_progress WHERE criteria=3631 and guid="..pGUID.." LIMIT 1")

    if query then

        return query:GetUInt32(0)

    end

    return 0

end



function Player:GetUsePoints()

    local usePoints = 0

    for i=1,5 do

        usePoints = usePoints + self:GetState(i)

    end

    return usePoints

end



function Player:GetPoints()

    return math.floor(self:GetQuestCount()*STATE.Config.questToStateRate) - self:GetUsePoints()

end



function Player:ResetState()

    for i=1,5 do

        self:SetState(i,0)

    end

    self:SaveState()

end



function Player:SaveState()

    CharDBExecute(string.format("REPLACE INTO character_Quest_State_System (Guid,Strength,Agility,Stamina,Intelligence,Spirit) values (%s,%s,%s,%s,%s,%s)",

    self:GetGUIDLow(),self:GetState(1),self:GetState(2),self:GetState(3),self:GetState(4),self:GetState(5)))

end



function STATE.ItemOnUse(event, player, item)

    if (STATE.PlayerData[zxsq-anti-bbcode-player:GetGUIDLow()]==nil) then

        STATE.Onlogin(event, player)

    end

    STATE.GossipHello(event, player, item)

end



function STATE.GossipHello(event, player, item)

    player:GossipClearMenu()

    player:GossipMenuAddItem(1,string.format("每个任务将获取%s点潜力点数。( |cFFA50000%s|r \\ |cFF006699%s|r )",

    STATE.Config.questToStateRate,player:GetPoints(),math.floor(player:GetQuestCount()*STATE.Config.questToStateRate)),

    0,0,false,"点击确认将重置未保存的加点数据!")

   

    for i = 1,5 do

        player:GossipMenuAddItem(3,">>  "..STATE.core[zxsq-anti-bbcode-i][zxsq-anti-bbcode-1].." + |cFF006699"..player:GetState(i).."|r",0,i)

    end

    if (player:GetUsePoints() > 0) then

        player:GossipMenuAddItem(4,"保存",0,998,false,"确定保存吗?")

        player:GossipMenuAddItem(2,"重置加点分配",0,999,false,"确定重置吗?\n\n需要消耗:"..GetItemLink(STATE.Config.ResetItemEntry).." x "..STATE.Config.ResetItemCount)

    end

    player:GossipSendMenu(100, item)

    return false

end



function STATE.Onlogin(event, player)

    local pGUID = player:GetGUIDLow()

    local query = CharDBQuery("SELECT Guid,Strength,Agility,Stamina,Intelligence,Spirit FROM character_Quest_State_System WHERE guid="..pGUID)

    STATE.PlayerData[zxsq-anti-bbcode-pGUID] = {0,0,0,0,0,questCount = 0}

    if(query) then

        repeat

            for i=1,5 do

                STATE.PlayerData[zxsq-anti-bbcode-pGUID][zxsq-anti-bbcode-i] = query:GetUInt32(i)

                player:SetState(i,player:GetState(i))

            end

        until not query:NextRow()

    else

        for i=1,5 do

            STATE.PlayerData[zxsq-anti-bbcode-pGUID][zxsq-anti-bbcode-i] = 0

        end

    end

    STATE.PlayerData[zxsq-anti-bbcode-pGUID].questCount = player:QueryQuestCount()

end



function STATE.GossipSelect(event, player, item, sender, intid)

    if intid == 0 then

        STATE.Onlogin(event, player)

        STATE.GossipHello(event, player, item)

        return

    end

   

    if intid == 999 then

        if (player:GetState(1) + player:GetState(2) + player:GetState(3) + player:GetState(4) + player:GetState(5)) <= 0 then

            player:SendBroadcastMessage("你当前并未加点,无需重置。")

        else

            if player:HasItem(STATE.Config.ResetItemEntry,STATE.Config.ResetItemCount) then   

                player:RemoveItem(STATE.Config.ResetItemEntry,STATE.Config.ResetItemCount)

                player:ResetState()

                player:SendBroadcastMessage("重置完毕~~~~")

            else

                player:SendBroadcastMessage("重置失败,缺少"..GetItemLink(STATE.Config.ResetItemEntry).." x "..STATE.Config.ResetItemCount)

            end

        end

        STATE.GossipHello(event, player, item)

        return

    end

   

    if intid == 998 then

        for i = 1,5 do

            player:SetState(i,player:GetState(i))

        end

        player:SaveState()

        STATE.GossipHello(event, player, item)

        return

    end

   

    if (intid >= 1 and intid <= 5) then

        if player:GetPoints() <= 0 then

            player:SendBroadcastMessage("剩余潜能点数不足,请继续完成任务吧~")

            STATE.GossipHello(event, player, item)

            return

        end

        player:AddStat(intid,1)

        STATE.GossipHello(event, player, item)

    end

end



CharDBExecute([[

CREATE TABLE IF NOT EXISTS `character_Quest_State_System` (   

  `guid` int(11) NOT NULL,

  `Strength` int(11) NOT NULL DEFAULT '0',

  `Agility` int(11) NOT NULL DEFAULT '0',

  `Stamina` int(11) NOT NULL DEFAULT '0',

  `Intelligence` int(11) NOT NULL DEFAULT '0',

  `Spirit` int(11) NOT NULL DEFAULT '0',

  PRIMARY KEY (`guid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

]])



RegisterPlayerEvent(3, STATE.Onlogin)

RegisterItemGossipEvent(STATE.Config.itemEntry, 1, STATE.ItemOnUse)
回复

使用道具 举报

头像被屏蔽

104

时沙

0

精华

4

主题

声望: 79   虚弱: 11

禁言

炉石瓦格里的标记

发表于 2018-5-29 11:19:37 | 显示全部楼层
以上是我复制的, 麻烦大大看下弄没弄错了,然后我直接文件夹就叫QuestStateSystem.lua
我开始是添加新炉石来用的,结果没成功,改成卷轴也不行。
回复

使用道具 举报

头像被屏蔽

104

时沙

0

精华

4

主题

声望: 79   虚弱: 11

禁言

炉石瓦格里的标记

发表于 2018-5-29 11:20:36 | 显示全部楼层
tbick 发表于 2018-5-29 11:13
我想你误会了,我不是说你有问题
我是想问问我的问题怎么解决呢,我是直接复制你的代码的,
print(">>Scr ...

请指点下我哪里弄错了
回复

使用道具 举报

3402

时沙

62

精华

158

主题

声望: 48772   虚弱: 0

管理员

🔶收集癖,你懂的🔶

万神殿uiwow(lulus制)信仰战假死猎人今天也只能打恢复的增强萨跑路骑士吟游牧师孝顺骑士潜行者登山猎手划水武僧搓水法爷卖糖术神圣光永恒炉石祖国万岁!!积少成多奥的灰烬时沙之瓶炉石天马比格沃斯先生无敌的缰绳黑色宝石猎豹脚男奔波尔菠萝雷施小咕无冕者希尔瓦娜斯·风行者伊利丹·怒风泰兰德·语风莉莉安·沃斯泰坦之握荣耀属于联盟!为了部落!银色北伐军瓦兰纳尔·远古王者之锤金鸡报晓Doge哼哼(lulus制作)金鼠(ytfirefox制作) 犇向牛年(尚美制作)福虎贺岁(尚美制作)金兔迎春(尚美制作)祥龙贺岁(尚美制作)灵蛇献瑞(尚美制作)烈焰星驰(尚美制作)

 楼主| 发表于 2018-5-29 12:23:28 发表自手机触屏版 | 显示全部楼层
tbick 发表于 2018-5-29 11:20
请指点下我哪里弄错了

所以你的209行为什么变成这样了呢?
STATE.PlayerData[zxsq-anti-bbcode-pGUID] = {0,0,0,0,0,questCount = 0}
你自己再去对比下我发的是不是像这样的
回复

使用道具 举报

259

时沙

0

精华

0

主题

声望: 121   虚弱: 5

Lv.1(追随者)

炉石银色北伐军假死猎人

发表于 2018-5-31 18:42:57 | 显示全部楼层
kanyiha duoxie
回复

使用道具 举报

发表于 2018-5-31 22:21:40 | 显示全部楼层
啦啦啦啦  学习学习~~~``
回复

使用道具 举报

快速回复 返回顶部 返回列表