Ir para conteúdo
  • Cadastre-se

Transferência de Points entre Players


Posts Recomendados

Queria pedir se é possivel fazer isso, uma transferência de points entre players, exemplo:

Fulano tem 100 points, e ele quer dar de presente para seu amigo in game ou rl 50 points.. ai ele diz:

/transferpoints Ciclano, 50

ai Fulano fica com 50 points e seu amigo Ciclano com 50 points.. é possivel?


+rep.


aguardo. 

Link para o post
Compartilhar em outros sites
  • 5 years later...

É sim. Criando uma talkaction que subtraia da tabela saldo do primeiro jogador e adicione a quantidade ao saldo do segundo jogador.

Master yourself, master the enemy.

Link para o post
Compartilhar em outros sites

talkactions/scripts/sell_points.lua:

function onSay(cid, words, param)
	local var,points = "[Sell Point System] Este documento vale %s points para você usar no site.",getPremiumPoints(cid)
	local min,max = 5, 100
	if param == "" or not tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, use somente numeros.") return true
	elseif tonumber(param) < min or tonumber(param) > max then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, Minimo "..min.." e Maximo "..max.." points.") return true
	elseif points < tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, mas você só possui "..points.." Premium Points.") return true
	end
	local item = doPlayerAddItem(cid, 7702,1) 
	doItemSetAttribute(item, "description", var:format(tonumber(param)))
	setPremiumPoints(cid, points-tonumber(param))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Sell Point System] Você recebeu um paper com "..param.." Premium Points.")
	return true
end

talkactions/talkactions.xml:

<talkaction words="!sellpoints;/sellpoints" event="script" value="sell_points.lua"/>
        <talkaction words="!info;/info" event="script" value="talkpopup.lua"/>

actions/scripts/paper_points.lua

function onUse(cid, item, frompos, item2, topos)
	local var = getItemAttribute(item.uid, "description")
	if var == nil then return true end
	local x = var:match("%b[]")
	if x == "[Sell Point System]" then
		local ret = var:match("%d+")
		doPlayerSendTextMessage(cid, 22,"você recebeu "..ret.." Premium Points.")
		setPremiumPoints(cid, getPremiumPoints(cid)+ret)
		doRemoveItem(item.uid) 
	end
	return true
end

actions/actions.xml

<action itemid="7702" script="paper_points.lua"/> 

Ajudei? REP+ por favor.

Link para o post
Compartilhar em outros sites

opa irmão desculpe, não vi que foi isso, isso faz parte de uma talk do meu ot, n tem nada haver com os points. kkk, vc testou? deu certo? se ajude, rep+ , abraço!

acabei colando esa talk sem querer kkk, tava na pressa

Link para o post
Compartilhar em outros sites

To testando agora

 

[6/7/2018 18:44:42] [Error - TalkAction Interface] 
[6/7/2018 18:44:42] data/talkactions/scripts/sell_points.lua:onSay
[6/7/2018 18:44:42] Description: 
[6/7/2018 18:44:42] data/talkactions/scripts/sell_points.lua:2: attempt to call global 'getPremiumPoints' (a nil value)
[6/7/2018 18:44:42] stack traceback:
[6/7/2018 18:44:42] 	data/talkactions/scripts/sell_points.lua:2: in function <data/talkactions/scripts/sell_points.lua:1>

 

Deu esse erro ai.

Bom vo reformular minha duvida 

Quero somente uma action ou comando que de tipo 1 ponto la no site pro cara

tipo isso algo assim

addpoint(cid, 1)

algo assim pq já existe isso na função do gm quando vc loga no site e da o ponto pros cara

essa aqui.

// Give points to character
    if (empty($_POST['points_char']) === false && empty($_POST['points_value']) === false) {
        $char = sanitize($_POST['points_char']);
        $points = (int)$_POST['points_value'];
        data_dump($_POST, false, "post data");
        $account = mysql_select_single("SELECT `account_id` FROM `players` WHERE `name`='$char' LIMIT 1;");
        data_dump($account, false, "fetching account id from players table");
        $znote_account = mysql_select_single("SELECT `id`, `points` FROM `znote_accounts` WHERE `account_id`='". $account['account_id'] ."';");
        data_dump($znote_account, false, "Fetching existing points from znote_accounts");

        data_dump(
            array(
                'Old:' => $znote_account['points'], 
                'New:' => $points, 
                'Total:' => ($znote_account['points'] + $points)
                ),
            false,
            "Points calculation:");
        $points += $znote_account['points'];
        mysql_update("UPDATE `znote_accounts` SET `points`='$points' WHERE `account_id`='". $account['account_id'] ."';");
    }

 

 

 

 

 

 

Bom acho que quase ta indo agora preciso adicionar 1 ponto a essa colona
db.query("UPDATE `znote_accounts` SET `points` = `points` where id="..getPlayerAccountId(cid))

db.query("UPDATE `znote_accounts` SET `points` = `points` where id="..getPlayerAccountId(cid))

 

Link para o post
Compartilhar em outros sites

@Darcio Antonio @Darcio Antonio 

 

function onSay(cid, words, param)

	local t = string.explode(param, ",")
	
	if param == '' then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o nome do jogador.")
		return true
	end  
	
	local player, balance, pid = getPlayerByName(t[1]), t[2], getPlayerByNameWildcard(t[1])  
	
	if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then   
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O jogador não existe ou está offline.")  
		return true  
	end
	
	if t[2] == null then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite a quantidade de pontos.")
		return true
	end 
	
	local accountName = getPlayerAccount(player)
	local accountPoints = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `name` = '" .. accountName .. "'")
	local points = tonumber(accountPoints:getDataInt("premium_points"))
	local name = getPlayerName(cid)
	
	if(words == "/addpoints") then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce adicionou "..balance.." premium points para o jogador "..t[1]..".")
		doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce recebeu "..balance.." premium points de "..name..".")  
		points = (points+balance)
		db.query("UPDATE `accounts` SET `premium_points` = " .. points .. " WHERE `name`='" .. accountName .. "'")
	elseif (words == "/removepoints") then
		points = (points-balance)
		if points <= 0 then
			doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, ""..name.." retirou todos os seus premium points.")
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce removeu todos os premium points do jogador "..t[1]..".")
			db.query("UPDATE `accounts` SET `premium_points` = '0' WHERE `name`='" .. accountName .. "'")
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce removeu "..balance.." premium points do jogador "..t[1]..".")
			db.query("UPDATE `accounts` SET `premium_points` = " .. points .. " WHERE `name`='" .. accountName .. "'")	
			doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, ""..name.." removeu "..balance.." premium points de sua conta.") 
		end
	end
	
	return true
end  

 

 

Seja mais explícito , pelo que entendi você quer um comando que adiciona ponto para tal player pelo game .

esse tópico era totalmente diferente com oque você queria ^^

 

@Fabio Leandro 

Falto a função getPremiumPoints

 

function getPremiumPoints(cid)
	local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid))
	return query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points")
end
function setPremiumPoints(cid, amount)
	return db.executeQuery("UPDATE `accounts` SET `premium_points` = "..amount.." WHERE `id` = "..getPlayerAccountId(cid))
end

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo