SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 19/02/2017, 08:44 AM   #1
Johhnyllll
Big Clucker
 
Johhnyllll's Avatar
 
Join Date: Sep 2014
Posts: 157
Reputation: 5
Default Динамические ранги [MySQL R40].

Привет всем, мой вопрос заключается в том, как можно сделать динамические ранги?
Вот что у меня получилось:
PHP Code:
enum E_PLAYER_RANG_DATA{
    
ORM_r_ormid,
    
// mysql synced
    
id,
    
rang1[32],
    
rang2[32],
    
rang3[32],
    
rang4[32],
    
rang5[32],
    
rang6[32],
    
rang7[32],
    
rang8[32],
    
rang9[32],
    
rang10[32],
}
new 
RG[1][E_PLAYER_RANG_DATA]; 
PHP Code:
mysql_tquery(MySQL:1,"SELECT * FROM `rangs`""OnMySQL_SelectRangs"); 
PHP Code:
public OnMySQL_SelectRangs()
{
    new 
TotalRanks;
    for(new 
x=0sizeof(RG); x++){
        
RG[x][_r_ormid] = orm_create("rangs");

        
orm_addvar_int(RG[x][_r_ormid],RG[x][id],"ID");
        
orm_setkey(RG[x][_r_ormid],"ID");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang1], 32"Rang1");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang2], 32"Rang2");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang3], 32"Rang3");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang4], 32"Rang4");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang5], 32"Rang5");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang6], 32"Rang6");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang7], 32"Rang7");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang8], 32"Rang8");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang9], 32"Rang9");
        
orm_addvar_string(RG[x][_r_ormid],RG[x][rang10], 32"Rang10");
        
TotalRanks++;
    }
    
printf("Загруженно Рангов:%i       [Длительность загрузки: %d ms]",TotalRanks,cache_get_query_exec_time(MILLISECONDS));

Сделал таблицу:

Но, я не знаю как именно сделать "выгрузка" этих рангов.
PHP Code:
printf("%s"rang5); //выдает ошибку 
printf("%s",RG[0][rang5]); //тоже
//а если добавить в цикл
printf("%s",RG[x][rang5]);//В консоль появляется пустое место 
Нуждаюсь в совете, какой-то помощи, может у кого есть примеры подбного.
Спасибо.
P.S: Я еще писал на разных форумах, никто не смог помочь...
__________________
Мои проекты: GitHub
Johhnyllll is offline   Reply With Quote
Old 19/02/2017, 08:47 AM   #2
Mutha_X
Gangsta
 
Join Date: Sep 2009
Location: recursion
Posts: 592
Reputation: 24
Default Re: Динамические ранги [MySQL R40].

Хоть это и не относится к решению твоей проблемы, но структура БД не нормализована.
__________________
Russian forums: asking question - taking grammar notations.
Учитесь задавать вопросы по существу и изучать матчасть: иначе приобретайте лекарство "НИБОМБИН".
Mutha_X is offline   Reply With Quote
Old 19/02/2017, 08:52 AM   #3
Johhnyllll
Big Clucker
 
Johhnyllll's Avatar
 
Join Date: Sep 2014
Posts: 157
Reputation: 5
Default Re: Динамические ранги [MySQL R40].

