nóssa nunca tinha achado esse sistema =| parabens, rep+.
- Fórum
- OTServ
- Tutoriais
- Tutoriais de Websites
- Sistema De Achievements No Site! [Gesior]
Sistema De Achievements No Site! [Gesior]
Por Piabeta Kun, 03 de mar. de 2012 em Tutoriais de Websites
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

info
Grupo: Infante
Registrado: 15/08/10
Posts: 1.7k
Reputação: +26
Char no Tibia: Firimud Vivizenade

Pow, muito bom, mas funciona em qualquer OT? Afinal, os archivements são no site, mas para conseguí-los necessita-se de um servidor.
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

dai vc precisa confirar achievement por achievement, eu costmo fazer os de quest pois sao mais faceis como eu expliquei acima é so add storage a mensagem q ele funfa de boa vc pode até fazer outros achievements pode fazer o q quizer com ele, é muito facil de manipular!
tbm muito bom para ots derivados, pois vc tera seus achievements personalizados e etc..
e sim funfa em qualquer ot, so precisa configurar pra ganha no servidor q no site aparece normamente o q vc botar!
GRato a todos pelo apoio! e seu comentario é muito importante para a aprovaçao do topico!
Obrigado pelo conteúdo, REP+.
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

vlw pelo apoio, so faltou reportar para que o topico seja aprovado e movido!
Editado Março 3 por PiabetaMan01
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

ja tentei de varias formas instalar o sistema mais nada, toda vez que altero no config.php ou character.php da erro.
@ edited
ja sei porque não pegou, é pelo simples motivo de você ter copiado uma parte de explicação junto ao codigo php eu achei o correto em outro forum que provavelmente o conteudo saiu de la depois mande pm que ajudo na correção.
Editado Março 11 por AnneMotta
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

creio que esta equivocada, pois eu fiz esse tuto para outro forum , ou seja ele é 100% feito por mim, e da msma maneira q eu expliquei eu fiz pra instalar no meu, eu usei de um forum gringo e melhorei e postei nos forums br!
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

