Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Como eu estou lotado de scripts que nunca mais irei usar provavelmente então alguns deles eu vou postar aqui na seção, outros eu tenho um projeto para eles, rs. Então vamos lá:

 

Esse sistema é basicamente uma action que quando você clica em um certo item com o actionid configurado, você perde X quantidade de points e recebe o item, basicamente um shop system in-game :p

 

Donate.lua

local SHOP = {
	[10001] = {
		reward = 9778,
		cost = 1,
		count = 1,
	},
	[10002] = {
		reward = 9776,
		cost = 1,
		count = 1,
	},
	[10003] = {
		reward = 9777,
		cost = 1,
		count = 1,
	},
	[10004] = {
		reward = 11113,
		cost = 10,
		count = 1,
	}
}
function doPlayerRemovePremiumPoints(cid, cost)
    return db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` - " .. cost .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end  

function doPlayerGetPremiumPoints(cid)
	return db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local t = SHOP[item.actionid]
	if t then
	local premium_points = doPlayerGetPremiumPoints(cid):getDataInt("premium_points")
		if(premium_points >= t.cost) then
			local id = doCreateItemEx(t.reward, t.count or 1)
			if(doPlayerAddItemEx(cid, id) ~= RETURNVALUE_NOERROR) then
				return doPlayerSendCancel(cid, "You cannot carry this item."), false
			end
			doPlayerRemovePremiumPoints(cid, t.cost)
			doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_BLUE)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have purchased " .. getItemName(t.reward) .. ".")
		else
			doPlayerSendCancel(cid, "You do not have enough premium points.")
		end
	end
	return true
end

Rápida explicação:

[10001] = ActionID

reward = ID do item

cost = quanto que custa o item

count = quantos items.

 

<action actionid="10001;10002;10003;10004" event="script" value="donate.lua"/>


LEMBRANDO: Se for mudar o action id, lembre de mudar no script e no XML.

 

Créditos: vankk

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

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Tricoder
      Preview

       
      Script
      data/items/items.xml
      <item id="8981" article="a" name="gold premium card"> <attribute key="weight" value="0" /> <attribute key="description" value="Use this card to receive 7 premium days." /> </item> data/actions/actions.xml
      <action itemid="8981" script="other/premiumcard.lua"/> data/actions/scripts/premium_card
      local t = { days = 7, effect = CONST_ME_HOLYAREA } function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerRemoveItem(cid, 8981, 1) return TRUE, doPlayerAddPremiumDays(cid, t.days), doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You now have +" .. t.days .. " premium days!"), doSendMagicEffect(fromPosition, t.effect) end Créditos: God Mythera
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo