Нужна помощь по скрипту -
StDIABLO - 18.10.2010
Итак зашел я както на серв какойто не помню и там на альт была менюшка клевая там все основные команды помощь и прочее в ней было, загорелся на свой сервер поставить, исходников никаких не нашел пришлось делать самому итак дано
Код:
public OnPlayerKeyStateChange
.......
else if(newkeys == KEY_WALK) //alt тут вызываем пип бой :) с функциями
{
ShowPlayerDialog(playerid,3000,DIALOG_STYLE_LIST,"Pip-Boy 3000","1. Ïîìîùü\r\n2. Âûçâàòü\r\n3. Âûçâàòü ñîáåñåäíèêà\r\n4. Îòïðàâèòü ÑÌÑ\r\n5. Îòêðûòü âîðîòà èñïîëüçóÿ BT","Äàëåå", "Âûõîä");
}
/* else if((newkeys & KEY_WALK) && (newkeys & KEY_CROUCH) && IsPlayerInAnyVehicle(playerid) == 1)
{
ShowPlayerDialog(playerid,3000,DIALOG_STYLE_LIST,"Pip-Boy 3000","1. Ïîìîùü\r\n2. Âûçâàòü\r\n 3. Âûçâàòü ñîáåñåäíèêà\r\n4. Îòïðàâèòü ÑÌÑ\r\n5. Îòêðûòü âîðîòà èñïîëüçóÿ BT","Äàëåå", "Âûõîä");
}*/
дальше обработка этого пипбоя
Код:
if(dialogid == 3006) // pipboy3000 call xxxxx menu
{
if(response)
{
strmid(Typed[playerid], inputtext, 0, strlen(inputtext), 255);
format(string, sizeof(string), "/call %d", inputtext);
OnPlayerCommandText(playerid, string);
}
else // вызываем главное меню пипбоя :) (тут пока рыба)
{
// dialogid = 3000;
}
}
if(dialogid == 3000) // pipboy3000 main menu
{
if(response)
{
switch (listitem)
{
case 0: //ïîìîùü /help. stats
{
}
case 1: //âûçîâ òàêñè ìåíòîâ ìåäîâ ïîæàðíûõ òåõíèêîâ :) /call 333 ....
{
}
case 2: // аналог /call XXXXX
{
ShowPlayerDialog(playerid, 3006, DIALOG_STYLE_INPUT,"Ïîçâîíèòü","Êîìó áóäåì çâîíèòü? \n Ââåäèòå íîìåð òåëåôîíà äëÿ çâîíêà","Ïîçâîíèòü","Íàçàä");
}
case 3:
{
}
case 4:
{
}
case 5:
{
}
}
}
}
какието проблемы с кодировкой русского языка ну ладно
итак чтобы было более понятно что я хочу сделать на альт нажимаеш вылазит менюшка потом нажимаеш на одну из строчек (в данном случае вызвать абонента) вылазит окошко с запросом номера
задумано это только с одной целью - постепенно расширяя функционал менюшки полностью отказаться от текстовых сообщений
и вот тут то у меня и проблема у меня есть /call XXXXX что я делаю, выдергиваю номер приклеиваю к нему /call и отправляю в OnPlayerCommandText(playerid, string)
Код:
strmid(Typed[playerid], inputtext, 0, strlen(inputtext), 255);
format(string, sizeof(string), "/call %d", inputtext);
OnPlayerCommandText(playerid, string)
ошибки нет впринципе и внутри игры все работает компилируется без ошибок но со следующим текстом
Код:
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
Header size: 15844 bytes
Code size: 3233172 bytes
Data size: 15909744 bytes
Stack/heap size: 16384 bytes; estimated max. usage=5187 cells (20748 bytes)
Total requirements:19175144 bytes
а без строчки OnPlayerCommandText(playerid, string) компилируется отлично, так вот вопрос можно ли как нибудь по другому передать данные, или сделать так как будто игрок написал /call XXXXX
зараниее спасибо
Re: Нужна помощь по скрипту -
[CripZ]SERCH - 18.10.2010
Quote:
Originally Posted by StDIABLO
Код:
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
Header size: 15844 bytes
Code size: 3233172 bytes
Data size: 15909744 bytes
Stack/heap size: 16384 bytes; estimated max. usage=5187 cells (20748 bytes)
Total requirements:19175144 bytes
|
парень это значит что все отлично скомпилировалось
тут идёт подсчет в байтах... размера кода и т.д
не замарачивайся , данный текст означает одно - ты все верно сделал это тоже самое что и
Код:
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
Re: Нужна помощь по скрипту -
ZiGGi - 18.10.2010
Quote:
Originally Posted by [CripZ]SERCH
данный текст означает одно - ты все верно сделал это тоже самое что и
Код:
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
|
Неправда, если выдает отчет по байтам, то скрипт слишком много жрет памяти... Т.е. выдача отчетов это плохо.
Re: Нужна помощь по скрипту -
StDIABLO - 18.10.2010
не я конечно понимаю что скрипт не маленький (уже переваливает за 80000 строк) (оптимизацией после армии займусь
если руки дойдут ) но без этой --->OnPlayerCommandText(playerid, string); команды никаких отчетов не вываливает, вот я и думаю то что у меня тут чтото не так и хочу эту строчку на чтонибудь заменить
Re: Нужна помощь по скрипту -
[CripZ]SERCH - 18.10.2010
если жрёт много памяти! оптимизация рулит? .. если 6.5к+ строк ... тут ни какая оптимизация не поможет (кроме как "обширная")
Re: Нужна помощь по скрипту -
StDIABLO - 18.10.2010
ну не всеж 80000 строк мной написаны
почти все что я пишу - более менее оптимизировано, и потихоньку паблик за пабликом оптимизировать код
Re: Нужна помощь по скрипту -
Kernell - 18.10.2010
Интересно, а где можно почитать об этих сообщениях выдаваемые компилятором и как сильно они влияют на работу сервера? (Перегрузки и т.д.)
Re: Нужна помощь по скрипту -
Makar93 - 19.10.2010
Quote:
Originally Posted by [CripZ]SERCH
если жрёт много памяти! оптимизация рулит? .. если 6.5к+ строк ... тут ни какая оптимизация не поможет (кроме как "обширная")
|
Обычно такие варны вылетают, когда есть массивы или переменные а-ля:
Re: Нужна помощь по скрипту -
StDIABLO - 19.10.2010
да тыщи таких переменных и массивов
эти отчеты означают лишь то, что я выхожу за пределы стека
повторю вопрос, можно ли как нибудь лучше сделать, чем я написал
(напомню задачу при нажании на итемлист например "помощь" сервер вместо юзера пишет /help, при нажании call юзер лиш указывает номер,а сервер сам выполняет команду аналогичную /call XXXXX, учитывая что обработка всех команд сделана более менее оптимизировано и правильно, я хочу передавать управление именно туда)
Re: Нужна помощь по скрипту -
Kernell - 19.10.2010
Quote:
Originally Posted by Makar93
Обычно такие варны вылетают, когда есть массивы или переменные а-ля:
|
У меня при создании простой переменной с размером 512 уже выдавали такой результат.
Тут скорее идёт общий подсчёт глобальных переменных (которые и жрут много памяти).
Quote:
Originally Posted by StDIABLO
да тыщи таких переменных и массивов эти отчеты означают лишь то, что я выхожу за пределы стека
повторю вопрос, можно ли как нибудь лучше сделать, чем я написал
(напомню задачу при нажании на итемлист например "помощь" сервер вместо юзера пишет /help, при нажании call юзер лиш указывает номер,а сервер сам выполняет команду аналогичную /call XXXXX, учитывая что обработка всех команд сделана более менее оптимизировано и правильно, я хочу передавать управление именно туда)
|
Так в первом сообщении сказано, что всё работает, но со следующими "ошибками"...
Не получается вызвать калбэк в ручную?