PDA

Просмотр полной версии : [Поиск] Система /mdc



heralt
27.01.2015, 16:28
Здравствуйте форумчане, нужен хороший урок по команде /mdc. Подскажите пожалуйста.

heralt
27.01.2015, 17:36
Попытался сделать, вообщем как-то так. Теперь крашит павно :c


if(strcmp(cmdtext, "/mdc", true) == 0)
{
if (PlayerInfo[playerid][pGroup] != 2 && PlayerInfo[playerid][pGroup] != 3) return SendClientMessage(playerid, COLOR_GRAD1, "Âû íå ñîòðóäíèê Àðìèè/Ïîëèöèè!"); // Ïðîâåðêà íà ôðàêöèþ èãðîêà
(
// Äàëüøå óæå èä¸ò ñàì âûâîä ñîîáùåíèÿ èãðîêó î ðîçûñêå,ôðàêöèè è èìåíè âûáðàííîãî èãðîêà.

SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
format(string, sizeof(string), "***Èìÿ Ôàìèëèÿ: %s***", pName);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***Îðãàíèçàöèÿ: %s***", pGroup);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***Ðîçûñê: %s***", pWanted);
SendClientMessage(playerid, red, string);
SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
}
return 1;
}

Lars Keller
27.01.2015, 19:11
А может Вы опишите что должна делать команда?

Mazzilla
27.01.2015, 19:23
if(strcmp(cmdtext, "/mdc", true) == 0)
{
if (PlayerInfo[playerid][pGroup] != 2 || PlayerInfo[playerid][pGroup] != 3) return SendClientMessage(playerid, COLOR_GRAD1, "Au ia nio?oaiee A?iee/Iieeoee!"); // I?iaa?ea ia o?aeoe? ea?iea
// Aaeuoa o?a ea?o nai auaia niiauaiey ea?ieo i ?icunea,o?aeoee e eiaie aua?aiiiai ea?iea.

SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
format(string, sizeof(string), "***Eiy Oaieeey: %s***", PlayerInfo[playerid][pName]);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***I?aaiecaoey: %s***", PlayerInfo[playerid][pGroup]);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***?icune: %s***", PlayerInfo[playerid][pWanted]);
SendClientMessage(playerid, red, string);
SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
}
return 1;
}

heralt
27.01.2015, 20:35
не, все равно крашит, лучше уроком скиньте

gangzone.ini
27.01.2015, 20:40
А может Вы опишите что должна делать команда?
...

heralt
27.01.2015, 23:19
А может Вы опишите что должна делать команда?

Сотрудник полиции сидя в полицеской машине может узнать:

1. В розыске ли игрок или нет
2. Имя Фамилия игрока
3. Возраст игрока.
4. Организацию, в которой состоит игрок.

Примечание: Возраст игрока используется pOld

format(string, sizeof( string),"> Вы успешно указали дату рождения: {FFF81D}%i", PlayerInfo[playerid][pOld]);

Примечание: Должна быть проверка на нахождение в полицейской машине. ( ID - 596 )

Примечание: Нахождение преступника в авто не обязательно.

BaBuIIIkaDrifteR
27.01.2015, 23:34
НА

if(strcmp(cmdtext, "/mdc", true) == 0)
{
if (PlayerInfo[playerid][pGroup] != 2 || PlayerInfo[playerid][pGroup] != 3)
{
SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
format(string, sizeof(string), "***Eiy Oaieeey: %s***", PlayerInfo[playerid][pName]);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***I?aaiecaoey: %s***", PlayerInfo[playerid][pGroup]);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***?icune: %s***", PlayerInfo[playerid][pWanted]);
SendClientMessage(playerid, red, string);
SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
}
else SendClientMessage(playerid, COLOR_GRAD1, "Au ia nio?oaiee A?iee/Iieeoee!");
return 1;
}

heralt
27.01.2015, 23:42
НА

if(strcmp(cmdtext, "/mdc", true) == 0)
{
if (PlayerInfo[playerid][pGroup] != 2 || PlayerInfo[playerid][pGroup] != 3)
{
SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
format(string, sizeof(string), "***Eiy Oaieeey: %s***", PlayerInfo[playerid][pName]);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***I?aaiecaoey: %s***", PlayerInfo[playerid][pGroup]);
SendClientMessage(playerid, red, string);
format(string, sizeof(string), "***?icune: %s***", PlayerInfo[playerid][pWanted]);
SendClientMessage(playerid, red, string);
SendClientMessage(playerid, 0x897979FF, "****************<==Computer==>****************");
}
else SendClientMessage(playerid, COLOR_GRAD1, "Au ia nio?oaiee A?iee/Iieeoee!");
return 1;
}
Крашит.

BaBuIIIkaDrifteR
27.01.2015, 23:55
Крашит.


С чего ты взял тогда что именно команда крашит ?

heralt
28.01.2015, 00:01
С чего ты взял тогда что именно команда крашит ?
Обознался, не в этой команде проблема.
Вурчит павно, на 1088 строчку:


format(string, sizeof(string), "***Eiy Oaieeey: %s***", PlayerInfo[playerid][pName]);


C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 029: invalid expression, assumed zero
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


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

А нет, добавил перменную string [128];

выбивает одну ошибку:

C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1089) : error 076: syntax error in the expression, or invalid function call

BaBuIIIkaDrifteR
28.01.2015, 00:05
Обознался, не в этой команде проблема.
Вурчит павно, на 1088 строчку:


format(string, sizeof(string), "***Eiy Oaieeey: %s***", PlayerInfo[playerid][pName]);


C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 029: invalid expression, assumed zero
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


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

А нет, добавил перменную string [128];

выбивает одну ошибку:

C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1089) : error 076: syntax error in the expression, or invalid function call
строку давай 1089

heralt
28.01.2015, 00:10
Ну вообщем закрыв две функции, решил потестить: Не получилось.

http://i.imgur.com/Y0M3SZF.png

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

1089 - format(string, sizeof(string), "Èìÿ Ôàìèëèÿ: %s", PlayerInfo[playerid][pName]);

BaBuIIIkaDrifteR
28.01.2015, 00:17
С чего ты взял тогда что именно команда крашит ?

format(string, sizeof(string), "Èìÿ Ôàìèëèÿ: %s", pName(playerid));

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


if(strcmp(cmd, "/mdc", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не полицейский!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{F74848}» Введите: {FFFFFF} /mdc [id]");
giveplayerid = ReturnUser(tmp);
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, sendername, sizeof(sendername));
SendClientMessage(playerid, TEAM_BLUE_COLOR,"______-=МОБИЛЬНЫЙ КОМПЬЮТЕР ДАННЫХ=-_______");
format(string, sizeof(string), "Имя : %s", sendername), SendClientMessage(playerid, COLOR_WHITE,string);
format(string, sizeof(string), "Преступление : %s", PlayerCrime[giveplayerid][pAccusedof]), SendClientMessage(playerid, COLOR_GRAD2,string);
format(string, sizeof(string), "Сообщил : %s", PlayerCrime[giveplayerid][pVictim]), SendClientMessage(playerid, COLOR_GRAD3,string);
format(string, sizeof(string), "Уровень розыска : %s", PlayerInfo[giveplayerid][pZvezdi]), SendClientMessage(playerid, COLOR_GRAD4,string);
SendClientMessage(playerid, TEAM_BLUE_COLOR,"_______________________________________");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
return true;
}
}
}
return true;
}

heralt
28.01.2015, 00:39
format(string, sizeof(string), "Èìÿ Ôàìèëèÿ: %s", pName(playerid));

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


if(strcmp(cmd, "/mdc", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не полицейский!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{F74848}» Введите: {FFFFFF} /mdc [id]");
giveplayerid = ReturnUser(tmp);
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, sendername, sizeof(sendername));
SendClientMessage(playerid, TEAM_BLUE_COLOR,"______-=МОБИЛЬНЫЙ КОМПЬЮТЕР ДАННЫХ=-_______");
format(string, sizeof(string), "Имя : %s", sendername), SendClientMessage(playerid, COLOR_WHITE,string);
format(string, sizeof(string), "Преступление : %s", PlayerCrime[giveplayerid][pAccusedof]), SendClientMessage(playerid, COLOR_GRAD2,string);
format(string, sizeof(string), "Сообщил : %s", PlayerCrime[giveplayerid][pVictim]), SendClientMessage(playerid, COLOR_GRAD3,string);
format(string, sizeof(string), "Уровень розыска : %s", PlayerInfo[giveplayerid][pZvezdi]), SendClientMessage(playerid, COLOR_GRAD4,string);
SendClientMessage(playerid, TEAM_BLUE_COLOR,"_______________________________________");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
return true;
}
}
}
return true;
}

Подставляю

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

C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "tmp"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "idx"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1089) : error 017: undefined symbol "tmp"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1090) : error 017: undefined symbol "ReturnUser"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1098) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1098) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1098) : error 029: invalid expression, assumed zero
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1098) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


8 Errors.

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

Короче, некоторые ошибки пофиксил, осталось:


C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "tmp"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1088) : error 017: undefined symbol "idx"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1092) : error 017: undefined symbol "ReturnUser"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1100) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1100) : error 017: undefined symbol "string"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1100) : error 029: invalid expression, assumed zero
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(1100) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


7 Errors.



1088 - tmp = strtok(cmdtext, idx);
1092 - giveplayerid = ReturnUser(tmp);
1100 - return true;

