Collapse

Гильдии и sql

5 сообщений в этой теме

Здравствуйте, пишу скрипт, который будет выдавать игроку одну из выбранных гильдий.
Кроме добавления строки в таблицу guild_member и изменения значения guild_id в таблице char для пользователя. Кроме этого с чем еще надо "пошаманить", чтобы завершить процесс?
Или я совсем не в ту парафию полез? 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

такое сработает только при условии что ты используешь SQL базу данных.

Если же нет, то даже если игрок получит гильдию, то при перезаходе она пропадет.

Возможно следующуя команда поможет решить твою проблему:

*instance_create("<instance name>"{,<instance mode>{,<owner id>}});

 

Изменено пользователем Salfer
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
32 минуты назад, Salfer сказал:

такое сработает только при условии что ты используешь SQL базу данных.

Если же нет, то даже если игрок получит гильдию, то при перезаходе она пропадет.

Возможно следующуя команда поможет решить твою проблему:

*instance_create("<instance name>"{,<instance mode>{,<owner id>}});

 

Использую SQL, запросы шлю через query_sql().
Разрешите в лс обратиться за помощью?)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как это instance_create вообще поможет с гильдией? Если это инстанс, а это гильдия?оО

Апдейтишь гуилд, гуилд_мембер и всё.

А, ещё guild_position

Изменено пользователем Gandalf
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Скрытый текст

 

/* ==========================================
* Forces you to join a guild by Lance, ideas by Linkrulez
* ------------------------------------------
*/
int atcommand_forceguild(
const int fd, struct map_session_data* sd,
const char* command, const char* message)
{
// Initialization
char guild_name[100];
struct map_session_data *pl_sd;
struct guild *g;
struct guild_member m;
int guild_id;
int i;

// WTF crap (Copied from other functions)
memset(guild_name, '\0', sizeof(guild_name));
memset(atcmd_output, '\0', sizeof(atcmd_output));
nullpo_retr(-1, sd);

// Syntax detection
if (!message || !*message || sscanf(message, "%99[^\n]", guild_name) < 1) {
clif_displaymessage(fd, "Please, enter a guild name/id (usage: @forceguild <guild_name/id>).");
return -1;
}
    if ((g = guild_search(pl_sd->status.guild_id))!= NULL)
      {
        clif_displaymessage(fd, "Target player appears to already be in a guild.");
        return -1;
    }

// Search for guild
if ((g = guild_searchname(guild_name)) != NULL || // name first to avoid error when name begin with a number
    (g = guild_search(atoi(message))) != NULL) {
  for(i=0;i<g->max_member;i++)
  if(g->member[i].account_id==0) // Finding a blank space
   break;
  if(i==g->max_member){ // If blank space is the max member?
   clif_displaymessage(fd,"Sorry, guild is full.");
   return -1;
  }
  else {
   sd->guild_invite = g->guild_id; // Just in case some function needs it.
   guild_makemember(&m,sd); // Go format my m variable
   intif_guild_addmember( g->guild_id, &m ); // Alright, time to do the interconnection
   return 0;
  }

}
else // Dude, you got the wrong guild!
{
clif_displaymessage(fd,"Sorry, the guild you specified is not found.");
return -1;
}
return 0; // HUH? How it get here?
}

 

 

Код старый, сохранился в одном из древних эмуляторов. Работать будет или нет - без понятия. Надо тестить.

Насколько я помню, то команда позволяла игроку без приглашения вступить в любую гильдию.

Изменено пользователем Sky
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас