Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado
  • Autor
7 horas atrás, FeeTads disse:

cara tem sim como fazer, mas tipo, se o cara tiver 2 bow, 1 free e 1 donate, ele vai dar upgrade apenas no primeiro tlg?
esse script que eu fiz, 1 NPC troca varios itens, só por la no config da linha 1, mas tipo da sim pra fazer 1 npc que troque os 2, mas meio que se o cara tiver o item equipado e 1 free na BP, vai ser trocado o free da bp primeiro, então não sei se isso vai valer a pena, oq tu poderia fazer é replicar esse script e trocar os ID, de free pra donate, e de donate pra super, ai seriam 2 npcs tlg

 

isso eu consigo fazer sim, simples até kkk vai ser 1 check a mais só, mas mano se tu quiser trocar ideia chama discord, não vou te cobrar por esse script não, mas preciso entender melhor como vc quer isso, ai eu scripto e te mostro por call, vai ser mais facil de eu entender tlg?
*não sei se posso mandar discord, mas eh  " FeeTads#0246 ", caso algum mod veja e não puder mandar contato pode apagar*


Discord: FeeTads#0246

 


local config = {
	item = {12665, 12661, 1111, 1111, 1111},				--Id dos item free ou necessario pra trocar pelo donate
	itemDonate = {12653, 12655, 1111, 1111, 1111},			--ID dos item donate
	itemSuper = {2222,7735,4444,5555,6666,7777},			--ID dos items super donate
	needSto = true,											--só pode trocar 1x por char esse item?
	storageTroca = 354545, 									--storage da troca
	trocarTodos = false										--dar upgrade em todos os items que podem ser upgrades na BP? "true" > se tiver 5 item free, vai virar 5 item donate, "false" > vai transformar 1 e sair fora
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

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 creatureSayCallback(cid, type, msg)

	local flag = 0

	if(not npcHandler:isFocused(cid)) then
		return false
	end

	local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
	local msg = string.lower(msg)

	if isInArray({"upgrade","upgrades", "donate"}, msg) then						--se o player digitar essas palavras (você pode alterar como quiser)
		talkState[talkUser] = 1
	end
	if talkState[talkUser] == 1 then	
		if getPlayerStorageValue(cid, config.storageTroca) < 1 then					--checa a storage do player
			for i=1, #config.itemDonate do												--vai do primeiro até a quantidade de items, NÃO ESQUECER DE COLOCAR qtdItems com a mesma quantidade de items da tabela !IMPORTANTE
				flag = 1															--flag pra caso o char não tenha o item necessário
				if doPlayerRemoveItem(cid, config.itemDonate[i], 1) == true then			--LEMBRANDO o item e o item donate tem que estar na mesma ordem na tabela config.item e config.itemDonate
					flag = 0														--reseta o flag pra evitar bugs
					doPlayerAddItem(cid, config.itemSuper[i], 1)					--exemplo: se a Wand Free ta no primeiro slot {xxx...}, no itemDonate = {xxx...} tem que estar em primeiro também
					doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce acaba fazer UM upgrade em sua arma "..getItemInfo(config.itemDonate[i]).name.." e Ganhou um "..getItemInfo(config.itemSuper[i]).name..".")
					if (config.needSto) then										--se só puder trocar 1x no NPC 
						setPlayerStorageValue(cid, config.storageTroca, 1)			--seta storage como 1, pro player não conseguir trocar de novo
					else
						setPlayerStorageValue(cid, config.storageTroca, 0)			--seta como 0, o player pode trocar outro item donate por super
					end
					npcHandler:say("Obrigado, bye!", cid)
					talkState[talkUser] = 0  
					npcHandler:releaseFocus(cid)  													-- retorna
					if config.trocarTodos == false then
						return true
					end
				end
			end
			for i=1, #config.item do												--vai do primeiro até a quantidade de items, NÃO ESQUECER DE COLOCAR qtdItems com a mesma quantidade de items da tabela !IMPORTANTE
				flag = 1															--flag pra caso o char não tenha o item necessário
				if doPlayerRemoveItem(cid, config.item[i], 1) == true then			--LEMBRANDO o item e o item donate tem que estar na mesma ordem na tabela config.item e config.itemDonate
					flag = 0														--reseta o flag pra evitar bugs
					doPlayerAddItem(cid, config.itemDonate[i], 1)					--exemplo: se a Wand Free ta no primeiro slot {xxx...}, no itemDonate = {xxx...} tem que estar em primeiro também
					doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce acaba fazer UM upgrade em sua arma "..getItemInfo(config.item[i]).name.." e Ganhou um "..getItemInfo(config.itemDonate[i]).name..".")
					if (config.needSto) then										--se só puder trocar 1x no NPC 
						setPlayerStorageValue(cid, config.storageTroca, 1)			--seta storage como 1, pro player não conseguir trocar de novo
					else
						setPlayerStorageValue(cid, config.storageTroca, 0)			--seta como 0, o player pode trocar outro item free por donate
					end
					npcHandler:say("Obrigado, bye!", cid)
					talkState[talkUser] = 0  
					npcHandler:releaseFocus(cid)  													-- retorna
					if config.trocarTodos ==  false then
						return true
					end
				end
			end
			if flag == 1 then
				talkState[talkUser] = 2
			end
		else
			npcHandler:say("Desculpe, mas você ja pegou seu item", cid)
		end
	end
	if talkState[talkUser] == 2 then
		npcHandler:say("Desculpe, mas você não tem o item necessário.", cid)
		talkState[talkUser] = 0 
	end
	
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())