BaBuIIIkaDrifteR
28.01.2015, 00:47
if(strcmp(cmdtext, "/mdc", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не полицейский!");
new string[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{F74848}» Введите: {FFFFFF} /mdc [id]");
giveplayerid = ReturnUser(tmp);
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, sendername, sizeof(sendername));
SendClientMessage(playerid, TEAM_BLUE_COLOR,"______-=МОБИЛЬНЫЙ КОМПЬЮТЕР ДАННЫХ=-_______");
format(string, sizeof(string), "Имя : %s", sendername), SendClientMessage(playerid, COLOR_WHITE,string);
format(string, sizeof(string), "Преступление : %s", PlayerCrime[giveplayerid][pAccusedof]), SendClientMessage(playerid, COLOR_GRAD2,string);
format(string, sizeof(string), "Сообщил : %s", PlayerCrime[giveplayerid][pVictim]), SendClientMessage(playerid, COLOR_GRAD3,string);
format(string, sizeof(string), "Уровень розыска : %s", PlayerInfo[giveplayerid][pZvezdi]), SendClientMessage(playerid, COLOR_GRAD4,string);
SendClientMessage(playerid, TEAM_BLUE_COLOR,"_______________________________________");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
return 1;
}
}
}
return 1;
}

heralt
28.01.2015, 01:07
Все отлично, Павно компилер. Проблема остается в строке 1093


giveplayerid = ReturnUser(tmp);
C:\Users\------------\Desktop\Проект\gamemodes\Heinz-v2.pwn(1093) : error 017: undefined symbol "ReturnUser"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

BaBuIIIkaDrifteR
28.01.2015, 01:22
подключи инклуд "utils"

Lars Keller
28.01.2015, 02:04
if(strcmp(cmdtext, "/mdc", true) == 0)
{
if(!IsPlayerConnected(playerid) || !IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не полицейский!");
new string_сommands_mdc[115];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{F74848}» Введите: {FFFFFF} /mdc [id]");
giveplayerid = ReturnUser(tmp);
GetPlayerName(giveplayerid, sendername, sizeof(sendername));
SendClientMessage(playerid, TEAM_BLUE_COLOR,"______-=МОБИЛЬНЫЙ КОМПЬЮТЕР ДАННЫХ=-_______");
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Имя : %s", sendername);
SendClientMessage(playerid, COLOR_WHITE,string_сommands_mdc);
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Преступление : %s", PlayerCrime[giveplayerid][pAccusedof]);
SendClientMessage(playerid, COLOR_GRAD2,string_сommands_mdc);
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Сообщил : %s", PlayerCrime[giveplayerid][pVictim]);
SendClientMessage(playerid, COLOR_GRAD3,string_сommands_mdc);
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Уровень розыска : %s", PlayerInfo[giveplayerid][pZvezdi]);
SendClientMessage(playerid, COLOR_GRAD4,string_сommands_mdc);
SendClientMessage(playerid, TEAM_BLUE_COLOR,"_______________________________________");
return 1;
}

heralt
28.01.2015, 16:53
Добавил инклуд utills, скачал в павно, туды сюды, компилятору теперь строчки не нравятся.


C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(3162) : error 025: function heading differs from prototype
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v2.pwn(3163) : error 021: symbol already defined: "IsNumeric"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.


stock IsNumeric(string[])
{

heralt
28.01.2015, 19:00
up up!

Mazzilla
28.01.2015, 19:36
В начале OnPlayerCommandText вставить:

new cmd[128], params[128];
sscanf(cmdtext, "s[128]s[128]", cmd, params);

Команда:

if(strcmp(cmd, "/mdc", true) == 0)
{
new giveplayerid, sendername[MAX_PLAYER_NAME], string_сommands_mdc[64];
if(sscanf(params,"d", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "{F74848}» Введите: {FFFFFF} /mdc [id]");
if(!IsPlayerConnected(playerid) || !IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не полицейский!");
GetPlayerName(giveplayerid, sendername, sizeof(sendername));
SendClientMessage(playerid, TEAM_BLUE_COLOR,"______-=МОБИЛЬНЫЙ КОМПЬЮТЕР ДАННЫХ=-_______");
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Имя : %s", sendername);
SendClientMessage(playerid, COLOR_WHITE,string_сommands_mdc);
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Преступление : %s", PlayerCrime[giveplayerid][pAccusedof]);
SendClientMessage(playerid, COLOR_GRAD2,string_сommands_mdc);
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Сообщил : %s", PlayerCrime[giveplayerid][pVictim]);
SendClientMessage(playerid, COLOR_GRAD3,string_сommands_mdc);
format(string_сommands_mdc, sizeof(string_сommands_mdc), "Уровень розыска : %s", PlayerInfo[giveplayerid][pZvezdi]);
SendClientMessage(playerid, COLOR_GRAD4,string_сommands_mdc);
SendClientMessage(playerid, TEAM_BLUE_COLOR,"_______________________________________");
return true;
}

Советую почитать: http://pro-pawn.ru/showthread.php?5560-sscanf-OnPlayerCommandText

heralt
28.01.2015, 20:09
Все, проблема решена