 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[FAQ] покупка оружия в диалоговом окне
| |
| themrsnk | Дата: Вторник, 10.08.2010, 17:41 | Сообщение # 1 |
|
themrsnk
Группа:
I'm V.I.P.
Сообщений: 609
Награды: 14
Город: Челябинск
Репутация: 758
Замечания: 0%
Статус: 
| Всем доброго времени суток,как я и писал в соседнем топике,что могу написать FAQ на тему "покупка оружия в диалоговом окне" по просьбе пользователей форума. Так вот,меня попросили раписать,пожалуй начну. Первое,что нам понадобится - это переменная которая будет отвечать за это дело Code enum pWeapon { Name[MAX_STRING], Cost, Ammo, ID, }; new Weapons[17][pWeapon]; P.S 17 - это количество оружия,загружаемое из файла. Далее нам придётся сделать callback загрузки данных о оружие из файла. Делаем... Code forward LoadWeapons(); public LoadWeapons() { new arrCoords[4][512]; new strFromFile2[256]; new File: file = fopen("other\\weapons.cfg", io_read); if (file) { new idx; while (idx < sizeof(Weapons)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, '|'); strmid(Weapons[idx][Name], arrCoords[0], 0, strlen(arrCoords[0]), 255);//Название Weapons[idx][Cost] = strval(arrCoords[1]);//Цена Weapons[idx][Ammo] = strval(arrCoords[2]);//Количество патронов Weapons[idx][ID] = strval(arrCoords[3]);//ИД оружия idx++; } fclose(file); printf("Weapons for sell:%d",idx); } return 1; } Далее нам придётся это оружие загружать,ах да,забыл сказать,что "other\\weapons.cfg" это пусть к файлу с данными о нашем оружии. То-есть у нас будет это выглядить следущим образом scriptfiles\other\weapons.cfg. Далее... в public OnGameModeInit() добавляем следущий код.. Далее мы перейдём к самой команде,которая служит нам вызовом диалогового окна с данными о нашем оружии. Code if(strcmp(cmd,"/buygun",true) == 0) { if(GetPlayerMoney(playerid) < 10) { SendClientMessage(playerid, COLOR_GREY, "* У вас недостаточно средств"); return 1; } new location = PlayerInfo[playerid][pLocal]; if(location == 99 || location == 100 || location == 102) { if(BizzInfo[location-99][bProducts] <= 0) { GameTextForPlayer(playerid, "~r~мEѓOCЏAЏOЌмO €AЊACO‹", 5000, 1); return 1; } new newstring[1024]; for(new id=0;id<sizeof(Weapons);id++) { format(newstring,sizeof(newstring),"%s - %d$[%d]\n",Weapons[id][Name],Weapons[id][Cost],Weapons[id][Ammo]); strcat(string,newstring); } ShowPlayerDialog(playerid,dialogid,DIALOG_STYLE_LIST,"Select the Gun",string,"Select","Cancel"); } else { SendClientMessage(playerid, COLOR_WHITE,"* Вы не в магазине оружия"); return 1; } return 1; } Ну вот и теперь нам остался последний шаг. Мы добавим код для диалогового окна. в public OnDialogResponse Code if(dialogid == dialogid) { if(response) { for(new i = 0;i < sizeof(Weapons);i++) { if(listitem == i) { GivePlayerWeapon(playerid,Weapons[i][ID],Weapons[i][Ammo]); GivePlayerMoney(playerid,- Weapons[i][Cost]); format(string,sizeof(string),"* Вы купили оружие \"%s\" по цене %d$",Weapons[i][Name],Weapons[i][Cost]); SendClientMessage(playerid,COLOR_GRAD1,string); } } } Ну вот и всё. Пример (для заполнения данных о оружие в файле):Гольф-Клюшка|300|1|2 (Название|цена|кол-во|ID Оружия) Всем спасибо,все свободны 
[INC] vehicle_fun (0.3c only) [GM] tRPG (0.3c only) [ADDON] Samp spamer colorgen
|
| |
|
|
| DiSE | Дата: Вторник, 10.08.2010, 18:02 | Сообщение # 2 |
|
Группа:
I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус: 
| Спасибо
Сообщение отредактировал EnErGiZeR - Вторник, 10.08.2010, 18:03 |
| |
|
|
| themrsnk | Дата: Вторник, 10.08.2010, 18:06 | Сообщение # 3 |
|
themrsnk
Группа:
I'm V.I.P.
Сообщений: 609
Награды: 14
Город: Челябинск
Репутация: 758
Замечания: 0%
Статус: 
| EnErGiZeR,отпишись хоть нормально.Работает или нет? Народ,уже 18 просмотров,а коментариев 0. Прокоментируйте,если кто-то испробовал данную фишку.
[INC] vehicle_fun (0.3c only) [GM] tRPG (0.3c only) [ADDON] Samp spamer colorgen
Сообщение отредактировал [SNK] - Вторник, 10.08.2010, 19:32 |
| |
|
|
| DeFix | Дата: Вторник, 10.08.2010, 22:17 | Сообщение # 4 |
|
Новенький
Группа:
Пользователи
Сообщений: 53
Награды: 0
Город: Нижневартовск
Репутация: 5
Замечания: 0%
Статус: 
| [SNK], у меня вроде нормально наробает! респект !!
[█_______10%_________]
Живи, люби, кради, гуляй, купи весь мир, потом отдай, всегда лишь помни вещь одну - не забывай свою БРАТВУ!
|
| |
|
|
| [RGS]JAGUAR | Дата: Вторник, 10.08.2010, 22:24 | Сообщение # 5 |
|
Советчик
Группа:
Продвинутые
Сообщений: 1154
Награды: 25
Город: FloatX,FloatY,FloatZ
Репутация: 291
Замечания: 40%
Статус: 
| DeFix, выложи скрины плиз просто в мод не охото ставить чё да как там робит??
[/url] Новая ICQ: 593922
|
| |
|
|
| Demon_Wolf | Дата: Среда, 11.08.2010, 11:18 | Сообщение # 6 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 90
Награды: 0
Город: Ульяновск
Репутация: -1
Замечания: 0%
Статус: 
| Объясните куда совать вот этот код: Code enum pWeapon { Name[MAX_STRING], Cost, Ammo, ID, }; new Weapons[17][pWeapon]; и этот: Code forward LoadWeapons(); public LoadWeapons() { new arrCoords[4][512]; new strFromFile2[256]; new File: file = fopen("other\\weapons.cfg", io_read); if (file) { new idx; while (idx < sizeof(Weapons)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, '|'); strmid(Weapons[idx][Name], arrCoords[0], 0, strlen(arrCoords[0]), 255);//Название Weapons[idx][Cost] = strval(arrCoords[1]);//Цена Weapons[idx][Ammo] = strval(arrCoords[2]);//Количество патронов Weapons[idx][ID] = strval(arrCoords[3]);//ИД оружия idx++; } fclose(file); printf("Weapons for sell:%d",idx); } return 1; } Ну типо в какие паблики.
|
| |
|
|
| sk47 | Дата: Среда, 11.08.2010, 11:25 | Сообщение # 7 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 86
Награды: 2
Город: Магнитогорск
Репутация: 9
Замечания: 0%
Статус: 
| 1. найди enum pInfo и туда вставь куданить 2.Это можешь в конец мода вставить
|
| |
|
|
| Demon_Wolf | Дата: Среда, 11.08.2010, 11:43 | Сообщение # 8 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 90
Награды: 0
Город: Ульяновск
Репутация: -1
Замечания: 0%
Статус: 
| Как исправить ошибки: D:\Софт\Серверg\gamemodes\gf.pwn(8618) : error 017: undefined symbol "dialogid" D:\Софт\Серверg\gamemodes\gf.pwn(26887) : error 017: undefined symbol "string" D:\Софт\Серверg\gamemodes\gf.pwn(26887) : error 017: undefined symbol "string" D:\Софт\Серверg\gamemodes\gf.pwn(26887) : error 029: invalid expression, assumed zero
|
| |
|
|
| sk47 | Дата: Среда, 11.08.2010, 12:04 | Сообщение # 9 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 86
Награды: 2
Город: Магнитогорск
Репутация: 9
Замечания: 0%
Статус: 
| 1.dialogid меня на свой ид например 434 и в команде showplayerdialog где тоже меняй на 434 2.покажи строки
|
| |
|
|
| themrsnk | Дата: Среда, 11.08.2010, 12:15 | Сообщение # 10 |
|
themrsnk
Группа:
I'm V.I.P.
Сообщений: 609
Награды: 14
Город: Челябинск
Репутация: 758
Замечания: 0%
Статус: 
| [RGS]JAGUAR,вот тебе скрин 
[INC] vehicle_fun (0.3c only) [GM] tRPG (0.3c only) [ADDON] Samp spamer colorgen
|
| |
|
|
| Jumpman23 | Дата: Среда, 11.08.2010, 12:16 | Сообщение # 11 |
|
Группа:
I'm V.I.P.
Сообщений: 1359
Награды: 23
Город: Kingston, Rastapolis
Репутация: 504
Замечания: 100%
Статус: 
| поставлю себе, посмотрю чё да как
Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме. Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы). Великс ты красава.
|
| |
|
|
| Demon_Wolf | Дата: Среда, 11.08.2010, 12:18 | Сообщение # 12 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 90
Награды: 0
Город: Ульяновск
Репутация: -1
Замечания: 0%
Статус: 
| Вот на этой строчке ругается format(string,sizeof(string),"* Вы купили оружие \"%s\" по цене %d$",Weapons[i][Name],Weapons[i][Cost]); D:\Софт\Серверg\gamemodes\gf.pwn(26887) : error 017: undefined symbol "string" D:\Софт\Серверg\gamemodes\gf.pwn(26887) : error 017: undefined symbol "string" D:\Софт\Серверg\gamemodes\gf.pwn(26887) : error 029: invalid expression, assumed zero D:\Софт\Серверg\gamemodes\gf.pwn(26887) : fatal error 107: too many error messages on one line И в OnGameModeInit() На этой: LoadWeapons(); D:\Софт\Серверg\gamemodes\gf.pwn(6940) : error 004: function "LoadWeapons" is not implemented
|
| |
|
|
| sk47 | Дата: Среда, 11.08.2010, 12:32 | Сообщение # 13 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 86
Награды: 2
Город: Магнитогорск
Репутация: 9
Замечания: 0%
Статус: 
| попробуй new string[256];
|
| |
|
|
| Jumpman23 | Дата: Среда, 11.08.2010, 13:45 | Сообщение # 14 |
|
Группа:
I'm V.I.P.
Сообщений: 1359
Награды: 23
Город: Kingston, Rastapolis
Репутация: 504
Замечания: 100%
Статус: 
| Quote (Demon_Wolf) И в OnGameModeInit() На этой: LoadWeapons(); forward LoadWeapons есть?
Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме. Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы). Великс ты красава.
|
| |
|
|
| Slot_Lite | Дата: Среда, 11.08.2010, 14:02 | Сообщение # 15 |
|
Новенький
Группа:
Пользователи
Сообщений: 34
Награды: 0
Город: Сеть
Репутация: 0
Замечания: 0%
Статус: 
| Quote (Demon_Wolf) D:\Софт\Серверg\gamemodes\gf.pwn(6940) : error 004: function "LoadWeapons" is not implemented У тебя эта функция не определенна
|
| |
|
|
|
 |
|
 | |
| |
|