dei uma arrumada mais ou menos com oq eu entendi que vc quer.

trocarTodos > adicionei um check pra saber se vc quer que o cara troque mais de 1 item, tipo
o cara tem 2 free axe, se o trocarTodos = true, ele troca os 2 free axe em donate axe
se o trocarTodos = false, ele vai dar upgrade apenas em 1 item (com prioridade no donate) e sair fora 

como funciona: ID dos items no escopo, retirado o "qtdItems" que era desnecessário.
PRIORIZA item donate pra > super donate, se não tiver procura por item free > pra item donate

se o player tiver item donate E item free, que podem ser upgrade, vai dar upgrade apenas no donate pro > super donate, ou seja, o player só vai conseguir trocar 1 item 1x, e será priorizado o item donate pro super donate.

needSto = true > deixar true pra caso o player troca apenas 1x, se por "false" o player vai poder trocar varias vezes.
storageTroca pode ser qualquer numero que vc quiser.

!IMPORTANTE!
não colocar item com ID errado, pois a função checa se é possivel remover o item do player, ou seja, se o player tiver o item, ele remove e entra na função pra dar o upgrade, se o ID do item donate/super donate estiver errado, ele vai remover o antigo, e vai tentar dar o upgrade e não vai achar, ai o player vai ficar sem item.
Então é necessário testar todos os items antes de por em vigor.

Cara so por essa paciência e complexidade do código já dei outro rep+ vou testar ambos em um npc so, pois acabei de testar o primeiro script e deu certo, consegui reduzir 10 npcs pra 2… eu tinha uma torre cheia de npcs ??? 1 wand dnt, 1 wand free, 1 bow donate, 1 bow freee e um pra cada arma do knight ??? com seus script reduzi pra dois npcs… baixei 8 andares na torre… se eu reduzir pra um então… vou colocar até teu nome no npc 

  • Respostas 8
  • Visualizações 835
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Mano vi que tu tá num tópico de creatureboost la e eu peguei aquele código tbm e n dava a Exp mas fucei nas libs  e achei umas funções q dava pra usar so no login do creaturescript q resolveu a Exp. A

  • cara não entendi muito bem essa parte, pq tipo, se o cara tem o bow free, e fazer upgrade com o NPC, ele vai ter o bow donate, ai é só ele falar "upgrade" de novo que vai ganhar o super donate, OU vc

  • cara tem sim como fazer, mas tipo, se o cara tiver 2 bow, 1 free e 1 donate, ele vai dar upgrade apenas no primeiro tlg? esse script que eu fiz, 1 NPC troca varios itens, só por la no config da linh

Postado
5 minutos atrás, kingdj22 disse:

vou colocar até teu nome no npc 

ja me passa o IP que eu vou conferir kkkkkkkkkkkkkkkkkkkkk

 

5 minutos atrás, kingdj22 disse:

se eu reduzir pra um então

com esse ultimo script, como ta na desrição ali, 1 NPC faz tudo kkkkkkkkk

Postado
  • Autor

Mano vi que tu tá num tópico de creatureboost la e eu peguei aquele código tbm e n dava a Exp mas fucei nas libs  e achei umas funções q dava pra usar so no login do creaturescript q resolveu a Exp. Agora tô no celular mas amanhã vó fazer um tópico postando como ficou o código pra quem também use otx e possa precisar, aí te marco… e a primeira vez q alguém me ajuda aqui nesse fórum, e dahora ver q alguém leu e pensou em ajudar, vou fazer o mesmo com o mínimo q sei. 

Postado
2 minutos atrás, kingdj22 disse:

tópico de creatureboost la

o pior que eu fiz um que funciona só no creatureScript e DataBase mano kkkkkk ainda mostra no site, se quiser posso te passar

 

3 minutos atrás, kingdj22 disse:

fazer um tópico postando como ficou o código pra quem também use otx e possa precisar

boa mano, ja ajuda quem precisar, vai ser bom pra comunidade

 

3 minutos atrás, kingdj22 disse:

e dahora ver q alguém leu e pensou em ajudar, vou fazer o mesmo com o mínimo q sei. 

kkkkkkkkkk, pior que eu to aprendendo muita coisa com .lua, sou programador mas mexo com lua faz 1 mes, ai usei teu pedido ai como cobaia tbm kkkkkkkkk, tmj mano, quando precisar de alguma ajuda chama discord ou marca em algum post, o woox e o vodkart dificilmente vão responder os caras são bem ocupados

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo