HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #151  
Старый 29.06.2013, 14:14
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Разобрался как создать диалог типа list, вот код:

Код:





Код:
void SAMP_Dialog(int send, int dialogID, int typedialog, char *caption, char *text, char *button1, char *button2)
{
uint32_t func = g_Samp_base+SAMP_DIALOG_SHOW;
uint32_t data = g_Samp_base+SAMP_DIALOG_INFO_OFFSET;
 
 
__asm mov eax, dword ptr [data]
__asm mov ecx, dword ptr [eax] //mov to offset
__asm push send //0 - No send response, 1 - Send response
__asm push button2
__asm push button1
__asm push text
__asm push caption
__asm push typedialog
__asm push dialogID
__asm call func
return;
}




В PAWNO показ диалога реализован вот так:

Код:





Код:
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Что из этого вы хотите выпить?", "Sprunk ($1)\nПиво ($2)\nВино ($3)", "Купить", "Отмена");




Теперь проблема состоит в том, как выполнить определенную функцию, при выборе итема из списка, в PAWNO это реализовано так:

Код:





[CODE]
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Для более простого управления диалоговыми окнами, можно использовать switch(dialogid), но в
//этом уроке использовано лишь одно диалоговое окно.
if(dialogid == 1 && response) // Если ID диалогового окна 1 (как мы указали в ShowPlayerDialog), и игрок нажал 'Купить'
{
// Теперь используем switch(listitem), чтобы выполнять действия для разных элементов
//диалогового окна. ID первого элемента в диалоговом окне - 0.
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid)

 
Ответить с цитированием

  #152  
Старый 29.06.2013, 23:41
fondamentolok
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами: 6920791

Репутация: 113
По умолчанию

Как сделать Auto Reconnect ?

Как сделать Check point master?

Как сделать что бы машина ближайшего игрока кидалась в загрузку?

Как сделать что бы все машины тпшились ближайшему игроку на голову?
 
Ответить с цитированием

  #153  
Старый 02.07.2013, 03:33
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Допустим, есть адрес 0х3810000, по эту адресу лежит текстовое значение, допустим test, как присвоить переменной a это значение по этому адресу?
 
Ответить с цитированием

  #154  
Старый 02.07.2013, 17:56
im0rg
Постоянный
Регистрация: 19.03.2013
Сообщений: 586
С нами: 6920791

Репутация: 113


По умолчанию

Цитата:
Сообщение от NarutoUA  

Допустим, есть адрес 0х3810000, по эту адресу лежит текстовое значение, допустим test, как присвоить переменной a это значение по этому адресу?
Глянь код антикраша
 
Ответить с цитированием

  #155  
Старый 02.07.2013, 18:25
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Цитата:
Сообщение от Jesus  

Глянь код антикраша

антикраш записывает значение по адресу, а мне нужно прочитать
 
Ответить с цитированием

  #156  
Старый 02.07.2013, 19:16
im0rg
Постоянный
Регистрация: 19.03.2013
Сообщений: 586
С нами: 6920791

Репутация: 113


По умолчанию

Цитата:
Сообщение от NarutoUA  

антикраш записывает значение по адресу, а мне нужно прочитать
Тогда смотри Gravitation
 
Ответить с цитированием

  #157  
Старый 02.07.2013, 22:18
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Цитата:
Сообщение от Jesus  

Тогда смотри Gravitation

там не по адресу памяти
 
Ответить с цитированием

  #158  
Старый 02.07.2013, 23:18
im0rg
Постоянный
Регистрация: 19.03.2013
Сообщений: 586
С нами: 6920791

Репутация: 113


По умолчанию

Цитата:
Сообщение от NarutoUA  

там не по адресу памяти
в dumb_menu лично помню видел то что по адресу
 
Ответить с цитированием

  #159  
Старый 03.07.2013, 10:56
fondamentolok
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами: 6920791

Репутация: 113
По умолчанию

void cheat_handle_supergun()

{

if(KEY_PRESSED(set.key_supergun))

{

cheat_state->_generic.supergun ^= 1;

}

if(cheat_state->_generic.supergun == 1)

{

pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (set.slot_sg1) );

}

static DWORD time = 0;

if (GetTickCount() - 250 > time)

{

pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (set.slot_sg2) );

{

time = GetTickCount();

}

}

return;

}

Когда беру в руки оружие оно меняется на кулак даже без выстрела

Как сделать что бы слот менялся именно при выстреле а не постоянно?
 
Ответить с цитированием

  #160  
Старый 03.07.2013, 19:24
im0rg
Постоянный
Регистрация: 19.03.2013
Сообщений: 586
С нами: 6920791

Репутация: 113


По умолчанию

Цитата:
Сообщение от fondamentolok  

void cheat_handle_supergun()
{
if(KEY_PRESSED(set.key_supergun))
{
cheat_state->_generic.supergun ^= 1;
}
if(cheat_state->_generic.supergun == 1)
{
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (set.slot_sg1) );
}
static DWORD time = 0;
if (GetTickCount() - 250 > time)
{
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (set.slot_sg2) );
{
time = GetTickCount();
}
}
return;
}

Когда беру в руки оружие оно меняется на кулак даже без выстрела
Как сделать что бы слот менялся именно при выстреле а не постоянно?
if(cheat_state->_generic.supergun == 1 && KEY_PRESSED(set.key_supergun))
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.