lbakiller
New Member
When I try to create a guild I get the following error
Error:
All your characters are already in guild or they don't have required level. (50)
-Character = lvl 200
-logged out in server
-logged in on site
I'm using this "patch" witch clearly doesn't work
http://otland.net/f118/modern-aac-fixed-guild-system-114330/#post1132065
Guilds_model.php
create_guild.php
guilds.php
Error:
All your characters are already in guild or they don't have required level. (50)
-Character = lvl 200
-logged out in server
-logged in on site
I'm using this "patch" witch clearly doesn't work
http://otland.net/f118/modern-aac-fixed-guild-system-114330/#post1132065
Guilds_model.php
PHP:
<?php
class Guilds_Model extends Model {
public function __construct() {
parent::__construct();
$this->load->database();
}
public function getGuildsList($world_id = null) {
$ext = (!empty($world_id)) ? "WHERE `world_id` = '$world_id'": "";
$guilds = array();
$this->db->select('id, name, world_id, motd');
if($world_id)
$sql = $this->db->get_where('guilds', array('world_id' => $world_id))->result();
else
$sql = $this->db->get('guilds')->result();
foreach($sql as $cmd)
$guilds[] = array("id"=>$cmd->id, "world_id"=>$cmd->world_id, "name"=>$cmd->name, "motd"=>$cmd->motd);
return $guilds;
}
public function getCharactersAllowedToCreateGuild($level = 0) {
$characters = array();
$this->db->select('id, name, level');
$sql = $this->db->get_where('players', array('online' => 0, 'rank_id' => 0, 'level' => $level, 'account_id' => $_SESSION['account_id']))->result();
foreach($sql as $cmd) {
$characters[] = array('id'=>$cmd->id, 'name'=>$cmd->name,'level'=>$cmd->level);
}
return $characters;
}
public function checkPlayerCreatingGuild($id) {
return $this->db->get_where('players', array('id' => $id, 'level' => LEVELTOCREATEGUILD, 'account_id' => $_SESSION['account_id']))->num_rows() ? true : false;
}
public function checkGuildName($name) {
return $this->db->get_where('guilds', array('name' => $name))->num_rows() ? true : false;
}
public function createGuild($name, $character) {
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$player = new OTS_Player();
$player->load($character);
$new_guild = new OTS_Guild();
$new_guild->setCreationData($_SERVER['REQUEST_TIME']);
$new_guild->setName($name);
$new_guild->setOwner($player);
$new_guild->save();
$new_guild->setCustomField('motd', 'New guild. Leader must edit this text :)');
$new_guild->setCustomField('creationdata', $_SERVER['REQUEST_TIME']);
$new_guild->setCustomField('world_id', $player->getWorld());
$ranks = $new_guild->getGuildRanksList();
$ranks->orderBy('level', POT::ORDER_DESC);
foreach($ranks as $rank)
if($rank->getLevel() == 3)
{
$player->setRank($rank);
$player->save();
}
return $new_guild->getId();
}
public function getGuildInfo($id) {
return $this->db->get_where('guilds', array('id' => $id))->result_array();
}
public function isGuildLeader($id) {
return $this->db->query("SELECT `id` FROM `players` WHERE `id` = ".$this->db->escape($id)." AND `account_id` = '".$_SESSION['account_id']."' ")->num_rows() ? true : false;
}
public function isViceLeader($id) {
$viceRank = 2;
return $this->db->query("SELECT `p`.`id`, `p`.`name` FROM `guild_ranks` AS `r` LEFT JOIN `players` AS `p` ON `p`.`rank_id` = `r`.`id` WHERE `r`.`guild_id` = ".$this->db->escape($id)." AND `r`.`level` = '".$viceRank."' AND `p`.`account_id` = '".$_SESSION['account_id']."' ")->num_rows() ? true : false;
}
public function isLeader($id) {
$Rank = 3;
return $this->db->query("SELECT `p`.`id`, `p`.`name` FROM `guild_ranks` AS `r` LEFT JOIN `players` AS `p` ON `p`.`rank_id` = `r`.`id` WHERE `r`.`guild_id` = ".$this->db->escape($id)." AND `r`.`level` = '".$Rank."' AND `p`.`account_id` = '".$_SESSION['account_id']."' ")->num_rows() ? true : false;
}
public function isInvitable($name) {
return $this->db->query("SELECT `rank_id`, `online` FROM `players` WHERE `name` = \"".$name."\"")->result_array();
}
public function getCharacterId($name) {
$this->db->select('id');
return $this->db->get_where('players', array('name' => $name))->result_array();
}
public function invite($id, $player) {
$this->db->insert('guild_invites', array('player_id' => $player, 'guild_id' => $id));
}
public function getMembers($id) {
return $this->db->query("SELECT players.id, players.name, guild_ranks.name AS guild_rank FROM guild_ranks LEFT JOIN players ON rank_id = guild_ranks.id WHERE guild_ranks.guild_id = ".$this->db->escape($id)." ORDER BY guild_ranks.level DESC")->result_array();
}
public function isGuildMember($id, $player) {
return $this->db->query("SELECT players.rank_id FROM players, guild_ranks WHERE players.rank_id = guild_ranks.id AND players.id = '".$player."' AND guild_ranks.guild_id = ".$this->db->escape($id)."")->num_rows() ? true : false;
}
public function getMemberDescription($id) {
$this->db->select('guildnick');
return $this->db->get_where('players', array('id' => $id))->result_array();
}
public function changeDescription($player, $desc) {
$this->db->update('players', array('guildnick' => $desc), array('id' => $player));
}
public function getMemberRank($id) {
$this->db->select('rank_id');
return $this->db->get_where('players', array('id' => $id))->result_array();
}
public function getRanks($id) {
$this->db->select('name, id');
return $this->db->get_where('guild_ranks', array('guild_id' => $id))->result_array();
}
public function getRanksID($id) {
$this->db->select('id');
return $this->db->get_where("guild_ranks", array('guild_id' => $id))->result_array();
}
public function changeRank($id, $rank) {
$this->db->update('players', array('rank_id' => $rank), array('id' => $id));
}
public function kick($id) {
$this->db->update('players', array('guildnick' => '', 'rank_id' => 0), array('id' => $id));
}
public function leave($id) {
$this->db->update('players', array('guildnick' => '', 'rank_id' => 0), array('id' => $id));
}
public function changeMotd($id, $motd) {
$this->db->update('guilds', array('motd' => $motd), array('id' => $id));
}
public function deleteGuild($id) {
$this->db->query("DELETE FROM `guilds` WHERE `id` = ".$this->db->escape($id)."");
//Triggers should do rest of the job.
if(file_exists("public/guild_logos/".$id.".gif"))
unlink("public/guild_logos/".$id.".gif");
}
public function canUpdate($id) {
$sql = $this->db->query("SELECT `online`, `name` FROM `players` WHERE `id` = ".$this->db->escape($id)."")->row_array();
return $sql;
}
}
?>
create_guild.php
PHP:
<?php
require_once("system/application/config/create_character.php");
echo "<h1>Create Guild</h1>";
if(count($characters) == 0)
error("All your characters are already in guild or they don't have required level. (<b>".$config['levelToCreateGuild']."</b>)");
else {
error(validation_errors());
echo form_open("guilds/create", array('method'=>'post'));
echo "<label>Character:</label>";
echo "<select name='character'>";
foreach($characters as $character) {
echo "<option value='".$character['id']."'>".$character['name']." (".$character['level'].")</option>";
}
echo "</select><br /><br />";
echo "<label>Guild name:</label>";
echo "<input type='text' name='name'><br />";
echo "<input type='submit' value='Create' name='submit'>";
echo "</form>";
}
?>
guilds.php
PHP:
<?php
require_once("system/application/config/create_character.php");
/*Setting global to alllow plugins to access guild list.*/
$GLOBALS['guilds'] = $guilds;
$ide = new IDE;
try { $ide->loadInjections("guilds_index"); }
catch(Exception $e) { error($e->getMessage());}
if(!$ide->isLogged()){alert("You need to be logged in to create guild.");} else {
echo "<a class='createGuildLink' href='guilds/create'>Create Guild</a>";
}
if(count($config['worlds'] > 1)) {
echo form_open("guilds", array('method'=>'post'));
echo "<label>World:</label>";
echo "<select name='world_id'>";
foreach($config['worlds'] as $id=>$world) {
echo "<option value='$id'>$world</option>";
}
echo "</select>";
echo "<input type='submit' value='Sort'>";
echo "</form>";
}
if(count($guilds) == 0)
alert("There is no guilds.");
else {
echo "<table width='100%'>";
echo "<tr><td width='15%'><center><b>Logo</b></center></td><td><center><b>Name</b></center></td><td width='15%'><center><b>World</b></center></td></tr>";
foreach($guilds as $guild) {
$logo = (file_exists("public/guild_logos/".$guild['id'].".gif")) ? "<img src='".WEBSITE."/public/guild_logos/".$guild['id'].".gif' width='64' height='64'>" : "<img src='".WEBSITE."/public/guild_logos/default.gif'>";
echo "<tr><td width='15%'><center>$logo</center></td><td><center><a href='guilds/view/".$guild['id']."'>".$guild['name']."</a><br><i>".$guild['motd']."</i></center></td><td width='15%'><center>".$config['worlds'][$guild['world_id']]."</center></td></tr>";
}
echo "</table>";
}
?>