Ir para conteúdo

Featured Replies

Postado

alguem poderia me ajudar???

Quero colocar o meu sistema de look com patentes para mostrar

Os Reset que os players tem

 

Script de look

function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end
    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    }
    return size.day + size.week + size.month
end
function getDeathsAndKills(cid, type) -- by vodka
    local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0
        if (query:getID() ~= -1) then
            repeat
                d = d+1
            until not query:next()
            query:free()
        end
    return d  
end
function GetPatenteLook(cid)
	local ranks, kills = {
		[{0, 9}] = "Iniciante", 
		[{10, 49}] = "Ganguests",
		[{50, 99}] = "Assassino",
		[{100, 149}] = "Dead",
		[{150, 199}] = "Sanguinario",		
		[{200, math.huge}] = "Killer"
	},getDeathsAndKills(cid, "kill")
	for v , r in pairs(ranks) do
		if kills >= v[1] and kills <= v[2] then
			return r
		end
	end
end
function onLogin(cid)
    registerCreatureEvent(cid, "newlook")
    return true
end
 
function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) and thing.uid ~= cid then
        doPlayerSetSpecialDescription(thing.uid,"\n"..(getPlayerSex(thing.uid) == 0 and "She" or "").." Ele Matou ["..getDeathsAndKills(thing.uid, "kill").."]Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "").." Ele Morreu ["..getDeathsAndKills(thing.uid, "death").."] Vezes...\nSua Patente é "..GetPatenteLook(thing.uid)..".")
        return true
    elseif thing.uid == cid then
        doPlayerSetSpecialDescription(cid,"\nVoce Matou ["..getDeathsAndKills(cid, "kill").."]Players.\nVoce Morreu ["..getDeathsAndKills(cid, "death").."]  Vezes...\nSua Patente é "..GetPatenteLook(cid)..".")
        local string = 'You see yourself.'
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
            string = string..' You are '.. getPlayerGroupName(cid) ..'.'
        elseif getPlayerVocation(cid) ~= 0 then
            string = string..' You are '.. getPlayerVocationName(cid) ..'.'
        else
            string = string..' You have no vocation.'
        end
        string = string..getPlayerSpecialDescription(cid)..'\n'
 
        if getPlayerGuildId(cid) > 0 then
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
        end
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
            string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
            string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
        end
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
            string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
        return false
    end
    return true
end

agora vou postar o sistema de reset que uso

 

local config = {
	minlevel = 20000, --- level inical para resetar
	price = 100000, --- preço inicial para resetar
	newlevel = 20, --- level apos reset
	priceByReset = 90000, --- preço acrescentado por reset
	percent = 45, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
	maxresets = 25,
	levelbyreset = 10000 --- quanto de level vai precisar a mais no próximo reset
}
local function getResets(cid)
	local query = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
	return query:getDataInt("resets") <= 0 and 0 or query:getDataInt("resets")
end
local function addReset(cid)
	local resets = getResets(cid)
	doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	local hp = getCreatureMaxHealth(cid)
	local resethp = hp*(config.percent/100)
	setCreatureMaxHealth(cid, resethp)
	local differencehp = (hp - resethp)
	doCreatureAddHealth(cid, -differencehp)
	local mana = getCreatureMaxMana(cid)
	local resetmana = mana*(config.percent/100)
	setCreatureMaxMana(cid, resetmana)
	local differencemana = (mana - resetmana)
	doCreatureAddMana(cid, -differencemana)
	local guid = getPlayerGUID(cid)
	doRemoveCreature(cid) 
	local description = resets+1
	db.query("UPDATE `players` SET `level` = "..config.newlevel..", `experience`= 0, `resets`= "..description.." WHERE `players`.`id`= ".. guid)
	return true
end

function onSay(cid, words, param, channel)
	local var = getResets(cid)
	local newPrice = config.price + (var * config.priceByReset)
	local newminlevel = config.minlevel + (var * config.levelbyreset)
	if param == "quantity" then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You have a total of '..var..' reset(s).')
	end
	if var >= config.maxresets then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'You already have reached the maximum of '.. config.maxresets.. ' resets!')
	elseif getPlayerMoney(cid) < newPrice then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'Its necessary to have at least '..newPrice..' gp\'s for reseting!')
	elseif getPlayerLevel(cid) < newminlevel then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'The minimum level for reseting is '..newminlevel..'!')
	end
	doPlayerRemoveMoney(cid,newPrice)
	addEvent(function()
		if isPlayer(cid) then
			addReset(cid)
		end
	end, 3000)
	local number = var+1
	local msg ="---[Reset: "..number.."]-- You have reseted! You'll be disconnected in 3 seconds."
	doPlayerPopupFYI(cid, msg)
	return true
end

 

Alguem pode me ajudar??? 

@Vodkart te marquei pq vc que fez os 2 scripts. poderia me ajudar.. se conseguir colocar para mostrar quantos critical e dodge o player tem tbm me ajuda muito 

Obrigado

+REP

 

Resolvido por Vodkart

Ir para solução
  • Respostas 8
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @mullino  function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.

  • @mullino entao deixa eu ver o script que adiciona dodge e critical, usei pela storage ali dos códigos:   local dodge, critic = 48902,48903

  • verdade era a storage que estava errada ja consertei kk   muito obrigado @Vodkart serio mesmo cara vc sempre salvando nos aki do tk      nao tenho nem como mais te agradecer d

