Postado Junho 20, 2015 10 anos Estou com um problema no archievements, quando faço a quest ou adicono os pontos pela talkactions da esse erro. Estou usando tfs 1.2, e sei que tem funções que não funcionam. Mais posso usar o que para subistituir? talkaction. function onSay(player, words, param) if words == "/addach" then local p = param:split(",") if not p[2] then return player:sendCancelMessage("Insufficient parameters.") end local target = Player(p[1]) local action = p[2] if not target then return player:sendCancelMessage("A player with that name is not online.") end if action == "all" then return target:addAllAchievements(true) end --add all achievements local ach = (isNumber(action) and tonumber(action) or action) target:addAchievement(ach, true) return true end if words == "/removeach" then local p = param:split(",") if not p[2] then return player:sendCancelMessage("Insufficient parameters.") end local target = Player(p[1]) local action = p[2] if not target then return player:sendCancelMessage("A player with that name is not online.") end if action == "all" then return target:removeAllAchievements() end --remove all achievements local ach = (isNumber(action) and tonumber(action) or action) target:removeAchievement(ach) return true end return false end Editado Junho 20, 2015 10 anos por pedrook (veja o histórico de edições)
Postado Junho 20, 2015 10 anos Estou com um problema no archievements, quando faço a quest ou adicono os pontos pela talkactions da esse erro. Estou usando tfs 1.2, e sei que tem funções que não funcionam. Mais posso usar o que para subistituir? talkaction. function onSay(player, words, param) if words == "/addach" then local p = param:split(",") if not p[2] then return player:sendCancelMessage("Insufficient parameters.") end local target = Player(p[1]) local action = p[2] if not target then return player:sendCancelMessage("A player with that name is not online.") end if action == "all" then return target:addAllAchievements(true) end --add all achievements local ach = (isNumber(action) and tonumber(action) or action) target:addAchievement(ach, true) return true end if words == "/removeach" then local p = param:split(",") if not p[2] then return player:sendCancelMessage("Insufficient parameters.") end local target = Player(p[1]) local action = p[2] if not target then return player:sendCancelMessage("A player with that name is not online.") end if action == "all" then return target:removeAllAchievements() end --remove all achievements local ach = (isNumber(action) and tonumber(action) or action) target:removeAchievement(ach) return true end return false end criar um lua lá na pasta lib e add ACHIEVEMENTSPOINTS_BASE = "achievement_points" achievements = { [1] = {name = "Afraid of no Ghost!", grade = 1, points = 2, secret = false}, [2] = {name = "Allow Cookies?", grade = 1, points = 2, secret = false}, [3] = {name = "Allowance Collector", grade = 1, points = 2, secret = true}, [4] = {name = "Amateur Actor", grade = 1, points = 2, secret = false}, [5] = {name = "Animal Activist", grade = 1, points = 2, secret = false}, [6] = {name = "Arachnoise", grade = 1, points = 1, secret = false}, [7] = {name = "Archpostman", grade = 1, points = 3, secret = false}, [8] = {name = "Askarak Nemesis", grade = 1, points = 1, secret = true}, [9] = {name = "Baby Sitter", grade = 1, points = 1, secret = true}, [10] = {name = "Back from the Dead", grade = 1, points = 2, secret = false}, [11] = {name = "Back into the Abyss", grade = 1, points = 1, secret = false}, [12] = {name = "Backpack Tourist", grade = 1, points = 1, secret = true}, [13] = {name = "Bad Timing", grade = 1, points = 2, secret = true}, [14] = {name = "Bane of the Hive", grade = 1, points = 2, secret = false}, [15] = {name = "Banebringers' Bane", grade = 1, points = 2, secret = true}, [16] = {name = "Beach Tamer", grade = 1, points = 2, secret = false}, [17] = {name = "Bearhugger", grade = 1, points = 1, secret = false}, [18] = {name = "Beautiful Agony", grade = 1, points = 2, secret = false}, [19] = {name = "Berserker", grade = 1, points = 3, secret = false}, [20] = {name = "King of the Ring", grade = 1, points = 2, secret = false}, [21] = {name = "Blessed!", grade = 1, points = 2, secret = false}, [22] = {name = "Blood-Red Snapper", grade = 1, points = 1, secret = false}, [23] = {name = "Bluebarian", grade = 1, points = 2, secret = true}, [24] = {name = "Bone Brother", grade = 1, points = 1, secret = false}, [25] = {name = "Breaking the Ice", grade = 1, points = 1, secret = false}, [26] = {name = "Bunny Slipped", grade = 1, points = 2, secret = true}, [27] = {name = "Cake Conqueror", grade = 1, points = 1, secret = true}, [28] = {name = "Chest Robber", grade = 1, points = 1, secret = false}, [29] = {name = "Choking on Her Venom", grade = 1, points = 1, secret = false}, [30] = {name = "Chorister", grade = 1, points = 1, secret = false}, [31] = {name = "Clay Fighter", grade = 1, points = 3, secret = true}, [32] = {name = "Coccon of Doom", grade = 1, points = 3, secret = true}, [33] = {name = "Commitment Phobic", grade = 1, points = 2, secret = true}, [34] = {name = "Confusion", grade = 1, points = 0, secret = false}, [35] = {name = "Cookie Monster", grade = 1, points = 1, secret = true}, [36] = {name = "Crawling Death", grade = 1, points = 1, secret = false}, [37] = {name = "Cursed!", grade = 1, points = 3, secret = true}, [38] = {name = "Daring Trespasser", grade = 1, points = 3, secret = true}, [39] = {name = "Dark Voodoo Priest", grade = 1, points = 2, secret = true}, [40] = {name = "Dazzler", grade = 1, points = 3, secret = false}, [41] = {name = "Death Song", grade = 1, points = 3, secret = false}, [42] = {name = "Deer Hunt", grade = 1, points = 1, secret = true}, [43] = {name = "Demonic Barkeeper", grade = 1, points = 3, secret = false}, [44] = {name = "Depth Dwellers", grade = 1, points = 3, secret = false}, [45] = {name = "Desert Fisher", grade = 1, points = 1, secret = false}, [46] = {name = "Do not Disturb", grade = 1, points = 1, secret = true}, [47] = {name = "Doctor! Doctor!", grade = 1, points = 2, secret = true}, [48] = {name = "Dog Slitter", grade = 1, points = 1, secret = false}, [49] = {name = "Down the Drain", grade = 1, points = 2, secret = false}, [50] = {name = "Dream's Over", grade = 1, points = 1, secret = false}, [51] = {name = "Efreet Ally", grade = 1, points = 3, secret = false}, [52] = {name = "Enter zze Draken!", grade = 1, points = 2, secret = false}, [53] = {name = "Exquisite Taste", grade = 1, points = 2, secret = false}, [54] = {name = "Extreme Degustation", grade = 1, points = 2, secret = true}, [55] = {name = "Eye of the Deep", grade = 1, points = 1, secret = true}, [56] = {name = "Fire Devil", grade = 1, points = 3, secret = true}, [57] = {name = "Fire from the Earth", grade = 1, points = 2, secret = false}, [58] = {name = "Fire Lighter", grade = 1, points = 1, secret = true}, [59] = {name = "Firefighter", grade = 1, points = 2, secret = true}, [60] = {name = "Fireworks in the Sky", grade = 1, points = 2, secret = true}, [61] = {name = "Fool at Heart", grade = 1, points = 3, secret = false}, [62] = {name = "Fountain of Life", grade = 1, points = 1, secret = true}, [63] = {name = "Free Items!", grade = 1, points = 3, secret = true}, [64] = {name = "Gatherer", grade = 1, points = 2, secret = false}, [65] = {name = "Gem Cutter", grade = 1, points = 1, secret = true}, [66] = {name = "Ghost Sailor", grade = 1, points = 1, secret = true}, [67] = {name = "Ghostwhisperer", grade = 1, points = 3, secret = false}, [68] = {name = "Greenhorn", grade = 1, points = 2, secret = false}, [69] = {name = "Guard Killer", grade = 1, points = 2, secret = false}, [70] = {name = "Guinea Pig", grade = 1, points = 2, secret = false}, [71] = {name = "Happy Farmer", grade = 1, points = 1, secret = true}, [72] = {name = "Headache", grade = 1, points = 2, secret = false}, [73] = {name = "Heartburn", grade = 1, points = 3, secret = false}, [74] = {name = "Here, Fishy Fishy!", grade = 1, points = 1, secret = true}, [75] = {name = "Hickup", grade = 1, points = 2, secret = false}, [76] = {name = "Hidden Powers", grade = 1, points = 2, secret = false}, [77] = {name = "His True Face", grade = 1, points = 3, secret = true}, [78] = {name = "Hissing Downfall", grade = 1, points = 2, secret = false}, [79] = {name = "Hive Fighter", grade = 1, points = 1, secret = false}, [80] = {name = "Hive Infiltrator", grade = 1, points = 3, secret = false}, [81] = {name = "Hive War Veteran", grade = 1, points = 1, secret = false}, [82] = {name = "Homebrewed", grade = 1, points = 1, secret = true}, [83] = {name = "Honest Finder", grade = 1, points = 1, secret = false}, [84] = {name = "Honorary Barbarian", grade = 1, points = 1, secret = false}, [85] = {name = "Howly Silence", grade = 1, points = 1, secret = false}, [86] = {name = "Huntsman", grade = 1, points = 2, secret = false}, [87] = {name = "I Did My Part", grade = 1, points = 2, secret = true}, [88] = {name = "I Like it Fancy", grade = 1, points = 1, secret = true}, [89] = {name = "I Need a Hug", grade = 1, points = 2, secret = false}, [90] = {name = "Ice Harvester", grade = 1, points = 1, secret = false}, [91] = {name = "Ice Sculptor", grade = 1, points = 3, secret = true}, [92] = {name = "Invader of the Deep", grade = 1, points = 2, secret = true}, [93] = {name = "Jinx", grade = 1, points = 2, secret = true}, [94] = {name = "Joke's on You", grade = 1, points = 1, secret = true}, [95] = {name = "Just Cracked Me Up!", grade = 1, points = 2, secret = false}, [96] = {name = "Just in Time", grade = 1, points = 1, secret = false}, [97] = {name = "Kapow!", grade = 1, points = 1, secret = false}, [98] = {name = "Keeper of the Flame", grade = 1, points = 2, secret = true}, [99] = {name = "King Tibianus Fan", grade = 1, points = 3, secret = false}, [100] = {name = "Let the Sunshine In", grade = 1, points = 1, secret = true}, [101] = {name = "Loyal Subject", grade = 1, points = 1, secret = true}, [102] = {name = "Lucid Dreamer", grade = 1, points = 2, secret = false}, [103] = {name = "Mageslayer", grade = 1, points = 1, secret = true}, [104] = {name = "Make a Wish", grade = 1, points = 1, secret = true}, [105] = {name = "Marbeleous", grade = 1, points = 3, secret = true}, [106] = {name = "Marid Ally", grade = 1, points = 3, secret = false}, [107] = {name = "Masquerader", grade = 1, points = 3, secret = true}, [108] = {name = "Master Shapeshifter", grade = 1, points = 2, secret = true}, [109] = {name = "Mastermind", grade = 1, points = 3, secret = false}, [110] = {name = "Matchmaker", grade = 1, points = 1, secret = false}, [111] = {name = "Mathemagician", grade = 1, points = 1, secret = false}, [112] = {name = "Meat Skewer", grade = 1, points = 1, secret = false}, [113] = {name = "Merry Adventures", grade = 1, points = 2, secret = false}, [114] = {name = "Ministrel", grade = 1, points = 2, secret = true}, [115] = {name = "Minor Disturbance", grade = 1, points = 2, secret = false}, [116] = {name = "Mister Sandman", grade = 1, points = 2, secret = true}, [117] = {name = "Modest Guest", grade = 1, points = 1, secret = true}, [118] = {name = "Mutated Presents", grade = 1, points = 1, secret = true}, [119] = {name = "Natural Born Cowboy", grade = 1, points = 1, secret = true}, [120] = {name = "Natural Sweetener", grade = 1, points = 1, secret = true}, [121] = {name = "Nether Pirate", grade = 1, points = 3, secret = true}, [122] = {name = "Nightmare Knight", grade = 1, points = 1, secret = false}, [123] = {name = "No More Hiding", grade = 1, points = 1, secret = false}, [124] = {name = "Nomad Soul", grade = 1, points = 2, secret = true}, [125] = {name = "Nothing Can Stop Me", grade = 1, points = 1, secret = true}, [126] = {name = "Number of the Beast", grade = 1, points = 2, secret = false}, [127] = {name = "One Less", grade = 1, points = 2, secret = false}, [128] = {name = "Oops", grade = 1, points = 2, secret = true}, [129] = {name = "Party Animal", grade = 1, points = 1, secret = true}, [130] = {name = "Passionate Kisser", grade = 1, points = 3, secret = false}, [131] = {name = "Perfect Fool", grade = 1, points = 3, secret = false}, [132] = {name = "Petrologist", grade = 1, points = 2, secret = true}, [133] = {name = "Piece of Cake", grade = 1, points = 1, secret = false}, [134] = {name = "Pimple", grade = 1, points = 3, secret = false}, [135] = {name = "Planter", grade = 1, points = 2, secret = false}, [136] = {name = "Poet Laureate", grade = 1, points = 2, secret = true}, [137] = {name = "Preservationist", grade = 1, points = 1, secret = true}, [138] = {name = "Quick as a Turtle", grade = 1, points = 2, secret = true}, [139] = {name = "Recognised Trader", grade = 1, points = 3, secret = false}, [140] = {name = "Rock Me to Sleep", grade = 1, points = 1, secret = true}, [141] = {name = "Rocket in Pocket", grade = 1, points = 1, secret = true}, [142] = {name = "Rockstar", grade = 1, points = 3, secret = true}, [143] = {name = "Rollercoaster", grade = 1, points = 1, secret = false}, [144] = {name = "Rootless Behaviour", grade = 1, points = 1, secret = false}, [145] = {name = "Safely Stored Away", grade = 1, points = 2, secret = true}, [146] = {name = "Santa's Li'l Helper", grade = 1, points = 2, secret = true}, [147] = {name = "Scorched Flames", grade = 1, points = 1, secret = false}, [148] = {name = "Scrapper", grade = 1, points = 3, secret = false}, [149] = {name = "Sea Scout", grade = 1, points = 2, secret = false}, [150] = {name = "Secret Agent", grade = 1, points = 1, secret = false}, [151] = {name = "Shaburak Nemesis", grade = 1, points = 1, secret = true}, [152] = {name = "Sharpshooter", grade = 1, points = 3, secret = false}, [153] = {name = "Si, Ariki!", grade = 1, points = 1, secret = false}, [154] = {name = "Shell Seeker", grade = 1, points = 3, secret = true}, [155] = {name = "Silent Pet", grade = 1, points = 1, secret = true}, [156] = {name = "Slayer of Anmothra", grade = 1, points = 2, secret = true}, [157] = {name = "Slayer of Chikhaton", grade = 1, points = 2, secret = true}, [158] = {name = "Slayer of Irahsae", grade = 1, points = 2, secret = true}, [159] = {name = "Slayer of Phrodomo", grade = 1, points = 2, secret = true}, [160] = {name = "Slayer of Teneshpar", grade = 1, points = 2, secret = true}, [161] = {name = "Slim Chance", grade = 1, points = 1, secret = false}, [162] = {name = "Slimer", grade = 1, points = 1, secret = true}, [163] = {name = "Snowbunny", grade = 1, points = 2, secret = true}, [164] = {name = "Someone's Bored", grade = 1, points = 1, secret = true}, [165] = {name = "Something Smells", grade = 1, points = 1, secret = false}, [166] = {name = "Something's in There", grade = 1, points = 1, secret = true}, [167] = {name = "Spareribs for Dinner", grade = 1, points = 1, secret = false}, [168] = {name = "Spectral Traveler", grade = 1, points = 2, secret = true}, [169] = {name = "Steampunked", grade = 1, points = 2, secret = true}, [170] = {name = "Stepped on a Big Toe", grade = 1, points = 1, secret = false}, [171] = {name = "Supersitious", grade = 1, points = 2, secret = true}, [172] = {name = "Supplier", grade = 1, points = 3, secret = false}, [173] = {name = "Sweet Tooth", grade = 1, points = 2, secret = true}, [174] = {name = "Talented Dancer", grade = 1, points = 1, secret = false}, [175] = {name = "Teamplayer", grade = 1, points = 2, secret = true}, [176] = {name = "Territorial", grade = 1, points = 1, secret = true}, [177] = {name = "The Cake's the Truth", grade = 1, points = 1, secret = true}, [178] = {name = "The Day After", grade = 1, points = 2, secret = true}, [179] = {name = "The Drowned Sea God", grade = 1, points = 2, secret = false}, [180] = {name = "The Milkman", grade = 1, points = 2, secret = false}, [181] = {name = "The Serpent's Bride", grade = 1, points = 2, secret = false}, [182] = {name = "The Undertaker", grade = 1, points = 2, secret = true}, [183] = {name = "Torn Treasures", grade = 1, points = 1, secret = true}, [184] = {name = "Trail of the Ape God", grade = 1, points = 1, secret = true}, [185] = {name = "True Colors", grade = 1, points = 3, secret = true}, [186] = {name = "Truth Be Told", grade = 1, points = 2, secret = true}, [187] = {name = "Twisted Mutation", grade = 1, points = 1, secret = false}, [188] = {name = "Vanity", grade = 1, points = 3, secret = true}, [189] = {name = "Vive la Resistance", grade = 1, points = 2, secret = false}, [190] = {name = "Wayfarer", grade = 1, points = 3, secret = true}, [191] = {name = "Whistle-Blower", grade = 1, points = 1, secret = true}, [192] = {name = "Witches Lil' Helper", grade = 1, points = 1, secret = true}, [193] = {name = "With a Cherry on Top", grade = 1, points = 1, secret = true}, [194] = {name = "Worm Whacker", grade = 1, points = 1, secret = true}, [195] = {name = "Yalahari of Power", grade = 1, points = 3, secret = false}, [196] = {name = "Yalahari of Wisdom", grade = 1, points = 3, secret = false}, [197] = {name = "You Don't Know Jack", grade = 1, points = 2, secret = true}, [198] = {name = "Zzztill Zzztanding!", grade = 1, points = 1, secret = false}, [199] = {name = "Alumni", grade = 2, points = 6, secret = false}, [200] = {name = "Annihilator", grade = 2, points = 5, secret = false}, [201] = {name = "Aristocrat", grade = 2, points = 4, secret = false}, [202] = {name = "Ashes to Dust", grade = 2, points = 4, secret = true}, [203] = {name = "Beak Doctor", grade = 2, points = 4, secret = false}, [204] = {name = "Brutal Politeness", grade = 2, points = 6, secret = false}, [205] = {name = "Castlemania", grade = 2, points = 5, secret = true}, [206] = {name = "Champion of Chazorai", grade = 2, points = 4, secret = false}, [207] = {name = "Chistin Bane", grade = 2, points = 5, secret = false}, [208] = {name = "Clay to Fame", grade = 2, points = 4, secret = true}, [209] = {name = "Culinary Master", grade = 2, points = 4, secret = false}, [210] = {name = "Deep Sea Diver", grade = 2, points = 4, secret = true}, [211] = {name = "Demonbane", grade = 2, points = 6, secret = false}, [212] = {name = "Devovorga's Nemesis", grade = 2, points = 5, secret = true}, [213] = {name = "Elite Hunter", points = 5, secret = false}, [214] = {name = "Exemplary Citizen", grade = 2, points = 4, secret = false}, [215] = {name = "Explorer", grade = 2, points = 4, secret = false}, [216] = {name = "Exterminator", grade = 2, points = 0, secret = false}, [217] = {name = "Follower of Azerus", grade = 2, points = 4, secret = false}, [218] = {name = "Follower of Palimuth", grade = 2, points = 4, secret = false}, [219] = {name = "Friend of the Apes", grade = 2, points = 4, secret = false}, [220] = {name = "Godslayer", grade = 2, points = 4, secret = false}, [221] = {name = "Gold Digger", points = 4, secret = true}, [222] = {name = "Golem in the Gears", grade = 2, points = 4, secret = false}, [223] = {name = "Green Thumb", grade = 2, points = 4, secret = true}, [224] = {name = "Guardian Downfall", grade = 2, points = 4, secret = false}, [225] = {name = "High Inquisitor", grade = 2, points = 5, secret = false}, [226] = {name = "High-Flyer", grade = 2, points = 4, secret = true}, [227] = {name = "Hive Blinder", grade = 2, points = 4, secret = false}, [228] = {name = "Honorary Witch", grade = 2, points = 4, secret = true}, [229] = {name = "Hunting with Style", grade = 2, points = 6, secret = false}, [230] = {name = "In Shining Armor", grade = 2, points = 6, secret = false}, [231] = {name = "Interior Decorator", grade = 2, points = 4, secret = true}, [232] = {name = "Jamjam", grade = 2, points = 5, secret = true}, [233] = {name = "Life on the Streets", grade = 2, points = 4, secret = false}, [234] = {name = "Lord of the Elements", grade = 2, points = 5, secret = false}, [235] = {name = "Lucky Devil", grade = 2, points = 4, secret = true}, [236] = {name = "Manic", grade = 2, points = 0, secret = false}, [237] = {name = "Marble Madness", grade = 2, points = 6, secret = true}, [238] = {name = "Master of the Nexus", grade = 2, points = 6, secret = false}, [239] = {name = "Master of War", grade = 2, points = 6, secret = false}, [240] = {name = "Master Thief", grade = 2, points = 4, secret = false}, [241] = {name = "Mystic Fabric Magic", grade = 2, points = 0, secret = false}, [242] = {name = "Navigational Error", grade = 2, points = 5, secret = true}, [243] = {name = "Nightmare Walker", grade = 2, points = 6, secret = false}, [244] = {name = "Of Wolves and Bears", grade = 2, points = 6, secret = false}, [245] = {name = "One Thousand and One", grade = 2, points = 6, secret = false}, [246] = {name = "Out in the Snowstorm", grade = 2, points = 4, secret = false}, [247] = {name = "Peazzekeeper", grade = 2, points = 6, secret = false}, [248] = {name = "Polisher", grade = 2, points = 4, secret = true}, [249] = {name = "Potion Addict", grade = 2, points = 4, secret = true}, [250] = {name = "Ritualist", grade = 2, points = 6, secret = false}, [251] = {name = "Ruthless", grade = 2, points = 5, secret = false}, [252] = {name = "Scourge of Death", grade = 2, points = 5, secret = true}, [253] = {name = "Ship's Kobold", grade = 2, points = 4, secret = true}, [254] = {name = "Skin-Deep", grade = 2, points = 4, secret = true}, [255] = {name = "Skull and Bones", grade = 2, points = 6, secret = false}, [256] = {name = "Spolium Profundis", grade = 2, points = 4, secret = false}, [257] = {name = "Stomach Ulcer", grade = 2, points = 4, secret = false}, [258] = {name = "Suppressor", grade = 2, points = 4, secret = false}, [259] = {name = "Swashbuckler", grade = 2, points = 6, secret = false}, [260] = {name = "Swift Death", grade = 2, points = 6, secret = false}, [261] = {name = "Top AVIN Agent", grade = 2, points = 4, secret = false}, [262] = {name = "Top CGB Agent", grade = 2, points = 4, secret = false}, [263] = {name = "Top TBI Agent", grade = 2, points = 4, secret = false}, [264] = {name = "True Lightbearer", grade = 2, points = 5, secret = true}, [265] = {name = "Turncoat", grade = 2, points = 4, secret = true}, [266] = {name = "Warlock", grade = 2, points = 6, secret = false}, [267] = {name = "Warlord of Svargrond", grade = 2, points = 5, secret = false}, [268] = {name = "Way of the Shaman", grade = 2, points = 6, secret = false}, [269] = {name = "Wild Warrior", grade = 2, points = 6, secret = false}, [270] = {name = "Dead Lord", grade = 3, points = 8, secret = true}, [271] = {name = "Herbicide", grade = 3, points = 8, secret = true}, [272] = {name = "Lord Protector", grade = 3, points = 8, secret = true}, [273] = {name = "Pwned a Lot of Fur", grade = 3, points = 8, secret = true}, [274] = {name = "Pwned All Fur", grade = 3, points = 8, secret = true}, [275] = {name = "Razing!", grade = 3, points = 7, secret = true} } ACHIEVEMENT_FIRST = 1 ACHIEVEMENT_LAST = #achievements function getAchievementInfoById(id) for k, v in pairs(achievements) do if k == id then local t = {} t.id = k for inf, it in pairs(v) do t[inf] = it end return t end end return false end function getAchievementInfoByName(name) for k, v in pairs(achievements) do if v.name:lower() == name:lower() then local t = {} t.id = k for inf, it in pairs(v) do t[inf] = it end return t end end return false end function getSecretAchievements() local t = {} for k, v in pairs(achievements) do if v.secret then table.insert(t, k) end end return t end function getPublicAchievements() local t = {} for k, v in ipairs(achivements) do if not v.secret then table.insert(t, k) end end return t end function doPlayerAddAchievement(cid, ach, showMsg) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end if not hasAchievement(cid, achievement.id) then doCreatureSetStorage(cid, achievement.name:lower(), 1) if getCreatureStorage(cid, ACHIEVEMENTSPOINTS_BASE) < 0 then doCreatureSetStorage(cid, ACHIEVEMENTSPOINTS_BASE, 0) end doCreatureSetStorage(cid, ACHIEVEMENTSPOINTS_BASE, getCreatureStorage(cid, ACHIEVEMENTSPOINTS_BASE) + achievement.points) if showMsg then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Congratulations! You earned the achievement \"" .. achievement.name .. "\".") end end return true end function doPlayerRemoveAchievement(cid, ach) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end if hasAchievement(cid, achievement.id) then doCreatureSetStorage(cid, achievement.name:lower(), 0) doCreatureSetStorage(cid, ACHIEVEMENTSPOINTS_BASE, getCreatureStorage(cid, ACHIEVEMENTSPOINTS_BASE) - achievement.points) end return true end function hasAchievement(cid, ach) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end if getCreatureStorage(cid, achievement.name:lower()) > 0 then return true end return false end function doPlayerAddAllAchievements(cid, showMsg) for k, v in pairs(achievements) do if not hasAchievement(cid, k) then doPlayerAddAchievement(cid, k, showMsg) end end return true end function doPlayerRemoveAllAchievements(cid) for k, v in pairs(achievements) do if hasAchievement(cid, k) then doPlayerRemoveAchievement(cid, k) end end return true end function getPlayerSecretAchievements(cid) local t = {} for k, v in pairs(achievements) do if hasAchievement(cid, k) and v.secret then table.insert(t, k) end end return t end function getPlayerPublicAchievements(cid) local t = {} for k, v in pairs(achievements) do if hasAchievement(cid, k) and not v.secret then table.insert(t, k) end end return t end function getPlayerAchievements(cid) local t = {} for k, v in pairs(achievements) do if hasAchievement(cid, k) then table.insert(t, k) end end return t end function isAchievementSecret(ach) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end return achievement.secret end Editado Junho 20, 2015 10 anos por alexxxxxxx (veja o histórico de edições) Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código. #OpenSource #Programação #Contribuição
Postado Junho 21, 2015 10 anos Autor criar um lua lá na pasta lib e add ACHIEVEMENTSPOINTS_BASE = "achievement_points" achievements = { [1] = {name = "Afraid of no Ghost!", grade = 1, points = 2, secret = false}, [2] = {name = "Allow Cookies?", grade = 1, points = 2, secret = false}, [3] = {name = "Allowance Collector", grade = 1, points = 2, secret = true}, [4] = {name = "Amateur Actor", grade = 1, points = 2, secret = false}, [5] = {name = "Animal Activist", grade = 1, points = 2, secret = false}, [6] = {name = "Arachnoise", grade = 1, points = 1, secret = false}, [7] = {name = "Archpostman", grade = 1, points = 3, secret = false}, [8] = {name = "Askarak Nemesis", grade = 1, points = 1, secret = true}, [9] = {name = "Baby Sitter", grade = 1, points = 1, secret = true}, [10] = {name = "Back from the Dead", grade = 1, points = 2, secret = false}, [11] = {name = "Back into the Abyss", grade = 1, points = 1, secret = false}, [12] = {name = "Backpack Tourist", grade = 1, points = 1, secret = true}, [13] = {name = "Bad Timing", grade = 1, points = 2, secret = true}, [14] = {name = "Bane of the Hive", grade = 1, points = 2, secret = false}, [15] = {name = "Banebringers' Bane", grade = 1, points = 2, secret = true}, [16] = {name = "Beach Tamer", grade = 1, points = 2, secret = false}, [17] = {name = "Bearhugger", grade = 1, points = 1, secret = false}, [18] = {name = "Beautiful Agony", grade = 1, points = 2, secret = false}, [19] = {name = "Berserker", grade = 1, points = 3, secret = false}, [20] = {name = "King of the Ring", grade = 1, points = 2, secret = false}, [21] = {name = "Blessed!", grade = 1, points = 2, secret = false}, [22] = {name = "Blood-Red Snapper", grade = 1, points = 1, secret = false}, [23] = {name = "Bluebarian", grade = 1, points = 2, secret = true}, [24] = {name = "Bone Brother", grade = 1, points = 1, secret = false}, [25] = {name = "Breaking the Ice", grade = 1, points = 1, secret = false}, [26] = {name = "Bunny Slipped", grade = 1, points = 2, secret = true}, [27] = {name = "Cake Conqueror", grade = 1, points = 1, secret = true}, [28] = {name = "Chest Robber", grade = 1, points = 1, secret = false}, [29] = {name = "Choking on Her Venom", grade = 1, points = 1, secret = false}, [30] = {name = "Chorister", grade = 1, points = 1, secret = false}, [31] = {name = "Clay Fighter", grade = 1, points = 3, secret = true}, [32] = {name = "Coccon of Doom", grade = 1, points = 3, secret = true}, [33] = {name = "Commitment Phobic", grade = 1, points = 2, secret = true}, [34] = {name = "Confusion", grade = 1, points = 0, secret = false}, [35] = {name = "Cookie Monster", grade = 1, points = 1, secret = true}, [36] = {name = "Crawling Death", grade = 1, points = 1, secret = false}, [37] = {name = "Cursed!", grade = 1, points = 3, secret = true}, [38] = {name = "Daring Trespasser", grade = 1, points = 3, secret = true}, [39] = {name = "Dark Voodoo Priest", grade = 1, points = 2, secret = true}, [40] = {name = "Dazzler", grade = 1, points = 3, secret = false}, [41] = {name = "Death Song", grade = 1, points = 3, secret = false}, [42] = {name = "Deer Hunt", grade = 1, points = 1, secret = true}, [43] = {name = "Demonic Barkeeper", grade = 1, points = 3, secret = false}, [44] = {name = "Depth Dwellers", grade = 1, points = 3, secret = false}, [45] = {name = "Desert Fisher", grade = 1, points = 1, secret = false}, [46] = {name = "Do not Disturb", grade = 1, points = 1, secret = true}, [47] = {name = "Doctor! Doctor!", grade = 1, points = 2, secret = true}, [48] = {name = "Dog Slitter", grade = 1, points = 1, secret = false}, [49] = {name = "Down the Drain", grade = 1, points = 2, secret = false}, [50] = {name = "Dream's Over", grade = 1, points = 1, secret = false}, [51] = {name = "Efreet Ally", grade = 1, points = 3, secret = false}, [52] = {name = "Enter zze Draken!", grade = 1, points = 2, secret = false}, [53] = {name = "Exquisite Taste", grade = 1, points = 2, secret = false}, [54] = {name = "Extreme Degustation", grade = 1, points = 2, secret = true}, [55] = {name = "Eye of the Deep", grade = 1, points = 1, secret = true}, [56] = {name = "Fire Devil", grade = 1, points = 3, secret = true}, [57] = {name = "Fire from the Earth", grade = 1, points = 2, secret = false}, [58] = {name = "Fire Lighter", grade = 1, points = 1, secret = true}, [59] = {name = "Firefighter", grade = 1, points = 2, secret = true}, [60] = {name = "Fireworks in the Sky", grade = 1, points = 2, secret = true}, [61] = {name = "Fool at Heart", grade = 1, points = 3, secret = false}, [62] = {name = "Fountain of Life", grade = 1, points = 1, secret = true}, [63] = {name = "Free Items!", grade = 1, points = 3, secret = true}, [64] = {name = "Gatherer", grade = 1, points = 2, secret = false}, [65] = {name = "Gem Cutter", grade = 1, points = 1, secret = true}, [66] = {name = "Ghost Sailor", grade = 1, points = 1, secret = true}, [67] = {name = "Ghostwhisperer", grade = 1, points = 3, secret = false}, [68] = {name = "Greenhorn", grade = 1, points = 2, secret = false}, [69] = {name = "Guard Killer", grade = 1, points = 2, secret = false}, [70] = {name = "Guinea Pig", grade = 1, points = 2, secret = false}, [71] = {name = "Happy Farmer", grade = 1, points = 1, secret = true}, [72] = {name = "Headache", grade = 1, points = 2, secret = false}, [73] = {name = "Heartburn", grade = 1, points = 3, secret = false}, [74] = {name = "Here, Fishy Fishy!", grade = 1, points = 1, secret = true}, [75] = {name = "Hickup", grade = 1, points = 2, secret = false}, [76] = {name = "Hidden Powers", grade = 1, points = 2, secret = false}, [77] = {name = "His True Face", grade = 1, points = 3, secret = true}, [78] = {name = "Hissing Downfall", grade = 1, points = 2, secret = false}, [79] = {name = "Hive Fighter", grade = 1, points = 1, secret = false}, [80] = {name = "Hive Infiltrator", grade = 1, points = 3, secret = false}, [81] = {name = "Hive War Veteran", grade = 1, points = 1, secret = false}, [82] = {name = "Homebrewed", grade = 1, points = 1, secret = true}, [83] = {name = "Honest Finder", grade = 1, points = 1, secret = false}, [84] = {name = "Honorary Barbarian", grade = 1, points = 1, secret = false}, [85] = {name = "Howly Silence", grade = 1, points = 1, secret = false}, [86] = {name = "Huntsman", grade = 1, points = 2, secret = false}, [87] = {name = "I Did My Part", grade = 1, points = 2, secret = true}, [88] = {name = "I Like it Fancy", grade = 1, points = 1, secret = true}, [89] = {name = "I Need a Hug", grade = 1, points = 2, secret = false}, [90] = {name = "Ice Harvester", grade = 1, points = 1, secret = false}, [91] = {name = "Ice Sculptor", grade = 1, points = 3, secret = true}, [92] = {name = "Invader of the Deep", grade = 1, points = 2, secret = true}, [93] = {name = "Jinx", grade = 1, points = 2, secret = true}, [94] = {name = "Joke's on You", grade = 1, points = 1, secret = true}, [95] = {name = "Just Cracked Me Up!", grade = 1, points = 2, secret = false}, [96] = {name = "Just in Time", grade = 1, points = 1, secret = false}, [97] = {name = "Kapow!", grade = 1, points = 1, secret = false}, [98] = {name = "Keeper of the Flame", grade = 1, points = 2, secret = true}, [99] = {name = "King Tibianus Fan", grade = 1, points = 3, secret = false}, [100] = {name = "Let the Sunshine In", grade = 1, points = 1, secret = true}, [101] = {name = "Loyal Subject", grade = 1, points = 1, secret = true}, [102] = {name = "Lucid Dreamer", grade = 1, points = 2, secret = false}, [103] = {name = "Mageslayer", grade = 1, points = 1, secret = true}, [104] = {name = "Make a Wish", grade = 1, points = 1, secret = true}, [105] = {name = "Marbeleous", grade = 1, points = 3, secret = true}, [106] = {name = "Marid Ally", grade = 1, points = 3, secret = false}, [107] = {name = "Masquerader", grade = 1, points = 3, secret = true}, [108] = {name = "Master Shapeshifter", grade = 1, points = 2, secret = true}, [109] = {name = "Mastermind", grade = 1, points = 3, secret = false}, [110] = {name = "Matchmaker", grade = 1, points = 1, secret = false}, [111] = {name = "Mathemagician", grade = 1, points = 1, secret = false}, [112] = {name = "Meat Skewer", grade = 1, points = 1, secret = false}, [113] = {name = "Merry Adventures", grade = 1, points = 2, secret = false}, [114] = {name = "Ministrel", grade = 1, points = 2, secret = true}, [115] = {name = "Minor Disturbance", grade = 1, points = 2, secret = false}, [116] = {name = "Mister Sandman", grade = 1, points = 2, secret = true}, [117] = {name = "Modest Guest", grade = 1, points = 1, secret = true}, [118] = {name = "Mutated Presents", grade = 1, points = 1, secret = true}, [119] = {name = "Natural Born Cowboy", grade = 1, points = 1, secret = true}, [120] = {name = "Natural Sweetener", grade = 1, points = 1, secret = true}, [121] = {name = "Nether Pirate", grade = 1, points = 3, secret = true}, [122] = {name = "Nightmare Knight", grade = 1, points = 1, secret = false}, [123] = {name = "No More Hiding", grade = 1, points = 1, secret = false}, [124] = {name = "Nomad Soul", grade = 1, points = 2, secret = true}, [125] = {name = "Nothing Can Stop Me", grade = 1, points = 1, secret = true}, [126] = {name = "Number of the Beast", grade = 1, points = 2, secret = false}, [127] = {name = "One Less", grade = 1, points = 2, secret = false}, [128] = {name = "Oops", grade = 1, points = 2, secret = true}, [129] = {name = "Party Animal", grade = 1, points = 1, secret = true}, [130] = {name = "Passionate Kisser", grade = 1, points = 3, secret = false}, [131] = {name = "Perfect Fool", grade = 1, points = 3, secret = false}, [132] = {name = "Petrologist", grade = 1, points = 2, secret = true}, [133] = {name = "Piece of Cake", grade = 1, points = 1, secret = false}, [134] = {name = "Pimple", grade = 1, points = 3, secret = false}, [135] = {name = "Planter", grade = 1, points = 2, secret = false}, [136] = {name = "Poet Laureate", grade = 1, points = 2, secret = true}, [137] = {name = "Preservationist", grade = 1, points = 1, secret = true}, [138] = {name = "Quick as a Turtle", grade = 1, points = 2, secret = true}, [139] = {name = "Recognised Trader", grade = 1, points = 3, secret = false}, [140] = {name = "Rock Me to Sleep", grade = 1, points = 1, secret = true}, [141] = {name = "Rocket in Pocket", grade = 1, points = 1, secret = true}, [142] = {name = "Rockstar", grade = 1, points = 3, secret = true}, [143] = {name = "Rollercoaster", grade = 1, points = 1, secret = false}, [144] = {name = "Rootless Behaviour", grade = 1, points = 1, secret = false}, [145] = {name = "Safely Stored Away", grade = 1, points = 2, secret = true}, [146] = {name = "Santa's Li'l Helper", grade = 1, points = 2, secret = true}, [147] = {name = "Scorched Flames", grade = 1, points = 1, secret = false}, [148] = {name = "Scrapper", grade = 1, points = 3, secret = false}, [149] = {name = "Sea Scout", grade = 1, points = 2, secret = false}, [150] = {name = "Secret Agent", grade = 1, points = 1, secret = false}, [151] = {name = "Shaburak Nemesis", grade = 1, points = 1, secret = true}, [152] = {name = "Sharpshooter", grade = 1, points = 3, secret = false}, [153] = {name = "Si, Ariki!", grade = 1, points = 1, secret = false}, [154] = {name = "Shell Seeker", grade = 1, points = 3, secret = true}, [155] = {name = "Silent Pet", grade = 1, points = 1, secret = true}, [156] = {name = "Slayer of Anmothra", grade = 1, points = 2, secret = true}, [157] = {name = "Slayer of Chikhaton", grade = 1, points = 2, secret = true}, [158] = {name = "Slayer of Irahsae", grade = 1, points = 2, secret = true}, [159] = {name = "Slayer of Phrodomo", grade = 1, points = 2, secret = true}, [160] = {name = "Slayer of Teneshpar", grade = 1, points = 2, secret = true}, [161] = {name = "Slim Chance", grade = 1, points = 1, secret = false}, [162] = {name = "Slimer", grade = 1, points = 1, secret = true}, [163] = {name = "Snowbunny", grade = 1, points = 2, secret = true}, [164] = {name = "Someone's Bored", grade = 1, points = 1, secret = true}, [165] = {name = "Something Smells", grade = 1, points = 1, secret = false}, [166] = {name = "Something's in There", grade = 1, points = 1, secret = true}, [167] = {name = "Spareribs for Dinner", grade = 1, points = 1, secret = false}, [168] = {name = "Spectral Traveler", grade = 1, points = 2, secret = true}, [169] = {name = "Steampunked", grade = 1, points = 2, secret = true}, [170] = {name = "Stepped on a Big Toe", grade = 1, points = 1, secret = false}, [171] = {name = "Supersitious", grade = 1, points = 2, secret = true}, [172] = {name = "Supplier", grade = 1, points = 3, secret = false}, [173] = {name = "Sweet Tooth", grade = 1, points = 2, secret = true}, [174] = {name = "Talented Dancer", grade = 1, points = 1, secret = false}, [175] = {name = "Teamplayer", grade = 1, points = 2, secret = true}, [176] = {name = "Territorial", grade = 1, points = 1, secret = true}, [177] = {name = "The Cake's the Truth", grade = 1, points = 1, secret = true}, [178] = {name = "The Day After", grade = 1, points = 2, secret = true}, [179] = {name = "The Drowned Sea God", grade = 1, points = 2, secret = false}, [180] = {name = "The Milkman", grade = 1, points = 2, secret = false}, [181] = {name = "The Serpent's Bride", grade = 1, points = 2, secret = false}, [182] = {name = "The Undertaker", grade = 1, points = 2, secret = true}, [183] = {name = "Torn Treasures", grade = 1, points = 1, secret = true}, [184] = {name = "Trail of the Ape God", grade = 1, points = 1, secret = true}, [185] = {name = "True Colors", grade = 1, points = 3, secret = true}, [186] = {name = "Truth Be Told", grade = 1, points = 2, secret = true}, [187] = {name = "Twisted Mutation", grade = 1, points = 1, secret = false}, [188] = {name = "Vanity", grade = 1, points = 3, secret = true}, [189] = {name = "Vive la Resistance", grade = 1, points = 2, secret = false}, [190] = {name = "Wayfarer", grade = 1, points = 3, secret = true}, [191] = {name = "Whistle-Blower", grade = 1, points = 1, secret = true}, [192] = {name = "Witches Lil' Helper", grade = 1, points = 1, secret = true}, [193] = {name = "With a Cherry on Top", grade = 1, points = 1, secret = true}, [194] = {name = "Worm Whacker", grade = 1, points = 1, secret = true}, [195] = {name = "Yalahari of Power", grade = 1, points = 3, secret = false}, [196] = {name = "Yalahari of Wisdom", grade = 1, points = 3, secret = false}, [197] = {name = "You Don't Know Jack", grade = 1, points = 2, secret = true}, [198] = {name = "Zzztill Zzztanding!", grade = 1, points = 1, secret = false}, [199] = {name = "Alumni", grade = 2, points = 6, secret = false}, [200] = {name = "Annihilator", grade = 2, points = 5, secret = false}, [201] = {name = "Aristocrat", grade = 2, points = 4, secret = false}, [202] = {name = "Ashes to Dust", grade = 2, points = 4, secret = true}, [203] = {name = "Beak Doctor", grade = 2, points = 4, secret = false}, [204] = {name = "Brutal Politeness", grade = 2, points = 6, secret = false}, [205] = {name = "Castlemania", grade = 2, points = 5, secret = true}, [206] = {name = "Champion of Chazorai", grade = 2, points = 4, secret = false}, [207] = {name = "Chistin Bane", grade = 2, points = 5, secret = false}, [208] = {name = "Clay to Fame", grade = 2, points = 4, secret = true}, [209] = {name = "Culinary Master", grade = 2, points = 4, secret = false}, [210] = {name = "Deep Sea Diver", grade = 2, points = 4, secret = true}, [211] = {name = "Demonbane", grade = 2, points = 6, secret = false}, [212] = {name = "Devovorga's Nemesis", grade = 2, points = 5, secret = true}, [213] = {name = "Elite Hunter", points = 5, secret = false}, [214] = {name = "Exemplary Citizen", grade = 2, points = 4, secret = false}, [215] = {name = "Explorer", grade = 2, points = 4, secret = false}, [216] = {name = "Exterminator", grade = 2, points = 0, secret = false}, [217] = {name = "Follower of Azerus", grade = 2, points = 4, secret = false}, [218] = {name = "Follower of Palimuth", grade = 2, points = 4, secret = false}, [219] = {name = "Friend of the Apes", grade = 2, points = 4, secret = false}, [220] = {name = "Godslayer", grade = 2, points = 4, secret = false}, [221] = {name = "Gold Digger", points = 4, secret = true}, [222] = {name = "Golem in the Gears", grade = 2, points = 4, secret = false}, [223] = {name = "Green Thumb", grade = 2, points = 4, secret = true}, [224] = {name = "Guardian Downfall", grade = 2, points = 4, secret = false}, [225] = {name = "High Inquisitor", grade = 2, points = 5, secret = false}, [226] = {name = "High-Flyer", grade = 2, points = 4, secret = true}, [227] = {name = "Hive Blinder", grade = 2, points = 4, secret = false}, [228] = {name = "Honorary Witch", grade = 2, points = 4, secret = true}, [229] = {name = "Hunting with Style", grade = 2, points = 6, secret = false}, [230] = {name = "In Shining Armor", grade = 2, points = 6, secret = false}, [231] = {name = "Interior Decorator", grade = 2, points = 4, secret = true}, [232] = {name = "Jamjam", grade = 2, points = 5, secret = true}, [233] = {name = "Life on the Streets", grade = 2, points = 4, secret = false}, [234] = {name = "Lord of the Elements", grade = 2, points = 5, secret = false}, [235] = {name = "Lucky Devil", grade = 2, points = 4, secret = true}, [236] = {name = "Manic", grade = 2, points = 0, secret = false}, [237] = {name = "Marble Madness", grade = 2, points = 6, secret = true}, [238] = {name = "Master of the Nexus", grade = 2, points = 6, secret = false}, [239] = {name = "Master of War", grade = 2, points = 6, secret = false}, [240] = {name = "Master Thief", grade = 2, points = 4, secret = false}, [241] = {name = "Mystic Fabric Magic", grade = 2, points = 0, secret = false}, [242] = {name = "Navigational Error", grade = 2, points = 5, secret = true}, [243] = {name = "Nightmare Walker", grade = 2, points = 6, secret = false}, [244] = {name = "Of Wolves and Bears", grade = 2, points = 6, secret = false}, [245] = {name = "One Thousand and One", grade = 2, points = 6, secret = false}, [246] = {name = "Out in the Snowstorm", grade = 2, points = 4, secret = false}, [247] = {name = "Peazzekeeper", grade = 2, points = 6, secret = false}, [248] = {name = "Polisher", grade = 2, points = 4, secret = true}, [249] = {name = "Potion Addict", grade = 2, points = 4, secret = true}, [250] = {name = "Ritualist", grade = 2, points = 6, secret = false}, [251] = {name = "Ruthless", grade = 2, points = 5, secret = false}, [252] = {name = "Scourge of Death", grade = 2, points = 5, secret = true}, [253] = {name = "Ship's Kobold", grade = 2, points = 4, secret = true}, [254] = {name = "Skin-Deep", grade = 2, points = 4, secret = true}, [255] = {name = "Skull and Bones", grade = 2, points = 6, secret = false}, [256] = {name = "Spolium Profundis", grade = 2, points = 4, secret = false}, [257] = {name = "Stomach Ulcer", grade = 2, points = 4, secret = false}, [258] = {name = "Suppressor", grade = 2, points = 4, secret = false}, [259] = {name = "Swashbuckler", grade = 2, points = 6, secret = false}, [260] = {name = "Swift Death", grade = 2, points = 6, secret = false}, [261] = {name = "Top AVIN Agent", grade = 2, points = 4, secret = false}, [262] = {name = "Top CGB Agent", grade = 2, points = 4, secret = false}, [263] = {name = "Top TBI Agent", grade = 2, points = 4, secret = false}, [264] = {name = "True Lightbearer", grade = 2, points = 5, secret = true}, [265] = {name = "Turncoat", grade = 2, points = 4, secret = true}, [266] = {name = "Warlock", grade = 2, points = 6, secret = false}, [267] = {name = "Warlord of Svargrond", grade = 2, points = 5, secret = false}, [268] = {name = "Way of the Shaman", grade = 2, points = 6, secret = false}, [269] = {name = "Wild Warrior", grade = 2, points = 6, secret = false}, [270] = {name = "Dead Lord", grade = 3, points = 8, secret = true}, [271] = {name = "Herbicide", grade = 3, points = 8, secret = true}, [272] = {name = "Lord Protector", grade = 3, points = 8, secret = true}, [273] = {name = "Pwned a Lot of Fur", grade = 3, points = 8, secret = true}, [274] = {name = "Pwned All Fur", grade = 3, points = 8, secret = true}, [275] = {name = "Razing!", grade = 3, points = 7, secret = true} } ACHIEVEMENT_FIRST = 1 ACHIEVEMENT_LAST = #achievements function getAchievementInfoById(id) for k, v in pairs(achievements) do if k == id then local t = {} t.id = k for inf, it in pairs(v) do t[inf] = it end return t end end return false end function getAchievementInfoByName(name) for k, v in pairs(achievements) do if v.name:lower() == name:lower() then local t = {} t.id = k for inf, it in pairs(v) do t[inf] = it end return t end end return false end function getSecretAchievements() local t = {} for k, v in pairs(achievements) do if v.secret then table.insert(t, k) end end return t end function getPublicAchievements() local t = {} for k, v in ipairs(achivements) do if not v.secret then table.insert(t, k) end end return t end function doPlayerAddAchievement(cid, ach, showMsg) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end if not hasAchievement(cid, achievement.id) then doCreatureSetStorage(cid, achievement.name:lower(), 1) if getCreatureStorage(cid, ACHIEVEMENTSPOINTS_BASE) < 0 then doCreatureSetStorage(cid, ACHIEVEMENTSPOINTS_BASE, 0) end doCreatureSetStorage(cid, ACHIEVEMENTSPOINTS_BASE, getCreatureStorage(cid, ACHIEVEMENTSPOINTS_BASE) + achievement.points) if showMsg then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Congratulations! You earned the achievement \"" .. achievement.name .. "\".") end end return true end function doPlayerRemoveAchievement(cid, ach) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end if hasAchievement(cid, achievement.id) then doCreatureSetStorage(cid, achievement.name:lower(), 0) doCreatureSetStorage(cid, ACHIEVEMENTSPOINTS_BASE, getCreatureStorage(cid, ACHIEVEMENTSPOINTS_BASE) - achievement.points) end return true end function hasAchievement(cid, ach) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end if getCreatureStorage(cid, achievement.name:lower()) > 0 then return true end return false end function doPlayerAddAllAchievements(cid, showMsg) for k, v in pairs(achievements) do if not hasAchievement(cid, k) then doPlayerAddAchievement(cid, k, showMsg) end end return true end function doPlayerRemoveAllAchievements(cid) for k, v in pairs(achievements) do if hasAchievement(cid, k) then doPlayerRemoveAchievement(cid, k) end end return true end function getPlayerSecretAchievements(cid) local t = {} for k, v in pairs(achievements) do if hasAchievement(cid, k) and v.secret then table.insert(t, k) end end return t end function getPlayerPublicAchievements(cid) local t = {} for k, v in pairs(achievements) do if hasAchievement(cid, k) and not v.secret then table.insert(t, k) end end return t end function getPlayerAchievements(cid) local t = {} for k, v in pairs(achievements) do if hasAchievement(cid, k) then table.insert(t, k) end end return t end function isAchievementSecret(ach) local achievement if isNumber(ach) then achievement = getAchievementInfoById(ach) else achievement = getAchievementInfoByName(ach) end if not achievement then return print("[!] -> Invalid achievement \"" .. ach .. "\".") and false end return achievement.secret end já uso essa script adicionei o seguinte em global.lua function isNumber(str) return tonumber(str) ~= nil end dai ao dar /addach Admin,1 da o mesmo erro de função, porém agora assim. [C] in function 'addarchievements' up?
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.