Ir para conteúdo
  • 0

Boguemon

Pergunta

Tenho dois server online, sabem como faço pra os chares que serem criados no world_id = 0 receberem o save 0 lá na database? eles são criados seguindo outros 3 samples que tem save 0, porém quando crio eles ficam com save 1

 

@EDIT ou um outro jeito 

Editado por balla1009
Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0
  • Diretor

Como eu te disse no Privado, não consigui fazer a função de verificar o world_id = 0. Então vamos fazer por town_id. No seu mapa editor (Remere's Map Editor) aperte CTRL + T e crie seu segundo Town. Depois na database no Sample/personagem que você quer que não salve coloque o town_id como 2.

 

Em data/lib/050-function.lua adicione:

function setPlayerSave(cid, save)  -- save true ou falseif not isPlayer(cid) then return false endsave=save or falseif save == false then save = 0 else save = 1 endreturn db.query("UPDATE `players` SET `save` = ".. save .." WHERE `id` = " .. getPlayerGUID(cid) .. ";") -- By Yan Liima > Nightend

Depois em creaturescript/scripts/ crie um arquivo .lua e cole isto dentro:

function onLogin(cid)if getTownName(cid, 2) thensetPlayerSave(cid, false) -- false para 0 e true para 1endreturn trueend

em creaturescript.xml add:

<event type="login" name="SetSave" event="script" value="NOME_DO_ARQUIVO.lua"/>
  •  Prontinho, da pra quebrar o galho rsrs 
  • Na hora que o jogador com o town_id = 2 logar no servidor o "SAVE" dele irá ser setado para 0.
Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor
2 minutos atrás, balla1009 disse:
if getTownName(cid, 2) then

só aqi que tenho que mudar caso use outro town id neh? mas uma duvida, ali não seria getTownId?

 

Sim, na verdade os dois daria no mesmo. Id ou Nome.

getTownId(townName) getTownName(townId)

 

Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

  • 0

ta dando isso quando clico em players na database...  Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\phpMyAdmin\libraries\header_http.inc.php on line 8

Editado por balla1009
Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor
1 minuto atrás, balla1009 disse:

ta dando isso  Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\phpMyAdmin\libraries\header_http.inc.php on line 8

 

Não entendi. Tu testou a script certinho no servidor? Isso dai é erro no site creio eu ...

A execução demorou de mais para carregar. O máximo é 60 segundos se a página demorar para carregar e passar disso dá esse erro.

Link para o comentário
Compartilhar em outros sites

  • 0

houston, we have a problem, o script ta setando todo mundo pra save 0, vai ter que ser por world_id mesmo, o de um jeito que ele só faça naquele boneco

 

tentei add isso tbm                    WHERE `world_id = 0` e dava erro :( 

 

 

outro detalhe, ele ta mudando o "online" pra 1 na database, mesmo com o otserv fechado

Editado por balla1009
Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor

No  050-function.lua

Troca:

return db.query("UPDATE `players` SET `save` = ".. save ..";")

Por:

return db.query("UPDATE `players` SET `save` = ".. save .." WHERE `name` = `" .. getPlayerName(cid) .. "`;")

Ou por:

return db.query("UPDATE `players` SET `save` = ".. save .." WHERE `id` = `" .. getPlayerGUID(cid) .. "`;")

 

Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

  • 0

[23:18:04.411] Bituy has logged in.
[23:18:04.411] mysql_real_query(): UPDATE `players` SET `save` = 0 WHERE `id` =
`13`; - MYSQL ERROR: Unknown column '13' in 'where clause' (1054)
 

e com o outro da a mesma coisa, sómuda o 13 pra name

Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor
9 minutos atrás, balla1009 disse:

[23:18:04.411] Bituy has logged in.

[23:18:04.411] mysql_real_query(): UPDATE `players` SET `save` = 0 WHERE `id` =

`13`; - MYSQL ERROR: Unknown column '13' in 'where clause' (1054)

 

e com o outro da a mesma coisa, sómuda o 13 pra name

 

Desculpe, acho que agora vai:

return db.query("UPDATE `players` SET `save` = ".. save .." WHERE `id` = " .. getPlayerGUID(cid) .. ";")

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor

O @Night Wolf me disse que a alteração para verificar o world_id era muito simples. No 050-function.lua troca

return db.query("UPDATE `players` SET `save` = ".. save .." WHERE `id` = " .. getPlayerGUID(cid) .. ";")

Por isto:

return db.query("UPDATE `players` SET `save` = ".. save .." WHERE `id` = " .. getPlayerGUID(cid) .. " AND `world_id` = 0;")

Se não quiser verificar mais por Town troca ele por este:

if isPlayer(cid) then

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...