Postado

qual teu sistema de critical e dodge? o reset vai aparecer como no look?

 

[Resets: 50][Critical: 10][Dodge: 100]

 

??? olha que estranho que ficaria kkk

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor
  Em 18/02/2019 em 13:12, Vodkart disse:

[Resets: 50][Critical: 10][Dodge: 100]

 

??? olha que estranho que ficaria kkk

 You see Phantom Shooter [Reset: 3] (Level 53776). ][Critical: 100] [Dodge: 100] He is a hell archer. He is Lider of the Congratulations.
 Ele Matou [166]Players.
 Ele Morreu [9] Vezes...
Sua Patente é Sanguinario.

 

 

tipo assim acho que ta bom @Vodkart se nao der pra colocar os critical pode deixar

mas eu uso esse sistema

function onStatsChange(cid, attacker, type, combat, value)
	if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isPlayer(attacker) then
		if (getPlayerStorageValue(attacker, 48903)*1) >= math.random (0,1000) then
			dano = math.ceil(value*(2))
			doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255)
			doSendAnimatedText(getCreaturePos(attacker), "Critical!", 100)
		end
	end
	return true
end

dodge

local lvldodge = 48902
local percent = 1.0


function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then
if (getPlayerStorageValue(cid, lvldodge)*3) >= math.random (0,1000) then
value = math.ceil(value*(percent))
doTargetCombatHealth(attacker, cid, combat, -value, -value, 255)
doSendAnimatedText(getCreaturePos(cid), "DODGE", 6)
return false
end
end
return true
end

 

Ajudaa

 

Postado

@mullino 

function getPlayerFrags(cid)
	local time = os.time()
	local times = {today = (time - 86400), week = (time - (7 * 86400))}
	local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
	if(result:getID() ~= -1) then
		repeat
			local content = {date = result:getDataInt("date")}
			if(content.date > times.today) then
				table.insert(contents.day, content)
			elseif(content.date > times.week) then
				table.insert(contents.week, content)
			else
				table.insert(contents.month, content)
			end
		until not result:next()
		result:free()
	end
	local size = {
		day = table.maxn(contents.day),
		week = table.maxn(contents.week),
		month = table.maxn(contents.month)
	}
	return size.day + size.week + size.month
end

function getDeathsAndKills(cid, type) -- by vodka
	local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0
	if (query:getID() ~= -1) then
		repeat
			d = d+1
		until not query:next()
		query:free()
	end
	return d 
end

function GetPatenteLook(cid)
	local ranks, kills = {
		[{0, 9}] = "Iniciante", 
		[{10, 49}] = "Ganguests",
		[{50, 99}] = "Assassino",
		[{100, 149}] = "Dead",
		[{150, 199}] = "Sanguinario",		
		[{200, math.huge}] = "Killer"
	},getDeathsAndKills(cid, "kill")
	for v , r in pairs(ranks) do
		if kills >= v[1] and kills <= v[2] then
			return r
		end
	end
end

function getResets(cid)
	local query = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
	return query:getDataInt("resets") <= 0 and 0 or query:getDataInt("resets")
end

local dodge, critic = 48902,48903

function onLogin(cid)
	registerCreatureEvent(cid, "newlook")
	return true
end

function onLook(cid, thing, position, lookDistance)
	if isPlayer(thing.uid) and thing.uid ~= cid then
		doPlayerSetSpecialDescription(thing.uid,"\n[Reset: "..getResets(thing.uid).."] [Critical: "..getPlayerStorageValue(thing.uid, critic).."] [Dodge: "..getPlayerStorageValue(thing.uid, dodge).."]\n"..(getPlayerSex(thing.uid) == 0 and "Ela" or "Ele").." Matou ["..getDeathsAndKills(thing.uid, "kill").."]Players.\n"..(getPlayerSex(thing.uid) == 0 and "Ela" or "Ele").." Morreu ["..getDeathsAndKills(thing.uid, "death").."] Vezes...\nSua Patente é "..GetPatenteLook(thing.uid)..".")
		return true
	elseif thing.uid == cid then
		doPlayerSetSpecialDescription(cid,"\n[Reset: "..getResets(cid).."] [Critical: "..getPlayerStorageValue(cid, critic).."] [Dodge: "..getPlayerStorageValue(cid, dodge).."]\nVoce Matou ["..getDeathsAndKills(cid, "kill").."]Players.\nVoce Morreu ["..getDeathsAndKills(cid, "death").."] Vezes...\nSua Patente é "..GetPatenteLook(cid)..".")
		local string = 'You see yourself.'
		if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
			string = string..' You are '.. getPlayerGroupName(cid) ..'.'
		elseif getPlayerVocation(cid) ~= 0 then
			string = string..' You are '.. getPlayerVocationName(cid) ..'.'
		else
			string = string..' You have no vocation.'
		end
		string = string..getPlayerSpecialDescription(cid)..'\n'
		
		if getPlayerGuildId(cid) > 0 then
			string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
			string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
		end
		
		if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
			string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
			string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
		end
		
		if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
			string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
		end
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) 
		return false
	end
	return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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