BE

[Pedido] Scrip - Muito Complexo!

Por beddy, 11 de abr. de 2012 em Scripts

scrip complexo
tibia
script
otserv
31
3.5k
beddyB
11 de abril de 2012 às 18:04

Tipo do script: VARIOS

Protocolo (versão do Tibia): 8.5

Servidor utilizado: TFS 8.6

Nível de experiência: ALTA

Adicionais/Informações:

 

Bem começa assim:

 

Tem um char, com algum storage.

Ele upa 1 level, ele ganha 5 pontos neste storage.

Depois com estes 5 pontos, ele pode comprar HP ou MANA em um NPC.

Ele upa outro level, ganha mais 5 pontos no storage.

Depois, pode comprar HP ou MANA em um NPC.

E assim vai.. sendo que os pontos podem ser acumulados..

 

REP + pra quem conseguir.

VodkartV
11 de abril de 2012 às 18:09

n tem nd de complexo nesse script, para acumular o value key é só usar

 

setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+5)

beddyB
11 de abril de 2012 às 18:27

Porem eu nao sei formular isso, ;/

Makelin1M
11 de abril de 2012 às 18:35

¬¬ pelo scrip so vc formular

 

.

BeekiB
11 de abril de 2012 às 19:02

@SmartBox

 

 

quando for postar aqui, tente postar algo para sanar a dúvida ou ajudar o Membro acima, abraços, Negativado!

Makelin1M
11 de abril de 2012 às 19:22

pois akilo e que q eu acho q e tu mi da - rep pode devolver meu rep n ?

 

¬¬

Editado Abril 11 por Smartbox

beddyB
11 de abril de 2012 às 22:08

Putz, ja procurei varias coisas, a unica coisa que achei foi uma talkaction de dar HP e MANA, por gps, acho qe vou desistir de fazer, isso...

se algum anjo poder me ajudar... dou reps... vou dando com o tempo se for presiso..

VodkartV
11 de abril de 2012 às 22:40

Beleza, eu faço, mas não agora.

Estou terminando um mod, amanha pela manhã ou atarde se ninguém resolver o seu pedido eu entrego fmz?

até logo

VildenV
11 de abril de 2012 às 22:46

Coloque a talkactions q vc achou aqui q de repente eu consigo da uma mexida..

_

 

Smartbox -Rep, se continuar acrescentando nada ao tópico, irei continuar te dando -Rep

até ser suspenso.

Ja te alertei via mp em outro tópico, e você continuar fazendo a mesma coisa.

 

Caso tenha dúvidas use o botão de enviar mensagem pessoal e não aqui no tópico.

 

Abraços.

 

Link útil ~> O que é Flood?

Editado Abril 11 por Vilden

beddyB
11 de abril de 2012 às 22:55

Bem, esta é a talkaction que eu achei.. mas que na verdade seria passada para um NPC, que voce falaria com ele e ele te daria mana ou life, como voce escolhesse.

Sendo usado os PONTOS DE UP LEVEL que voce foi ganhando...

 

Esses pontos poderiam ser chamados até de POINTS, se tiver alguma ideia de nome ou sugestao ;D

 

-- [( Script created by DevilMoon edited by Doidin for XTibia.com )] --
function onSay(cid, words, param)

local health = 1000 -- Vida que será adicionada ao player após ele usar o comando!
local mana = 1000 -- Mana que será adicionada ao player após ele usar o comando!
local cost = 10000 -- Preço para você poder usar o comando e comprar mana ou health!

if (words == "!buymana") then
if (doPlayerRemoveMoney(cid, cost) == TRUE) then
doCreatureAddMana(cid, mana)
doSendMagicEffect(getCreaturePosition(cid), 12)
else
doPlayerSendCancel(cid, "Sorry, you need "..cost.." gold coins to buy mana.")
return TRUE
end

elseif (words == "!buyhealth") then
if (doPlayerRemoveMoney(cid, cost) == TRUE) then
doCreatureAddHealth(cid, health)
doSendMagicEffect(getCreaturePosition(cid), 12)
else
doPlayerSendCancel(cid, "Sorry, you need "..cost.." gold coins to buy mana.")
end
return TRUE
end
end

VodkartV
11 de abril de 2012 às 23:02

kk

melhor que usar storage é usar db, seu ot é pelo sqlite?

dai já faço tudo por banco de dados e é pica

beddyB
11 de abril de 2012 às 23:04

sim.. é sql.. :D

VodkartV
11 de abril de 2012 às 23:09

dá nada eu acho, faz o seguinte:

 

 

em lib/functions vc adiciona:

 

function getPoints(cid)
local check = db.getResult("SELECT `points` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
return check:getDataInt("points") <= 0 and 0 or check:getDataInt("points") end
function addPoints(cid,amount)
db.executeQuery("UPDATE `players` SET `points` = "..getPoints(cid).."+"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end
function removePoints(cid,amount)
db.executeQuery("UPDATE `players` SET `points` = "..getPoints(cid).."-"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end
function setPoints(cid,value)
db.executeQuery("UPDATE `players` SET `points` = "..value.." WHERE `id` = "..getPlayerGUID(cid)) end

 

e na sua database vc executa:

 

ALTER TABLE `players` ADD `points` INT NOT NULL DEFAULT '0'

 

se conseguir me falar, porque eu já entrego tudo hoje kk

beddyB
11 de abril de 2012 às 23:18

PROTINHO, foi feito isso.. nao deu nenhum alerta no ot.. :D

 

Estou a espera, vodkart.

Editado Abril 12 por beddy

MaXwEllDeNM
12 de abril de 2012 às 00:12

@Vodkart

 

Não daria na mesma usar uma storage que em db? Storages são guardadas no banco de dados do mesmo jeito.. xD

 

@Beddy

 

Gostei da tua ideia, vou fazer um aqui tipo como é no Mu Online, dependendo da vocação o cara vai ganhando os points, que poderão ser distribuídos em Vitalidade, Skills, Magic, ou Energy.