Quote:
Originally Posted by Mutha_X View Post
Хоть это и не относится к решению твоей проблемы, но структура БД не нормализована.
А как лучше сделать?
Просто я впервые работаю с рангами, обычно я встречал у других подобное(т.е.в самом моде):
PHP Code:
stock Get_RangName(playerid)
{
    new 
dests[43];
    switch(
P[playerid][p_job_team]){
        case 
ORG_FBI:{
            switch(
P[playerid][p_rang]){
                case 
1dests "Стажер";
                case 
2dests "Младший агент";
                case 
3dests "Агент отдела ГНК";
                case 
4dests "Агент отдела КСО";
                case 
5dests "Старший агент";
                case 
6dests "Глава отдела ГНК";
                case 
7dests "Глава отдела КСО";
                case 
8dests "Инспектор ФБР";
                case 
9dests "Заместитель директора ФБР";
                case 
10dests "Директор ФБР";
            }
        }
    }
    return 
dests;

Вообщем, нуждаюсь в совете как всё лучше сделать...
__________________
Мои проекты: GitHub
Johhnyllll is offline   Reply With Quote
Old 19/02/2017, 09:37 AM   #4
ZiGGi
High-roller
 
ZiGGi's Avatar
 
Join Date: Sep 2008
Location: Russia
Posts: 1,466
Reputation: 212
Default Re: Динамические ранги [MySQL R40].

Как-то так:

PHP Code:
// fraction ranks table
id fraction_id name
// ...

// ...
#define INVALID_FRACTION_ID -1
#define INVALID_MEMBER_ID -1
#define INVALID_RANK_ID -1
#define MAX_FRACTIONS 100
#define MAX_FRACTION_PLAYERS 50
// ...

// ...
enum E_RANK_INFO {
    
ORM:_r_ormid,
    
e_r_id,
    
e_r_name[MAX_RANK_NAME],
}
static 
gRanks[MAX_RANKS][E_RANK_INFO];
// ...

// ...
enum E_FRACTION_MEMBER_INFO {
    
// ...
    
e_fm_rankid,
    
// ...
}
static 
gFractionMembers[MAX_FRACTIONS][MAX_FRACTION_PLAYERS][E_FRACTION_MEMBER_INFO];
// ...

// ...
stock FractionMember_GetRankName(fractionidmemberidname[], const size sizeof(name))
{
    new 
rankid FractionMember_GetRank(fractionidmemberid);
    if (
rankid == INVALID_RANK_ID) {
        return 
0;
    }
    
name[0] = '\0';
    
strcat(namegRanks[rankid][e_r_name], size);
    return 
1;
}
// ...

// ...
stock GetPlayerFractionRankName(playeridname[], const size sizeof(name))
{
    new
        
fractionid,
        
memberid;

    
fractionid GetPlayerFractionID(playerid);
    
memberid GetPlayerFractionMemberID(playerid);

    if (
fractionid == INVALID_FRACTION_ID || memberid == INVALID_MEMBER_ID) {
        return 
0;
    }

    return 
FractionMember_GetRankName(fractionidmemberidnamesize);
}
// ... 
ZiGGi is offline   Reply With Quote
Old 19/02/2017, 11:01 AM   #5
Johhnyllll
Big Clucker
 
Johhnyllll's Avatar
 
Join Date: Sep 2014
Posts: 157
Reputation: 5
Default Re: Динамические ранги [MySQL R40].

Quote:
Originally Posted by ZiGGi View Post
Как-то так:

PHP Code:
// fraction ranks table
id fraction_id name
// ...

// ...
#define INVALID_FRACTION_ID -1
#define INVALID_MEMBER_ID -1
#define INVALID_RANK_ID -1
#define MAX_FRACTIONS 100
#define MAX_FRACTION_PLAYERS 50
// ...

// ...
enum E_RANK_INFO {
    
ORM:_r_ormid,
    
e_r_id,
    
e_r_name[MAX_RANK_NAME],
}
static 
gRanks[MAX_RANKS][E_RANK_INFO];
// ...

// ...
enum E_FRACTION_MEMBER_INFO {
    
// ...
    
e_fm_rankid,
    
// ...
}
static 
gFractionMembers[MAX_FRACTIONS][MAX_FRACTION_PLAYERS][E_FRACTION_MEMBER_INFO];
// ...

// ...
stock FractionMember_GetRankName(fractionidmemberidname[], const size sizeof(name))
{
    new 
rankid FractionMember_GetRank(fractionidmemberid);
    if (
rankid == INVALID_RANK_ID) {
        return 
0;
    }
    
name[0] = '\0';
    
strcat(namegRanks[rankid][e_r_name], size);
    return 
1;
}
// ...

// ...
stock GetPlayerFractionRankName(playeridname[], const size sizeof(name))
{
    new
        
fractionid,
        
memberid;

    
fractionid GetPlayerFractionID(playerid);
    
memberid GetPlayerFractionMemberID(playerid);

    if (
fractionid == INVALID_FRACTION_ID || memberid == INVALID_MEMBER_ID) {
        return 
0;
    }

    return 
FractionMember_GetRankName(fractionidmemberidnamesize);
}
// ... 
Спасибо, всё скомпилил.
Но как этим пользоваться?
оч.тупой вопрос
__________________
Мои проекты: GitHub
Johhnyllll is offline   Reply With Quote
Old 19/02/2017, 11:22 AM   #6
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,408
Reputation: 104
Default Re: Динамические ранги [MySQL R40].

Quote:
Originally Posted by Johhnyllll View Post
Но как этим пользоваться?
оч.тупой вопрос
Вот вам рецепт:
  1. Выключаете компьютер.
  2. Одеваетесь.
  3. Идёте в ближайший макдональдс.
  4. Устраивайтесь на работу.
  5. Кричите: "Свободная касса!".
С такими вопросами программирование явно не для вас.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 19/02/2017, 11:35 AM   #7
Johhnyllll
Big Clucker
 
Johhnyllll's Avatar
 
Join Date: Sep 2014
Posts: 157
Reputation: 5
Default Re: Динамические ранги [MySQL R40].

Quote:
Originally Posted by Stepashka View Post
Вот вам рецепт:
  1. Выключаете компьютер.
  2. Одеваетесь.
  3. Идёте в ближайший макдональдс.
  4. Устраивайтесь на работу.
  5. Кричите: "Свободная касса!".
С такими вопросами программирование явно не для вас.
Okay.
__________________
Мои проекты: GitHub
Johhnyllll is offline   Reply With Quote
Old 19/02/2017, 01:08 PM   #8
Mcc
Huge Clucker
 
Join Date: May 2015
Posts: 307
Reputation: 8
Default Re: Динамические ранги [MySQL R40].

если макдональдс не шик, скриптьте самостоятельно, без задавания вопросов на форумах, за столько лет скопилось полным полно всякого материала, пользуйтесь, все придет со временем и практикой йо
Mcc is offline   Reply With Quote
Old 19/02/2017, 02:11 PM   #9
Johhnyllll
Big Clucker
 
Johhnyllll's Avatar
 
Join Date: Sep 2014
Posts: 157
Reputation: 5
Default Re: Динамические ранги [MySQL R40].

Quote:
Originally Posted by Mcc View Post
если макдональдс не шик, скриптьте самостоятельно, без задавания вопросов на форумах, за столько лет скопилось полным полно всякого материала, пользуйтесь, все придет со временем и практикой йо
Будет сток ранги.
Может в будущем переделаю на динамическую ранговую систему...
__________________
Мои проекты: GitHub
Johhnyllll is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Динамические аргументы Kolstin Русский/Russian 6 25/03/2014 01:06 PM
Оцените Динамические Фермы. AnGeL_KRAMER Русский/Russian 12 19/11/2013 06:24 AM
Ранги proSeryoga Русский/Russian 1 13/03/2013 07:05 AM
Ранги [HHT]DRON Русский/Russian 6 23/12/2011 01:47 AM


All times are GMT. The time now is 04:32 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.