Copia, pois o codigo seu esta assim
/* Achievements Points */
$achievementPoints = $SQL->query('SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetch();
if(!$achievementPoints['sum']) { $achPoints = '0'; } else { $achPoints = $achievementPoints['sum']; }
if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Achievement Points:</TD><TD>'.$achPoints.'</TD></TR>';
/* Achievements Points END*/
e agora procure por isso[b]'Premium Account' : 'Free Account';[/b], e abaixo disso [b]$main_content .= '</TABLE>';[/b]
cole isso:
/*
Achievements website script by Archez.
http://otland.net/members/archez/
Achievements in-game functions and script by darkhaos.
http://otland.net/members/darkhaos/
A person that made this script possible, Chris.
http://otland.net/members/chris/
------------------------------------------------------
Merely scripted for Gesior AAC.
------------------------------------------------------
*/
$achievements = $SQL->query('SELECT `key`, `player_id` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetchAll();
$main_content .= '</br><table border=0 cellspacing="1" cellpadding="4" width=100%><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class=white><b>Account Achievements</b></td></tr>';
if(!$achievements)
{
$main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are no achievements set to be displayed for this character.</td></tr>';
}
else
{
$number_of_rows = 0;
foreach($achievements as $row)
{
if(!array_key_exists(($row['key'] - 19999 ), $achievements))
{
if($row['key'] - 20000 <= 54) { $grade = '<img src="images/achievements/grade.gif" />'; }
elseif($row['key'] - 20000 <= 79) { $grade = '<img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }
elseif($row['key'] - 20000 >= 80) { $grade = ' <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }
$secret = false;
if(in_array(($row['key'] - 20000), $config['archez']['secret']))
{
$secret = '<img src="images/achievements/secret.gif" />';
}
if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; }
$main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="20%">'.$grade.'</td><td>' . $config['archez']['achievements'][$row['key'] - 20000] . '<span style="float:right;">'.$secret.'</span></td></tr>';
$number_of_rows++;
}
}
}
$main_content .= '</table>';
/* END OF ACHIEVEMENTS */
e o certo seria :
agora em character.php procure por isso:
.$player->getLevel().'</TD></TR>
e em baixo adicione isso:
/* Achievements Points */
$achievementPoints = $SQL->query('SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetch();
if(!$achievementPoints['sum']) { $achPoints = '0'; } else { $achPoints = $achievementPoints['sum']; }
if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Achievement Points:</TD><TD>'.$achPoints.'</TD></TR>';
/* Achievements Points END*/
e agora procure por isso'Premium Account' : 'Free Account';, e abaixo disso $main_content .= '</TABLE>';
cole isso:
/*
Achievements website script by Archez.
http://otland.net/members/archez/
Achievements in-game functions and script by darkhaos.
http://otland.net/members/darkhaos/
A person that made this script possible, Chris.
http://otland.net/members/chris/
------------------------------------------------------
Merely scripted for Gesior AAC.
------------------------------------------------------
*/
$achievements = $SQL->query('SELECT `key`, `player_id` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetchAll();
$main_content .= '</br><table border=0 cellspacing="1" cellpadding="4" width=100%><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class=white><b>Account Achievements</b></td></tr>';
if(!$achievements)
{
$main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are no achievements set to be displayed for this character.</td></tr>';
}
else
{
$number_of_rows = 0;
foreach($achievements as $row)
{
if(!array_key_exists(($row['key'] - 19999 ), $achievements))
{
if($row['key'] - 20000 <= 54) { $grade = '<img src="images/achievements/grade.gif" />'; }
elseif($row['key'] - 20000 <= 79) { $grade = '<img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }
elseif($row['key'] - 20000 >= 80) { $grade = ' <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }
$secret = false;
if(in_array(($row['key'] - 20000), $config['archez']['secret']))
{
$secret = '<img src="images/achievements/secret.gif" />';
}
if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; }
$main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="20%">'.$grade.'</td><td>' . $config['archez']['achievements'][$row['key'] - 20000] . '<span style="float:right;">'.$secret.'</span></td></tr>';
$number_of_rows++;
}
}
}
$main_content .= '</table>';
/* END OF ACHIEVEMENTS */
OBS: FICOU UNS ERROS AI POR CAUSA QUE COPIEI DIREITO LA DE CIMA, MAIS DEU PRA ENTENDER AONDE VOCÊ ERROU, SE QUISER MANDE PM QUE TE MANDO O LINK DO TOPICO CERTO EM OUTRO FORUM.
Editado Março 14 por AnneMotta
Muito bom, também nunca tinha visto algo parecido,
Continue assim, +REP
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

bem ane deixa eu te contar uma coisa esse script eu peguei do meu servidor dedicado para fazer o tuto , a unica coisa que eu relembrei no forum gringo foi o alvo de busca para poder coloca-lo no character.php, mais msmo assim vou dar uma revisada!
EDIT
Anne me desculpe pois eu revisei e realmente esqueci de separar uma coisa, eu copiei o meu outro tuto no outro forum e esqueci de separar, obrigado pela observaçao agora está correto ! +rep proce!
Editado Março 15 por PiabetaMan01
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

estamos a disposição :3
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

Grato como sempre!
info
Grupo: Herói
Registrado: 22/04/11
Posts: 2.5k
Reputação: +293
Gênero: Masculino
Char no Tibia: Thyn Zare

Aprovado, Parabéns, Continue Assim!
Mostrou um bom conteúdo, que, com certeza, deverá ajudar muita gente.
Movido para a Seção Correta!
Aprovado, Parabéns, Continue Assim!
Mostrou um bom conteúdo, que, com certeza, deverá ajudar muita gente.
Movido para a Seção Correta!
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

Até que enfim, obrigado pelo reconhecimento e desde já eu nao permito a copia do meu post!
Grato!







info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike
Vamus ao que entereça!
abara seu config/config.php e dentro adicione isso:
agora em character.php procure por isso:
e em baixo adicione isso:
/* Achievements Points */ $achievementPoints = $SQL->query('SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetch(); if(!$achievementPoints['sum']) { $achPoints = '0'; } else { $achPoints = $achievementPoints['sum']; } if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Achievement Points:</TD><TD>'.$achPoints.'</TD></TR>'; /* Achievements Points END*/e agora procure por isso'Premium Account' : 'Free Account';, e abaixo disso $main_content .= '</TABLE>';
cole isso:
/* Achievements website script by Archez. http://otland.net/members/archez/ Achievements in-game functions and script by darkhaos. http://otland.net/members/darkhaos/ A person that made this script possible, Chris. http://otland.net/members/chris/ ------------------------------------------------------ Merely scripted for Gesior AAC. ------------------------------------------------------ */ $achievements = $SQL->query('SELECT `key`, `player_id` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetchAll(); $main_content .= '</br><table border=0 cellspacing="1" cellpadding="4" width=100%><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class=white><b>Account Achievements</b></td></tr>'; if(!$achievements) { $main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are no achievements set to be displayed for this character.</td></tr>'; } else { $number_of_rows = 0; foreach($achievements as $row) { if(!array_key_exists(($row['key'] - 19999 ), $achievements)) { if($row['key'] - 20000 <= 54) { $grade = '<img src="images/achievements/grade.gif" />'; } elseif($row['key'] - 20000 <= 79) { $grade = '<img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; } elseif($row['key'] - 20000 >= 80) { $grade = ' <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; } $secret = false; if(in_array(($row['key'] - 20000), $config['archez']['secret'])) { $secret = '<img src="images/achievements/secret.gif" />'; } if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; } $main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="20%">'.$grade.'</td><td>' . $config['archez']['achievements'][$row['key'] - 20000] . '<span style="float:right;">'.$secret.'</span></td></tr>'; $number_of_rows++; } } } $main_content .= '</table>'; /* END OF ACHIEVEMENTS */e agora crie uma pasta com o nome achievements na pasta images e salve essa imagens
pronto seu sistema de achievements está pronto para o site, e para que apareça no site os achievements dos players basta por como embaiaxo do storage da quest no seguinte exemplo:
explicando o que significa o que!
aqui é a mensagem que aparecerá para o player que gahou o achievement, no caso o exmplo dado é da annihilator quest!
doCreatureSetStorage(cid, 20072, 5)
é a storage do ahievemente + os pontos ganhos com ele, seguido assim: storage: 20072, pontos 5 !!!
como eu sei o storage do achievement?
simples, aquilo que você colocou no config.php é a configuarção dos storages dos achievemtnes que seguem da seguinte forma!
os storages variam de 20001 a 2999, sendo que configurado tem apenas de 20001 a 20083 e os numeros citados em cada achiement (onde esta o nome deles) é o seguiento final pensando assim:
20000 + o numero citado no nome do achievement, ou seja, se o achievement annihilator está o numero 72 será esse o storage da quest para ser adiconado: 20072!
Resultado
Creditos
Editado Junho 9 por PiabetaMan01