PDA

Просмотр полной версии : [Вопрос] SendFamilyMessage



heralt
20.02.2015, 22:22
Делал чаты для организаций, но вдруг вспомнил, что мне понадобиться stok SendFamilyMessage.

Скиньте пожалуйста. Код команду могу выложить, по надобности.

I'm Cobra
20.02.2015, 22:39
stock SendFamilyMessage(color, message[])
{
for(new i = 0; i < players; i++)
{
/*сюда проверка*/ return SendClientMessage(i, color, message);
else return 0;
}
return 1;
}

Быстрый перебор игроков в сети (http://pro-pawn.ru/showthread.php?5747-%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%BE%D1%80-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2-%D0%B2-%D1%81%D0%B5%D1%82%D0%B8)

heralt
20.02.2015, 22:49
Хм. Но разве твоя проверка именно на одну фракцию? Я просто не хочу смешивания чата.


Если что, вот команда, может понадобиться кому нибудь.


dcmd_f(playerid, params[])
#pragma unused params
{
new sendername[MAX_PLAYER_NAME];
new string[128];
new result[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(sscanf(params, "s[128]",result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: (/f)amily [текст]");
switch(PlayerInfo[playerid][pGroup])
{
case 6:
{
if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "[F] | Don %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "[F] | Сonsigliere %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "[F] | Member %s: %s", sendername, result); }
else { format(string, sizeof(string), "[F] | Member %s: %s", sendername, result); }
SendMafiaMessage(PlayerInfo[playerid][pGroup], CORANGE, string);
}
case 7:
{
if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "[F] | Вор в законе %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "[F] | Блатной %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "[F] | Состав %s: %s", sendername, result); }
else { format(string, sizeof(string), "[F] | Состав %s: %s", sendername, result); }
SendMafiaMessage(PlayerInfo[playerid][pGroup], CORANGE, string);

}
case 8:
{
if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "[F] | Padre %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "[F] | Authority %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "[F] | Member %s: %s", sendername, result); }
else { format(string, sizeof(string), "[F] | Member %s: %s", sendername, result); }
SendMafiaMessage(PlayerInfo[playerid][pGroup], CORANGE, string);
}
}
return true;
}

L0ndl3m
20.02.2015, 22:52
#pragma unused params
а потом

if(sscanf(params, ...))
wtf?!

heralt
20.02.2015, 22:55
Получилось. Я полностью не уверен в полноценной работы команды, так как только познаю pawn

Сток получился как то так


forward SendMafiaMessage(mafia, color, message[]);
stock SendMafiaMessage(mafia, color, message[])
{
for(new i = 0; i < players; i++)
{
if(PlayerInfo[i][pGroup] == mafia) return SendClientMessage(i, color, message);
else return 0;
}
return 1;
}

И выбило ошибки =(


C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v4.pwn(3708) : error 017: undefined symbol "players"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.


- - - Добавлено - - -



#pragma unused params
а потом

if(sscanf(params, ...))
wtf?!
;D исправил

Mazzilla
21.02.2015, 06:25
stock SendMafiaMessage(mafia, color, message[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pGroup] != mafia) continue;
SendClientMessage(i, color, message);
}
return 1;
}

I'm Cobra
21.02.2015, 09:58
Получилось. Я полностью не уверен в полноценной работы команды, так как только познаю pawn

Сток получился как то так


forward SendMafiaMessage(mafia, color, message[]);
stock SendMafiaMessage(mafia, color, message[])
{
for(new i = 0; i < players; i++)
{
if(PlayerInfo[i][pGroup] == mafia) return SendClientMessage(i, color, message);
else return 0;
}
return 1;
}

И выбило ошибки =(


C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v4.pwn(3708) : error 017: undefined symbol "players"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.


- - - Добавлено - - -


;D исправил



stock SendMafiaMessage(mafia, color, message[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pGroup] != mafia) continue;
SendClientMessage(i, color, message);
}
return 1;
}

Быстрый перебор игроков в сети (http://pro-pawn.ru/showthread.php?5747-%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%BE%D1%80-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2-%D0%B2-%D1%81%D0%B5%D1%82%D0%B8)

heralt
21.02.2015, 11:43
Вообщем, добавил сток, все в павно хорошо. Проблемы нагрянули с командой ;c http://imgur.com/rrq742q


if(sscanf(params, "s[128]",result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: (/f)amily [текст]");

Я поменял ее на:


if(sscanf(params, "i",result)) return SendClientMessage(playerid, COLOR_WHITE, "Используйте: (/f)amily [текст]");

И появился только заголовок текста "F | Don:" http://imgur.com/9sSSwq3

Но этого не хватает.

heralt
21.02.2015, 13:50
Актуально

Mazzilla
21.02.2015, 16:47
dcmd_f(playerid, params[])
{
new result[128];
if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: (/f)amily [текст]");
new sendername[MAX_PLAYER_NAME];
new string[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
switch(PlayerInfo[playerid][pGroup])
{
case 6:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: string = "Member";
case 2: string = "Consigliere";
case 3: string = "Don";
default: string = "Member";
}
}
case 7:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: string = "Состав";
case 2: string = "Блатной";
case 3: string = "Вор в законе";
default: string = "Состав";
}

}
case 8:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: string = "Member";
case 2: string = "Authority";
case 3: string = "Padre";
default: string = "Member";
}
}
}
format(string, sizeof(string), "[F] | %s %s: %s", string, sendername, result);
SendMafiaMessage(PlayerInfo[playerid][pGroup], CORANGE, string);
return true;
}
Так?

heralt
21.02.2015, 16:53
dcmd_f(playerid, params[])
{
new result[128];
if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: (/f)amily [текст]");
new sendername[MAX_PLAYER_NAME];
new string[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
switch(PlayerInfo[playerid][pGroup])
{
case 6:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: string = "Member";
case 2: string = "Consigliere";
case 3: string = "Don";
default: string = "Member";
}
}
case 7:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: string = "Состав";
case 2: string = "Блатной";
case 3: string = "Вор в законе";
default: string = "Состав";
}

}
case 8:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: string = "Member";
case 2: string = "Authority";
case 3: string = "Padre";
default: string = "Member";
}
}
}
format(string, sizeof(string), "[F] | %s %s: %s", string, sendername, result);
SendMafiaMessage(PlayerInfo[playerid][pGroup], CORANGE, string);
return true;
}
Так?
У меня команда выглядит вот так:


dcmd_f(playerid, params[])
{
new sendername[MAX_PLAYER_NAME];
new string[128];
new result[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(sscanf(params, "i",result)) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: (/f)amily [òåêñò]");
switch(PlayerInfo[playerid][pGroup])
{
case 6:
{
if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "F | Don %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "F | Ñonsigliere %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "F | Member %s: %s", sendername, result); }
else { format(string, sizeof(string), "F | Member %s: %s", sendername, result); }
SendMafiaMessage(PlayerInfo[playerid][pGroup], COLOR_CHATMAFIA, string);
}
case 7:
{
if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "F | Âîð â çàêîíå %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "F | Áëàòíîé %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "F | Ñîñòàâ %s: %s", sendername, result); }
else { format(string, sizeof(string), "F | Ñîñòàâ %s: %s", sendername, result); }
SendMafiaMessage(PlayerInfo[playerid][pGroup], COLOR_CHATMAFIA, string);

}
case 8:
{
if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "F | Padre %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "F | Authority %s: %s", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "F | Member %s: %s", sendername, result); }
else { format(string, sizeof(string), "F | Member %s: %s", sendername, result); }
SendMafiaMessage(PlayerInfo[playerid][pGroup], COLOR_CHATMAFIA, string);
}
}
return true;
}

Mazzilla
21.02.2015, 16:58
Мы в курсе. Пробуйте мой вариант...

heralt
21.02.2015, 17:11
Ничего не изменилось. "Используйте: /family [текст]"

heralt
22.02.2015, 02:50
Актуально

L0ndl3m
22.02.2015, 13:56
if(sscanf(params, "i",result))
замените на

if(sscanf(params, "s[128]", result))

heralt
22.02.2015, 15:05
if(sscanf(params, "i",result))
замените на

if(sscanf(params, "s[128]", result))

http://imgur.com/rrq742q

L0ndl3m
22.02.2015, 17:52
Плагин sscanf точно последней версии? Если да, то не мучайтесь и переходите на более современный командный процессор, например DC_CMD.

Mazzilla
22.02.2015, 18:22
Ему 300 раз было сказано уже - эффекта ноль.

heralt
22.02.2015, 21:09
Ему 300 раз было сказано уже - эффекта ноль.
Сколько я раз говорил какой для меня проблемой окажется перевод некоторых из них. =(


dcmd(makeadmin, 9, cmdtext);
dcmd(makeleader, 10, cmdtext);
dcmd(uninvite, 8, cmdtext);
dcmd(setskin, 7, cmdtext);
dcmd(setleader, 9, cmdtext);
/*dcmd(pass, 4, cmdtext);*/
dcmd(invite, 6, cmdtext);
dcmd(auninvite, 9, cmdtext);
dcmd(ban, 3, cmdtext);
dcmd(kick, 4, cmdtext);
dcmd(affect, 6, cmdtext);
dcmd(aka, 3, cmdtext);
dcmd(asay,4,cmdtext);
dcmd(a,1,cmdtext);
dcmd(agm,3,cmdtext);
dcmd(ahelp,5,cmdtext);
dcmd(coin,4,cmdtext);
dcmd(mask,4,cmdtext);
dcmd(getip,5,cmdtext);
dcmd(shop,4,cmdtext);
dcmd(me,2,cmdtext);
dcmd(do,2,cmdtext);
dcmd(f,1,cmdtext);