Achei esse script na OtLand, e achei interessante, é um script para addon doll e mount doll, mas ele usa Modal Window. Sem digitar !addon mage. Tudo o que voce precisa fazer é selecionar a montaria/addon na lista.
Testado em TFS 1.1 e 1.2
Registre no login.lua
'modalAD',
'modalMD'
actions.xml
<action itemid="8982" script="modalAD.lua"/>
<action itemid="9019" script="modalMD.lua"/>
actions - modalMD.lua
local mounts = {
[1] = {name = "Widow Queen", ID = 1},
[2] = {name = "Racing Bird", ID = 2},
[3] = {name = "War Bear", ID = 3},
[4] = {name = "Black Sheep", ID = 4},
[5] = {name = "Midnight Panther", ID = 5},
[6] = {name = "Draptor", ID = 6},
[7] = {name = "Titanica", ID = 7},
[8] = {name = "Tin Lizard", ID = 8},
[9] = {name = "Blazebringer", ID = 9},
[10] = {name = "Rapid Boar", ID = 10},
[11] = {name = "Stampor", ID = 11},
[12] = {name = "Undead Cavebear", ID = 12},
[13] = {name = "Donkey", ID = 13},
[14] = {name = "Tiger Slug", ID = 14},
[15] = {name = "Uniwheel", ID = 15},
[16] = {name = "Crystal Wolf", ID = 16},
[17] = {name = "War horse", ID = 17},
[18] = {name = "Kingly Deer", ID = 18},
[19] = {name = "Tamed Panda", ID = 19},
[20] = {name = "Dromedary", ID = 20},
[21] = {name = "King Scorpion", ID =21},
[22] = {name = "Rented Horse", ID = 22},
[23] = {name = "Armoured War Horse", ID = 23},
[24] = {name = "Shadow Draptor", ID =24},
[25] = {name = "Rented Horse", ID = 25},
[26] = {name = "Rented Horse", ID = 26},
[27] = {name = "Ladybug", ID = 27},
[28] = {name = "Manta Ray", ID = 28},
[29] = {name = "Ironblight", ID =29},
[30] = {name = "Magma Crawler", ID = 30},
[31] = {name = "Dragonling", ID = 31},
[32] = {name = "Gnarlhound", ID = 32},
[33] = {name = "Crimson Ray", ID = 33},
[34] = {name = "Steelbeak", ID = 34},
[35] = {name = "Water Buffalo", ID = 35},
[36] = {name = "Tombstinger", ID = 36},
[37] = {name = "Platesaurian", ID = 37},
[38] = {name = "Ursagrodon", ID = 38},
[39] = {name = "The Hellgrip", ID = 39},
[40] = {name = "Noble Lion", ID = 40},
[41] = {name = "Desert King", ID = 41},
[42] = {name = "Shock Head", ID = 42},
[43] = {name = "Walker", ID = 43},
[44] = {name = "Azudocus", ID = 44},
[45] = {name = "Carpacosaurus", ID = 45},
[46] = {name = "Death Crawler", ID = 46},
[47] = {name = "Flamesteed", ID = 47},
[48] = {name = "Jade Lion", ID = 48},
[49] = {name = "Jade Pincer", ID = 49},
[50] = {name = "Nethersteed", ID = 50},
[51] = {name = "Tempest", ID = 51},
[52] = {name = "Winter King", ID = 52},
[53] = {name = "Doombringer", ID = 53},
[54] = {name = "Woodland Prince", ID = 54},
[55] = {name = "Hailtorm Fury", ID = 55},
[56] = {name = "Siegebreaker", ID = 56},
[57] = {name = "Poisonbane", ID = 57},
[58] = {name = "Blackpelt", ID = 58},
[59] = {name = "Golden Dragonfly", ID = 59},
[60] = {name = "Steel Bee", ID = 60},
[61] = {name = "Copper Fly", ID = 61},
[62] = {name = "Tundra Rambler", ID = 62},
[63] = {name = "Highland Yak", ID = 63},
[64] = {name = "Glacier Vagabond", ID = 64},
[65] = {name = "Glooth Glider", ID = 65},
[66] = {name = "Shadow Hart", ID = 66},
[67] = {name = "Black Stag", ID = 67},
[68] = {name = "Emperor Deer", ID = 68},
[69] = {name = "Flying Divan", ID = 69},
[70] = {name = "Magic Carpet", ID = 70},
[71] = {name = "Floating Kashmir", ID = 71},
[72] = {name = "Ringtail Wazzoon", ID = 72},
[73] = {name = "Night Wazzoon", ID = 73},
[74] = {name = "Emerald Waccoon", ID = 74},
}
function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey)
player:registerEvent("modalMD")
local title = "Choose your mount!"
local message = "You will receive the mount you select!"
local window = ModalWindow(1001, title, message)
if player:getItemCount(9019) >= 1 then
window:addButton(100, "Confirm")
window:setDefaultEnterButton(100)
else
window:setDefaultEnterButton(101)
end
window:addButton(101, "Cancel")
window:setDefaultEscapeButton(101)
for i = 1, #mounts do
local o = mounts[i].name
if not player:hasMount(mounts[i].ID) then
window:addChoice(i, o)
end
end
if window:getChoiceCount() == 0 then
window:setMessage("You have all the mounts! You have been awarded the achievement and a custom mount!")
--add achievement
end
window:sendToPlayer(player)
return true
end
actions - modalAD.lua
local outfits = {
[1] = {name = "Citizen", male = 128, female = 136},
[2] = {name = "Hunter", male = 129, female = 137},
[3] = {name = "Mage", male = 130, female = 138},
[4] = {name = "Knight", male = 131, female = 139},
[5] = {name = "Noble", male = 132, female = 140},
[6] = {name = "Summoner", male = 133, female = 141},
[7] = {name = "Warrior", male = 134, female = 142},
[8] = {name = "Barbarian", male = 143, female = 147},
[9] = {name = "Druid", male = 144, female = 148},
[10] = {name = "Wizard", male = 145, female = 149},
[11] = {name = "Oriental", male = 146, female = 150},
[12] = {name = "Pirate", male = 151, female = 155},
[13] = {name = "Assassin", male = 152, female = 156},
[14] = {name = "Beggar", male = 153, female = 157},
[15] = {name = "Shaman", male = 154, female = 158},
[16] = {name = "Norse", male = 251, female = 252},
[17] = {name = "Nightmare", male = 268, female = 269},
[18] = {name = "Jester", male = 273, female = 270},
[19] = {name = "Brotherhood", male = 278, female = 279},
[20] = {name = "Demonhunter", male = 289, female = 288},
[21] = {name = "Yalaharian", male = 325, female = 324},
[22] = {name = "Warmaster", male = 335, female = 336},
[23] = {name = "Wayfarer", male = 367, female = 366},
[24] = {name = "Afflicted", male = 430, female = 431},
[25] = {name = "Elementalist", male = 432, female = 433},
[26] = {name = "Deepling", male = 463, female = 464},
[27] = {name = "Insectoid", male = 465, female = 466},
[28] = {name = "Entrepreneur", male = 472, female = 471},
[29] = {name = "Crystal Warlord", male = 512, female = 513},
[30] = {name = "Soil Guardian", male = 516, female = 514},
[31] = {name = "Demon", male = 541, female = 542},
[32] = {name = "Cave Explorer", male = 574, female = 575},
[33] = {name = "Dream Warden", male = 577, female = 578},
[34] = {name = "Champion", male = 633, female = 632},
[35] = {name = "Conjurer", male = 634, female = 635},
[36] = {name = "Beastmaster", male = 637, female = 636},
[37] = {name = "Chaos Acolyte", male = 665, female = 664},
[38] = {name = "Death Herald", male = 667, female = 666},
[39] = {name = "Ranger", male = 684, female = 683},
[40] = {name = "Ceremonial Garb", male = 695, female = 694},
[41] = {name = "Puppeteer", male = 697, female = 696},
[42] = {name = "Spirit Caller", male = 699, female = 698},
}
function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey)
player:registerEvent("modalAD")
local title = "Choose your outfit!"
local message = "You will receive the outfit and both addons!"
local window = ModalWindow(1000, title, message)
if player:getItemCount(8982) >= 1 then
window:addButton(100, "Confirm")
window:setDefaultEnterButton(100)
else
window:setDefaultEnterButton(101)
end
window:addButton(101, "Cancel")
window:setDefaultEscapeButton(101)
for i = 1, #outfits do
local o = outfits[i].name
if not player:hasOutfit(outfits[i].male, 3) and not player:hasOutfit(outfits[i].female, 3) then
if outfits[i].name == "Noble" or outfits[i].name == "Norse" then
if player:getSex() == 0 then
o = o .. "woman"
else
o = o .. "man"
end
end
window:addChoice(i, o)
end
end
if window:getChoiceCount() == 0 then
window:setMessage("You have all the outfits! You have been awarded the achievement and a custom outfit!")
--add achievement
end
window:sendToPlayer(player)
return true
end
creaturescripts.xml
<event type="modalwindow" name="modalAD" script="modalAD.lua"/>
<event type="modalwindow" name="modalMD" script="modalMD.lua"/>
creaturescripts - modalMD.lua
local mounts = {
[1] = {name = "Widow Queen", ID = 1},
[2] = {name = "Racing Bird", ID = 2},
[3] = {name = "War Bear", ID = 3},
[4] = {name = "Black Sheep", ID = 4},
[5] = {name = "Midnight Panther", ID = 5},
[6] = {name = "Draptor", ID = 6},
[7] = {name = "Titanica", ID = 7},
[8] = {name = "Tin Lizard", ID = 8},
[9] = {name = "Blazebringer", ID = 9},
[10] = {name = "Rapid Boar", ID = 10},
[11] = {name = "Stampor", ID = 11},
[12] = {name = "Undead Cavebear", ID = 12},
[13] = {name = "Donkey", ID = 13},
[14] = {name = "Tiger Slug", ID = 14},
[15] = {name = "Uniwheel", ID = 15},
[16] = {name = "Crystal Wolf", ID = 16},
[17] = {name = "War horse", ID = 17},
[18] = {name = "Kingly Deer", ID = 18},
[19] = {name = "Tamed Panda", ID = 19},
[20] = {name = "Dromedary", ID = 20},
[21] = {name = "King Scorpion", ID =21},
[22] = {name = "Rented Horse", ID = 22},
[23] = {name = "Armoured War Horse", ID = 23},
[24] = {name = "Shadow Draptor", ID =24},
[25] = {name = "Rented Horse", ID = 25},
[26] = {name = "Rented Horse", ID = 26},
[27] = {name = "Ladybug", ID = 27},
[28] = {name = "Manta Ray", ID = 28},
[29] = {name = "Ironblight", ID =29},
[30] = {name = "Magma Crawler", ID = 30},
[31] = {name = "Dragonling", ID = 31},
[32] = {name = "Gnarlhound", ID = 32},
[33] = {name = "Crimson Ray", ID = 33},
[34] = {name = "Steelbeak", ID = 34},
[35] = {name = "Water Buffalo", ID = 35},
[36] = {name = "Tombstinger", ID = 36},
[37] = {name = "Platesaurian", ID = 37},
[38] = {name = "Ursagrodon", ID = 38},
[39] = {name = "The Hellgrip", ID = 39},
[40] = {name = "Noble Lion", ID = 40},
[41] = {name = "Desert King", ID = 41},
[42] = {name = "Shock Head", ID = 42},
[43] = {name = "Walker", ID = 43},
[44] = {name = "Azudocus", ID = 44},
[45] = {name = "Carpacosaurus", ID = 45},
[46] = {name = "Death Crawler", ID = 46},
[47] = {name = "Flamesteed", ID = 47},
[48] = {name = "Jade Lion", ID = 48},
[49] = {name = "Jade Pincer", ID = 49},
[50] = {name = "Nethersteed", ID = 50},
[51] = {name = "Tempest", ID = 51},
[52] = {name = "Winter King", ID = 52},
[53] = {name = "Doombringer", ID = 53},
[54] = {name = "Woodland Prince", ID = 54},
[55] = {name = "Hailtorm Fury", ID = 55},
[56] = {name = "Siegebreaker", ID = 56},
[57] = {name = "Poisonbane", ID = 57},
[58] = {name = "Blackpelt", ID = 58},
[59] = {name = "Golden Dragonfly", ID = 59},
[60] = {name = "Steel Bee", ID = 60},
[61] = {name = "Copper Fly", ID = 61},
[62] = {name = "Tundra Rambler", ID = 62},
[63] = {name = "Highland Yak", ID = 63},
[64] = {name = "Glacier Vagabond", ID = 64},
[65] = {name = "Glooth Glider", ID = 65},
[66] = {name = "Shadow Hart", ID = 66},
[67] = {name = "Black Stag", ID = 67},
[68] = {name = "Emperor Deer", ID = 68},
[69] = {name = "Flying Divan", ID = 69},
[70] = {name = "Magic Carpet", ID = 70},
[71] = {name = "Floating Kashmir", ID = 71},
[72] = {name = "Ringtail Wazzoon", ID = 72},
[73] = {name = "Night Wazzoon", ID = 73},
[74] = {name = "Emerald Waccoon", ID = 74},
}
function onModalWindow(player, modalWindowId, buttonId, choiceId)
player:unregisterEvent("modalMD")
if modalWindowId == 1001 then
if buttonId == 100 then
if player:getItemCount(9019) == 0 then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You must have a Mount Doll in your backpack!")
return false
end
if choiceId == 0 then
return false
end
player:removeItem(9019, 1)
player:addMount(mounts[choiceId].ID)
player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_YELLOW)
end
end
end
creaturescripts - modalAD.lua
local outfits = {
[1] = {name = "Citizen", male = 128, female = 136},
[2] = {name = "Hunter", male = 129, female = 137},
[3] = {name = "Mage", male = 130, female = 138},
[4] = {name = "Knight", male = 131, female = 139},
[5] = {name = "Noble", male = 132, female = 140},
[6] = {name = "Summoner", male = 133, female = 141},
[7] = {name = "Warrior", male = 134, female = 142},
[8] = {name = "Barbarian", male = 143, female = 147},
[9] = {name = "Druid", male = 144, female = 148},
[10] = {name = "Wizard", male = 145, female = 149},
[11] = {name = "Oriental", male = 146, female = 150},
[12] = {name = "Pirate", male = 151, female = 155},
[13] = {name = "Assassin", male = 152, female = 156},
[14] = {name = "Beggar", male = 153, female = 157},
[15] = {name = "Shaman", male = 154, female = 158},
[16] = {name = "Norse", male = 251, female = 252},
[17] = {name = "Nightmare", male = 268, female = 269},
[18] = {name = "Jester", male = 273, female = 270},
[19] = {name = "Brotherhood", male = 278, female = 279},
[20] = {name = "Demonhunter", male = 289, female = 288},
[21] = {name = "Yalaharian", male = 325, female = 324},
[22] = {name = "Warmaster", male = 335, female = 336},
[23] = {name = "Wayfarer", male = 367, female = 366},
[24] = {name = "Afflicted", male = 430, female = 431},
[25] = {name = "Elementalist", male = 432, female = 433},
[26] = {name = "Deepling", male = 463, female = 464},
[27] = {name = "Insectoid", male = 465, female = 466},
[28] = {name = "Entrepreneur", male = 472, female = 471},
[29] = {name = "Crystal Warlord", male = 512, female = 513},
[30] = {name = "Soil Guardian", male = 516, female = 514},
[31] = {name = "Demon", male = 541, female = 542},
[32] = {name = "Cave Explorer", male = 574, female = 575},
[33] = {name = "Dream Warden", male = 577, female = 578},
[34] = {name = "Champion", male = 633, female = 632},
[35] = {name = "Conjurer", male = 634, female = 635},
[36] = {name = "Beastmaster", male = 637, female = 636},
[37] = {name = "Chaos Acolyte", male = 665, female = 664},
[38] = {name = "Death Herald", male = 667, female = 666},
[39] = {name = "Ranger", male = 684, female = 683},
[40] = {name = "Ceremonial Garb", male = 695, female = 694},
[41] = {name = "Puppeteer", male = 697, female = 696},
[42] = {name = "Spirit Caller", male = 699, female = 698},
[43] = {name = "Glooth Engineer", male = 610, female = 618},
}
function onModalWindow(player, modalWindowId, buttonId, choiceId)
player:unregisterEvent("modalAD")
if modalWindowId == 1000 then
if buttonId == 100 then
if player:getItemCount(8982) == 0 then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You must have a Addon Doll in your backpack!")
return false
end
if choiceId == 0 then
return false
end
player:removeItem(8982, 1)
if player:getSex() == 0 then
player:addOutfitAddon(outfits[choiceId].female, 3)
else
player:addOutfitAddon(outfits[choiceId].male, 3)
end
player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_YELLOW)
end
end
end
não sou a melhor pessoa para explicar as coisas, basicamente é isso:
AD = Addon Doll
MD = Mount Doll
Se voce quiser trocar o doll, mude no actions.xml o ID, e mude nos scripts, na linha if player:getItemCount(ID) == 0 then - Substitui o ID pelo o ID do doll que voce queira.
Créditos: beastn