Postado Novembro 5, 2015 9 anos Olá, este é meu primeiro tópico aqui, então perdoem algum erro. Bom, recentemente encontrei aqui no forum scripts para adicionar no server itens novos com o mesmo sprite e sem criar um novo cliente. Eu deveria adicionar esse script "newitems.xml" em data/items : <?xml version="1.0" encoding="UTF-8"?> <items> <item id="100" spriteid="2400" article="a" name="magic edited sword"> <attribute key="description" value="Arma editada." /> <attribute key="defense" value="45" /> <attribute key="attack" value="100" /> <attribute key="elementIce" value="34"/> <attribute key="extradef" value="10" /> <attribute key="extraatk" value="10" /> </item> <item id="101" spriteid="2472" article="a" name="master plate armor"> <attribute key="description" value="Armor editada." /> <attribute key="armor" value="19" /> </item> <item id="102" spriteid="2386" article="a" name="Viking Axe"> <attribute key="description" value="a fucking viking axe." /> <attribute key="defense" value="15" /> <attribute key="attack" value="60" /> <attribute key="weaponType" value="axe" /> <attribute key="extradef" value="1" /> <attribute key="extraatk" value="1" /> <attribute key="weight" value="4000" /> </item> <item id="103" spriteid="2512" article="a" name="Viking Shield"> <attribute key="description" value="a fucking viking shield." /> <attribute key="weight" value="4000" /> <attribute key="defense" value="38" /> <attribute key="weaponType" value="shield" /> </item> </items> E esse script como ItemsEditedLib.lua em data/lib function doPlayerAddEditedItem(cid, itemid) local newxml = io.open("data/items/newitems.xml", "r") local configs = {} for i in newxml:read("*a"):gmatch("<item (.-)</item>") do local itemid = tonumber(i:match('id="(.-)"')) local itemconfig = { ["spriteid"] = tonumber(i:match('spriteid.-=.-"(.-)"')), ["article"] = i:match('article.-=.-"(.-)"'), ["name"] = i:match('name.-=.-"(.-)"'), ["description"] = i:match('key.-=.-"description".-value.-=.-"(.-)"'), ["defense"] = tonumber(i:match('key.-=.-"defense".-value.-=.-"(.-)"')), ["attack"] = tonumber(i:match('key.-=.-"attack".-value.-=.-"(.-)"')), ["extradefense"] = tonumber(i:match('key.-=.-"extradef".-value.-=.-"(.-)"')), ["armor"] = tonumber(i:match('key.-=.-"armor".-value.-=.-"(.-)"')), ["extraattack"] = tonumber(i:match('key.-=.-"extraatk".-value.-=.-"(.-)"')), } configs[itemid] = itemconfig end if configs[itemid] then local item = doPlayerAddItem(cid, configs[itemid].spriteid) for i,x in pairs(configs[itemid]) do doItemSetAttribute(item, i, x) end end end Eu sou leigo em scripts, infelizmente, então o com o pouco que sei consigo apenas copiar e editar os q encontro na net xD Para colocar esses novos itens no jogo eu editei esse npc: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function FUNCAO_NOME(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid,2516) >= 1 then -- SE TIVER 1 OU MAIS ITEM COM ID 2516 if doPlayerRemoveItem(cid,2516,1) then -- remove 1 ITEM DO ITEM COM ID 2516 npcHandler:say('Here is your item!', cid) -- MENSAGEM AO REMOVER O ITEM doPlayerAddItem(cid,5908,1) -- ADD 1 ITEM COM ID 5908 end else npcHandler:say('You don\'t have these items!', cid) end end local node2 = keywordHandler:addKeyword({'teste'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'vocÊ quer testar a função desse script?'}) node2:addChildKeyword({'yes'}, FUNCAO_NOME, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Até mais.', reset = true}) npcHandler:addModule(FocusModule:new()) para isso: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function FUNCAO_NOME(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid,2160) >= 200 then -- SE TIVER 1 OU MAIS ITEM COM ID 2516 if doPlayerRemoveItem(cid,2160,200) then -- remove 1 ITEM DO ITEM COM ID 2516 npcHandler:say('Here is your item!', cid) -- MENSAGEM AO REMOVER O ITEM doPlayerAddEditedItem(cid,102,1) -- ADD 1 ITEM COM ID 5908 end else npcHandler:say('Voce nao tem 200 mangos - crystal coins!', cid) end end function FUNCAO_SHIELD(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid,2160) >= 200 then -- SE TIVER 1 OU MAIS ITEM COM ID 2516 if doPlayerRemoveItem(cid,2160,200) then -- remove 1 ITEM DO ITEM COM ID 2516 npcHandler:say('Here is your item!', cid) -- MENSAGEM AO REMOVER O ITEM doPlayerAddEditedItem(cid,103,1) -- ADD 1 ITEM COM ID 5908 end else npcHandler:say('Voce nao tem 200 mangos - crystal coins!', cid) end end local node2 = keywordHandler:addKeyword({'viking axe'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Um Viking Axe, custa 200 mangos?'}) node2:addChildKeyword({'yes'}, FUNCAO_NOME, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Até mais.', reset = true}) local node3 = keywordHandler:addKeyword({'viking shield'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Um Viking Shield, custa 200 mangos?'}) node3:addChildKeyword({'yes'}, FUNCAO_SHIELD, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node3:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Até mais.', reset = true}) npcHandler:addModule(FocusModule:new()) e consegui finalmente colocar os itens no jogo. Porém, com esses scripts apenas estou muito limitado. Eu queria saber: -- como coloco os itens para serem comercializados em uma "janela de trade" como os npcs normalmente fazem. -- como colocar esses novos itens de loot dos monstros. -- como colocar os itens numa quest. -- como criar potions novas (que de mais skills como a Berserk Potion) -- como criar wands e rods novas. -- como fazer as novas profissoes que criei conseguirem beber as potions como a Strong Healing Potion. Agradeço desde já :D (E agradeço ao EddyHavoc pelo script dos itens, nao sei se ele criou ou conseguiu na net também, e ao luanluciano93 pelo NPC de quests, e também nao sei dizer se ele criou)
Postado Novembro 5, 2015 9 anos Chegando em casa eu te ajudo com alguns scripts, . Amigo tentei fazer os scripts, mas como ele tem que ler o newsitems.xml eu não obtive sucesso Sorry. Editado Novembro 6, 2015 9 anos por p e o p l e (veja o histórico de edições) Actions; Vip door Systema By Mock Movements; Piso que TELEPORTA apenas players PREMIUM
Postado Novembro 5, 2015 9 anos Autor Obrigado xD e se n for pedir muito eu tbm gostaria de um comando para GOD semelhante ao /i para criar itens novos :D
Postado Novembro 5, 2015 9 anos 2 minutos atrás, Magonnite disse: Obrigado xD e se n for pedir muito eu tbm gostaria de um comando para GOD semelhante ao /i para criar itens novos :D Não tem como pegar o próprio /i ?? se é diferente do que você quer avise antes, para evitar a prolongação do tópico. Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado). Tópicos: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
Postado Novembro 6, 2015 9 anos Autor 9 horas atrás, Caronte disse: Não tem como pegar o próprio /i ?? se é diferente do que você quer avise antes, para evitar a prolongação do tópico. Não pois o script cria uma ID propria, por exemplo a prieira arma editada tem ID 100, se eu usar /i 100 vai criar um vácuo no chao hahahaha pq o /i utiliza os IDs dos itens normais. Se eu colocar uma ID q n existe nos itens normais para tentar o /i tbm n adianta, pq o /i pega apenas os itens do itens.xml e nao os do newitens.xml E me desculpe por prolongar o tópico.. nao foi intencional mas ainda eh o mesmo assunto. Editado Novembro 6, 2015 9 anos por Magonnite faltou conteudo (veja o histórico de edições)
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.