Ir para conteúdo

Featured Replies

Postado
16 horas atrás, PsyMcKenzie disse:

Amigo, não funcionou :/

Não adiciona promotion ao player.

 

Tipo, adiciona na hora, mas quando o player reloga volta pra promotion normal.

E a VIP, se mantém ou some também?

Procure e poste pra mim a LIB do seu sistema de VIP, onde tem essa função

function vip.hasVip

e poste o script.

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

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

Top Posters In This Topic

Most Popular Posts

  • Seu script de addvip está botando uma storage diferente. Isso irá corrigir:   function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover qua

  • action function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- dias que serão adicionado

Postado
  • Autor

A vip continua, só a promotion mesmo que sai.

 

vip = {
   name = "Vip system";
   author = "Mock";
   version = "1.0.0.0";
   query="ALTER TABLE `accounts` ADD `vip_time` INTEGER";
   query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL"
}
function vip.setTable()
   dofile('config.lua')
   if sqlType == "sqlite" then
   	db.executeQuery(vip.query)
   else
        db.executeQuery(vip.query2)
   end
end
function vip.getVip(cid)
         assert(tonumber(cid),'Parameter must be a number') 
         if isPlayer(cid) == FALSE then error('Player don\'t find') end; 
         ae =  db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';")
         if ae:getID() == -1 then
            return 0
         end
local retee = ae:getDataInt("vip_time") or 0
ae:free()
         return retee
end

function vip.getVipByAcc(acc)
         assert(acc,'Account is nil')
         local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';")
         if a:getID() ~= -1 then
             return a:getDataInt("vip_time") or 0, a:free()
         else
             error('Account don\'t find.')
         end
end

function vip.setVip(cid,time)
         dofile("config.lua")
         assert(tonumber(cid),'Parameter must be a number')
         assert(tonumber(time),'Parameter must be a number')
         if isPlayer(cid) == FALSE then error('Player don\'t find') end; 
         db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';")
end

function vip.getVipByAccount(acc)
         assert(acc,'Account is nil')
         return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0
end                                      

function vip.hasVip(cid)
         assert(tonumber(cid),'Parameter must be a number')
         if isPlayer(cid) == FALSE then error('Player don\'t find') end;
         local t = vip.getVip(cid) or 0
         if os.time(day) < t then
            return TRUE
         else
            return FALSE
         end
end

function vip.accountHasVip(acc)
         assert(acc,'Account is nil')
         if os.time() < vip.getVipByAccount(acc) then
            return TRUE
         else
            return FALSE
         end
end
function vip.getDays(days)
   return (3600 * 24 * days)
end
function vip.addVipByAccount(acc,time)
   assert(acc,'Account is nil')
   assert(tonumber(time),'Parameter must be a number')
   local a = vip.getVipByAcc(acc)
   a = os.difftime(a,os.time())
   if a < 0 then a = 0 end;
   a = a+time
   return vip.setVipByAccount(acc,a)
end
function vip.setVipByAccount(acc,time)
         dofile("config.lua")
         assert(acc,'Account is nil')
         assert(tonumber(time),'Parameter must be a number')
         db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';")
         return TRUE
end
function vip.returnVipString(cid)
   assert(tonumber(cid),'Parameter must be a number')
   if isPlayer(cid) == TRUE then
      return os.date("%d %B %Y %X ", vip.getVip(cid))
   end
end

 

Postado

Tente assim:
 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	
	local config={
		removeOnUse = "yes" -- remover quando usar ("yes" or "no")
	}
	
	local days = 30 -- dias que serão adicionados
	local daysvalue = days * 24 * 60 * 60
	local storageplayer = getPlayerStorageValue(cid, 29000)
	local timenow = os.time()
	if getPlayerStorageValue(cid, 29000) - os.time() <= 0 then
		time = timenow + daysvalue
	else
		time = storageplayer + daysvalue
	end
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
	setPlayerStorageValue(cid, 29000, time)
	local quantity = math.floor((getPlayerStorageValue(cid, 29000) - timenow)/(24 * 60 * 60))
  		local voc = getPlayerVocation(cid)
		if voc <= 4 then
			newvoc = voc + 8
		elseif voc > 4 and voc <= 8 then
			newvoc = voc + 4
		end
	doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
	if (config.removeOnUse == "yes") then
		doRemoveItem(item.uid, 1)
		db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";")
		db.executeQuery("UPDATE `players` SET `vocation` = '".. newvoc .."' WHERE `id` = "..getPlayerGUID(cid)..";")
		doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.")
		doPlayerAddAddons(cid, 1)
		addEvent(doRemoveCreature, 5*1000, cid, true)
	end
	return TRUE
end

Se funcionar dessa forma, assim como o nick, o player vai vir com a promotion quando relogar.

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Postado
  • Autor
20 horas atrás, luangop disse:

Tente assim:
 


function onUse(cid, item, fromPosition, itemEx, toPosition)
	
	local config={
		removeOnUse = "yes" -- remover quando usar ("yes" or "no")
	}
	
	local days = 30 -- dias que serão adicionados
	local daysvalue = days * 24 * 60 * 60
	local storageplayer = getPlayerStorageValue(cid, 29000)
	local timenow = os.time()
	if getPlayerStorageValue(cid, 29000) - os.time() <= 0 then
		time = timenow + daysvalue
	else
		time = storageplayer + daysvalue
	end
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
	setPlayerStorageValue(cid, 29000, time)
	local quantity = math.floor((getPlayerStorageValue(cid, 29000) - timenow)/(24 * 60 * 60))
  		local voc = getPlayerVocation(cid)
		if voc <= 4 then
			newvoc = voc + 8
		elseif voc > 4 and voc <= 8 then
			newvoc = voc + 4
		end
	doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
	if (config.removeOnUse == "yes") then
		doRemoveItem(item.uid, 1)
		db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";")
		db.executeQuery("UPDATE `players` SET `vocation` = '".. newvoc .."' WHERE `id` = "..getPlayerGUID(cid)..";")
		doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.")
		doPlayerAddAddons(cid, 1)
		addEvent(doRemoveCreature, 5*1000, cid, true)
	end
	return TRUE
end

Se funcionar dessa forma, assim como o nick, o player vai vir com a promotion quando relogar.

 

Não funcionou brother, infelizmente ele volta como elder druid, que no caso foi a vocação que escolhi pra testar.

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

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo