Ir para conteúdo
Banner com Efeitos

Featured Replies

  • Respostas 40
  • Visualizações 4.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Danyel Varejao
    Danyel Varejao

    Olá @SilentKill pelo que eu entendi do sistema é o seguinte, funciona como uma troca de PONTOS por ITEMS usando o trade. correto?   Aqui vai os scripts!   1º Em data/npc/scripts ad

  • Danyel Varejao
    Danyel Varejao

    Tranquilo cara, mas você sabe que os players iram abusar né? criando vários documentos e jogando no chão e tals... Mas posso fazer sim pra você.

  • @SilentKill Qual o seu sistema de premium points? Posta aqui. 

Posted Images

Postado
  • Autor

antes de postar alguma coisa esporando alguém leia o tópico pelo menos ajuda,  o fórum, e para compartilhar ideia, não discutir 

4 minutos atrás, Enzo Caue disse:

 sobre o sistema de premium points.. voce tem ou nao ?

 

novamente vejo que você e leigo, vou te explicar, ai talvez pois vejo que voce nao vai ganhar nada falando bobagem nesse topico, o que tenho e a função doStartTrade e onTradeaccept, implementadas na  source para  ser chamada em um script que interage com um npc no caso seria dois scripts que NÃO ESTÃO FEITOS!!!, esse post e para programadores se ajudarem a desenvolver esse codigo, noa tem nada pronto!!! você quer de mão beijada ?? não sou obrigado e me virar nos 30 e te da rum sistema sendo que não esta pronto!, leiam o post e se for falar algo desnecessário nem comente por favor.

Editado por SilentKill (veja o histórico de edições)

Postado

cara, para de ser louco...

é mais facil voce criar varios scrolls e atribuir a cada um x valor, ex. scrol 1 = 10 pp, scroll 2 = 20 pp.

o script do premium scroll é facil, toma.

local function doPlayerAddPremiumPoints(cid, count)
		db.query('UPDATE accounts SET premium_points = premium_points+'.. count ..' WHERE id = ' .. getAccountNumberByPlayerName(getCreatureName(cid)))
end

function onUse(cid, item, fromPosition, itemEx, toPosition) 
	doPlayerAddPremiumPoints(cid, VALORDOSCROLL)
	doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have recived VALORDOSCROLL Coins to your account.")
	doSendMagicEffect(getCreaturePosition(cid), 28)
	doRemoveItem(item.uid,1)
	return true
end

onde tem VALORDOSCROLL vc troca pelo valor que vc quiser.

dps só atribuir uma action pro item e pronto.

quando o player usar ele vai receber os pontos na conta dele.

 

pra vender o scroll vc pode vender pelo site pelo preco do scroll mesmo.

 

quanta dificuldade.

 

 

 

script para tfs 1.x

 

ai na hora do trade, quando o player 1 for vender pro player 2, não vai precisar dessa frescura toda.

 

quanto menos código + agil.

 

 

Editado por Enzo Caue (veja o histórico de edições)

Postado
  • Autor
9 minutos atrás, Enzo Caue disse:

cara, para de ser louco...

é mais facil voce criar varios scrolls e atribuir a cada um x valor, ex. scrol 1 = 10 pp, scroll 2 = 20 pp.

o script do premium scroll é facil, toma.


local function doPlayerAddPremiumPoints(cid, count)
		db.query('UPDATE accounts SET premium_points = premium_points+'.. count ..' WHERE id = ' .. getAccountNumberByPlayerName(getCreatureName(cid)))
end

function onUse(cid, item, fromPosition, itemEx, toPosition) 
	doPlayerAddPremiumPoints(cid, VALORDOSCROLL)
	doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have recived VALORDOSCROLL Coins to your account.")
	doSendMagicEffect(getCreaturePosition(cid), 28)
	doRemoveItem(item.uid,1)
	return true
end

onde tem VALORDOSCROLL vc troca pelo valor que vc quiser.

dps só atribuir uma action pro item e pronto.

quando o player usar ele vai receber os pontos na conta dele.

 

pra vender o scroll vc pode vender pelo site pelo preco do scroll mesmo.

 

quanta dificuldade.

 

 

 

script para tfs 1.x

 

ai na hora do trade, quando o player 1 for vender pro player 2, não vai precisar dessa frescura toda.

 

quanto menos código + agil.

 

 

 

Obrigado por compartilhar, não é pra isso e tópico, vou terminar meu script e demostrar como seria, como seria, dessa maneira, como uso tfs 0.4 8.60 os players podem, clonar o scroll, e atribuir pontos, esse sistema e para fazer trocar dentro do jogo usando o trade, assim que o player da trade em outro player com o documento quando ele der ok, os pontos serão transferidos para a conta do outro player e os pontos retirados da conta do player

Postado

Olá @SilentKill pelo que eu entendi do sistema é o seguinte, funciona como uma troca de PONTOS por ITEMS usando o trade. correto?

 

Aqui vai os scripts!

 

1º Em data/npc/scripts adicione um arquivo chamado NamekJin Seller.lua e cole isso dentro:

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 greetCallback(cid)
	talkState[cid] = 0
	return true
end

function creatureSayCallback(cid, type, msg)
	if (not npcHandler:isFocused(cid)) then
		return false
	end
	if talkState[cid] == nil or talkState[cid] == 0 then
		Count_Points = tonumber(msg)
		if isInArray(Points_Trade.Points, Count_Points) then
			npcHandler:say("Do you want to buy a premium points transfer document that will transfer ".. Count_Points .." premium points, right?", cid)
			talkState[cid] = 1
		else
			npcHandler:say("Escolha um numero entre ".. table.concat(Points_Trade.Points, ', ') ..".", cid)
			talkState[cid] = 0
		end
	elseif talkState[cid] == 1 then
		if msgcontains(msg, 'yes') then
			local Document = doCreateItemEx(Points_Trade.Document_ItemID)
			doItemSetAttribute(Document, "name", "".. Count_Points .." premium points transfer document")
			doItemSetAttribute(Document, "points", Count_Points)
			doPlayerAddItemEx(cid, Document)
			npcHandler:say("Você obteve um documento que vale ".. Count_Points .." premium points, use ele no trade com alguem.", cid)
			talkState[cid] = 0
		else
			npcHandler:say("Ok, volte mais tarde.", cid)
			talkState[cid] = 0
		end
	end
	return true
end

npcHandler:setMessage(MESSAGE_GREET, "Ola |PLAYERNAME|. Eu vendo alguns utensílios e Premium Points transfers para você transferir pontos para outros jogadores, lembre-se para comprar use '10,ppt' para 10 pontos.")
npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

2º Em data/lib adicione um arquivo chamado Points_Trade.lua e cole isso dentro:

Points_Trade = {
	Document_ItemID = 1954,
	Points = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100},
}

function DocumentPoints(Item)
	return tonumber(getItemAttribute(Item.uid, "points"))
end

function getPlayerPoints(cid)
	local AccountID = getPlayerAccountId(cid)
	local Points = 0
	local Result = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = ".. AccountID .."")
	if Result:getID() ~= -1 then
		Points = Result:getDataInt("premium_points")
	end
	return tonumber(Points)
end

function doPlayerAddPoints(cid, Points)
	local AccountID = getPlayerAccountId(cid)
	local Result = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = '".. AccountID .."'")
	if Result:getID() ~= -1 then
		db.executeQuery("UPDATE `accounts` SET `premium_points` = " .. getPlayerPoints(cid) + Points .. " WHERE `id` = " .. AccountID .. ";")
	end
	return true
end

function doPlayerRemovePoints(cid, Points)
	local AccountID = getPlayerAccountId(cid)
	local Result = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = '".. AccountID .."'")
	if Result:getID() ~= -1 then
		db.executeQuery("UPDATE `accounts` SET `premium_points` = " .. getPlayerPoints(cid) - Points .. " WHERE `id` = " .. AccountID .. ";")
	end
	return true
end

3º Em data/creaturescripts/scripts adicione um arquivo chamado Points_Trade.lua e cole isso dentro:

function onTradeAccept(cid, target, item, targetItem)
	if isPlayer(cid) and isPlayer(target) then
		if item.itemid == Points_Trade.Document_ItemID then
			doPlayerSendTextMessage(target, MESSAGE_STATUS_WARNING, "Você recebeu ".. DocumentPoints(item) .." premium points.")
			doPlayerAddPoints(target, DocumentPoints(item))
			doPlayerRemovePoints(cid, DocumentPoints(item))
			addEvent(doPlayerRemoveItem, 1, target, Points_Trade.Document_ItemID, 1)
		elseif targetItem.itemid == Points_Trade.Document_ItemID then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você recebeu ".. DocumentPoints(targetItem) .." premium points.")
			doPlayerAddPoints(cid, DocumentPoints(targetItem))
			doPlayerRemovePoints(target, DocumentPoints(targetItem))
			addEvent(doPlayerRemoveItem, 1, cid, Points_Trade.Document_ItemID, 1)
		end
	end
	return true
end 

function onTradeRequest(cid, target, item)
	if item.itemid == Points_Trade.Document_ItemID then
		if getPlayerPoints(cid) < DocumentPoints(item) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você não tem ".. DocumentPoints(item) .." para realizar uma troca.")
			return false
		end
	end
	return true
end

4º Em data/creaturescripts/scripts/login.lua adicione isso dps de qualquer linha que contenha registerCreatureEvent

registerCreatureEvent(cid, "Points_Trade_Request")
registerCreatureEvent(cid, "Points_Trade")

 

5º Em data/creaturescripts/creaturescripts.xml adicione uma tag:

<event type="traderequest" name="Points_Trade_Request" event="script" value="Points_Trade.lua"/>
<event type="tradeaccept" name="Points_Trade" event="script" value="Points_Trade.lua"/>

6º Em data/npc adicione um arquivo chamado NamekJin Seller.xml e coloque isso dentro:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NamekJin Seller" script="NamekJin Seller.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="138" head="97" body="59" legs="45" feet="102" addons="2"/>
</npc>

 

Se te ajudou marque como melhor resposta!, obrigado.

Editado por Danyel Varejao (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.

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