 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Архив] Помощь новичкам по скриптингу ! #2
| |
| heufix | Дата: Понедельник, 28.09.2009, 02:59 | Сообщение # 1 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 995
Награды: 22
Репутация: 231
Замечания: 80%
Статус: 
| Здравствуйте, хотите научиться скриптингу? пишите сюда, помoжем!(С)[PZ]KYZ[AIR]. Старая Тема уже достаточно полна ответов, это продолжение первой темы. Убедительная просьба к Новичкам: К большому сожалению, на этом форуме экстрасенсы не сидят,поэтому убедительно просим объяснять ваш вопрос/проблему ТАК,чтобы её поняли другие участники, не забывайте приписывать ваш код к своему сообщению(в тег pwn).
Радость
|
| |
|
|
| stepmex | Дата: Понедельник, 19.04.2010, 09:56 | Сообщение # 1216 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| Quote (Ghost-X) Там, если он использует стример я использую стример, и у меня не там и даже не в OnPlayerSpawn и не OnPlayerConnect.
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| abhor | Дата: Понедельник, 19.04.2010, 16:28 | Сообщение # 1217 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 184
Награды: 3
Город: Оттава
Репутация: 108
Замечания: 0%
Статус: 
| Подскажите как исправить эти ошибки: Я хочу сделать условие чтоб не поднимало уровень, если не достаточно денег, но если стоит: Code if(CurrentMoney[playerid] < costlevel) и у игрока нехватает на уровень, при команде игроку всеравно дается уровень а деньги уходят в минус, если было не достаточно. Code D:\блабла.pwn(14555) : error 028: invalid subscript (not an array or too many subscripts): "GetPlayerMoney" D:\блабла.pwn(14555) : warning 215: expression has no effect D:\блабла.pwn(14555) : error 001: expected token: ";", but found "]" D:\блабла.pwn(14555) : error 029: invalid expression, assumed zero Code if(IsPlayerConnected(playerid)) { if (gPlayerLogged[playerid] != 0) { PlayerInfo[playerid][pCash] = CurrentMoney[playerid]; if(PlayerInfo[playerid][pLevel] >= 0) { new nxtlevel = PlayerInfo[playerid][pLevel]+1; new costlevel = nxtlevel*levelcost; new expamount = nxtlevel*levelexp; new infostring[256]; new string[256]; //if(CurrentMoney[playerid] < costlevel) //if(GetPlayerMoney[playerid] < costlevel) if(GetPlayerMoney[playerid] > costlevel)//СТРОЧКА 14555 { format(infostring, 256, " У Вас недостаточно денег ($%d)!",costlevel); SendClientMessage(playerid, COLOR_GRAD1, infostring); return 1; } else if (PlayerInfo[playerid][pExp] < expamount) { format(infostring, 256, " Вам необходимо %d очков уважения, сейчас у Вас %d!",expamount,PlayerInfo[playerid][pExp]); SendClientMessage(playerid, COLOR_GRAD1, infostring); return 1; } else { format(string, sizeof(string), "~g~LEVEL UP~n~~w~You Are Now Level %d", nxtlevel); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); PlayerPlayMusic(playerid); SafeGivePlayerMoney(playerid, (-costlevel)); PlayerInfo[playerid][pLevel]++; if(PlayerInfo[playerid][pDonateRank] > 0) { PlayerInfo[playerid][pExp] -= expamount; new total = PlayerInfo[playerid][pExp]; if(total > 0) { PlayerInfo[playerid][pExp] = total; } else { PlayerInfo[playerid][pExp] = 0; } } else { PlayerInfo[playerid][pExp] = 0; } PlayerInfo[playerid][gPupgrade] = PlayerInfo[playerid][gPupgrade]+2; GameTextForPlayer(playerid, string, 5000, 1); format(infostring, 256, " Вы приобрели уровень %d за $%d. Введите /upgrade.", nxtlevel, costlevel); SendClientMessage(playerid, COLOR_GRAD1, infostring); format(infostring, 256, " У Вас %d неиспользованых очков обновления.",PlayerInfo[playerid][gPupgrade]); SendClientMessage(playerid, COLOR_GRAD2, infostring); } } return 1; } else { SendClientMessage(playerid, COLOR_GRAD1, " Вы не идентифицированы!"); } } return 1;
HostName: [MoD] Call Of Duty - Urban Clashes. FREE VIP! Address: 91.121.164.164:8077
|
| |
|
|
| Pepyk | Дата: Понедельник, 19.04.2010, 17:41 | Сообщение # 1218 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 111
Награды: 1
Город: ЧернобыльЬ
Репутация: 13
Замечания: 0%
Статус: 
| ТАк уточните пожалуста!!) Где прописывать мне и как!*!
|
| |
|
|
| stepmex | Дата: Понедельник, 19.04.2010, 17:59 | Сообщение # 1219 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| Code if(!IsPlayerConnected(playerid))return 1;//данная проверка бред сивой кобылы, если вы мне покажете как игрок из оффлайна способен отправить команду, а главное на кого она повляет, я вам памятник поставлю! if(gPlayerLogged[playerid] == 0)return SendClientMessage(playerid, COLOR_GRAD1, "Вы не идентифицированы!"); PlayerInfo[playerid][pCash] = CurrentMoney[playerid]; if(PlayerInfo[playerid][pLevel] < 0)return 1; new nxtlevel = PlayerInfo[playerid][pLevel]+1; new costlevel = nxtlevel*levelcost; new expamount = nxtlevel*levelexp; new string[256]; if(PlayerInfo[playerid][pCash] < costlevel) { format(string, 256, "У Вас недостаточно денег ($%d)!",costlevel); SendClientMessage(playerid, COLOR_GRAD1, string); return 1; } if (PlayerInfo[playerid][pExp] < expamount) { format(string, 256, "Вам необходимо %d очков уважения, сейчас у Вас %d!",expamount,PlayerInfo[playerid][pExp]); SendClientMessage(playerid, COLOR_GRAD1, string); return 1; } format(string, sizeof(string), "~g~LEVEL UP~n~~w~You Are Now Level %d", nxtlevel); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); PlayerPlayMusic(playerid); SafeGivePlayerMoney(playerid, (-costlevel)); PlayerInfo[playerid][pLevel]++; if(PlayerInfo[playerid][pDonateRank] > 0) { PlayerInfo[playerid][pExp] -= expamount; if(PlayerInfo[playerid][pExp] > 0)PlayerInfo[playerid][pExp] = total; else PlayerInfo[playerid][pExp] = 0; } else PlayerInfo[playerid][pExp] = 0; PlayerInfo[playerid][gPupgrade] += 2; GameTextForPlayer(playerid, string, 5000, 1); format(string, 256, "Вы приобрели уровень %d за $%d. Введите /upgrade.", nxtlevel, costlevel); SendClientMessage(playerid, COLOR_GRAD1, string); format(string, 256, "У Вас %d неиспользованых очков обновления.",PlayerInfo[playerid][gPupgrade]); SendClientMessage(playerid, COLOR_GRAD2, string); return 1; Добавлено (19.04.2010, 17:59) ---------------------------------------------
Quote (Pepyk) ТАк уточните пожалуста!!) Где прописывать мне и как!*! тебе бесполезно что-либо объяснять, ты все равно не поймешь
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| Pepyk | Дата: Понедельник, 19.04.2010, 18:41 | Сообщение # 1220 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 111
Награды: 1
Город: ЧернобыльЬ
Репутация: 13
Замечания: 0%
Статус: 
| Допустим я не пойму... Но другим же тоже понадобиться!!! Так что напрегись пожалуста и помоги прошу тебя)))
|
| |
|
|
| stepmex | Дата: Понедельник, 19.04.2010, 18:47 | Сообщение # 1221 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| Quote (Pepyk) Но другим же тоже понадобиться!!! Так что напрегись пожалуста и помоги прошу тебя)))
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| Pepyk | Дата: Понедельник, 19.04.2010, 19:02 | Сообщение # 1222 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 111
Награды: 1
Город: ЧернобыльЬ
Репутация: 13
Замечания: 0%
Статус: 
| Эт себе будешь сувать**!
|
| |
|
|
| DANGER1979 | Дата: Вторник, 20.04.2010, 11:12 | Сообщение # 1223 |
|
Постоялец
Группа:
I'm V.I.P.
Сообщений: 365
Награды: 5
Город: Гродно
Репутация: 557
Замечания: 0%
Статус: 
| Pepyk, тебе сначало надо немного самому понять и прочитать вики по ф-иям устанвоки иконок. stepmex, врятли тебе поможет, т.к. ни разу не видел, чтобы он давал готовый код решения чей-то проблемы. Так как на иконки есть ограничение, то лучше делать это через стример. Вот держи. Code ShowMapIcons(playerid)//вызывается каждую секунду из таймера { //для УСТАНОВКИ ИКОНОК НА КАРТЕ начало for(new j=0; j < MAX_ZONES; j++) { if( IsPlayerInZone(playerid, j) )//если игрок находится в координатах по строке j из массива zones { //если игрок находится в какой либо из зон if(MapIconsShown[playerid] != j)//если иконки для этого игрока не установлены { for(new row = 0; row < MAX_ICONS; row++) { //удаляем все предыдущие RemovePlayerMapIcon(playerid, row); } new ind, nMapIcon, IconList[MAX_ICONS];//массив для хранения найденых //получаем из массива список иконок соот. данной зоне и заносим их в другой массив for(new row = 0; row < MAX_ICONS; row++) { //сканируем все иконки построчно if(MapIcons[row][zone_id] == zones[j][zone_id]) { //если иконка принадлежит зоне где находится чувак IconList[nMapIcon] = row;//записываем строку найденой иконки в массив nMapIcon++;//счётчик найденых иконок } } for(ind=0; ind<nMapIcon; ind++)//ind - чтобы не устанавливались другие иконки { //устанавливаем иконки по строке ind из массива IconList[ind] SetPlayerMapIcon(playerid,ind,MapIcons[IconList[ind]][icon_x],MapIcons[IconList[ind]][icon_y],MapIcons[IconList[ind]][icon_z],MapIcons[IconList[ind]][icon_type],0);// } GameTextForPlayer(playerid,zones[j][zone_name],1000,4);//6 выводим название зоны MapIconsShown[playerid] = j;//иконки установлены, чтобы не выполнялось постояннно } } else { if(MapIconsShown[playerid] == j) { for(new row = 0; row < MAX_ICONS; row++) RemovePlayerMapIcon(playerid, row); MapIconsShown[playerid] = 999; } } } return 1; } Иконки устанавливаются из массива MapIcons Вот так выглядит этот массив Code #define MAX_ICONS 84//60 enum iconsinfo { zone_id, Float:icon_x, Float:icon_y, Float:icon_z, icon_type } new Float:MapIcons[MAX_ICONS][iconsinfo] = {//для каждой зоны координаты иконок на карте {MI_LOS_SANTOS, 1462.3958,-1012.3912,26.8438,52},//0 BANK $
... {MI_RED_COUNTY, 628.7086,-571.7820,17.0885,30}//RCPD };//для УСТАНОВКИ ИКОНОК НА КАРТЕ конец Массив иконок в случаи домов надо заменить. Т.е. координаты брать из массива домов. Так же тебе надо определить массив границ всех больших зон. Выглядит он примерно вот так у меня Code //для УСТАНОВКИ ИКОНОК НА КАРТЕ начало #define MI_LOS_SANTOS 0 #define MI_FLINT_COUNTY 1 #define MI_WHETSTONE 2 #define MI_SAN_FIERRO 3 #define MI_TIERRA_ROBADA_L 4 #define MI_TIERRA_ROBADA_R 5 #define MI_BONE_COUNTY 6 #define MI_LAS_VENTURAS 7 #define MI_RED_COUNTY 8
#define MAX_ZONES 9 enum zoneinfo { zone_id, zone_name[20], Float:zone_minx, Float:zone_miny, Float:zone_minz, Float:zone_maxx, Float:zone_maxy, Float:zone_maxz } new Float:zones[MAX_ZONES][zoneinfo] = {//координаты прямоугольной зоны Xmin,Ymin,Zmin,Xmax,Ymax,Zmax { MI_TIERRA_ROBADA_L,"Tierra Robada", -2997.40, 1659.60, -242.90, -480.50, 2993.80, 900.00 }, ... { MI_TIERRA_ROBADA_R,"Tierra Robada", -1213.90, 596.30, -242.90, -480.50, 1659.60, 900.00 } }; Если не поймешь как им пользоваться, ТО пиши, т.к. просто вставить этот код не получится. НАдо будет прописать все недостоющие тебе данные и определить константы. Удачи.
[UCP] Статистика сервера (MySQL) GTA:SA VirtualWorld Server - LifeSimulator [Продажа][GM] VirtualWorld v3.0.219 [FS] VW_SystemOfNeed - Система потребностей [FS] VW_SystemOfBuying - Система покупки авто [FS] VW_Speedometer - с системой расхода топлива и учёта пробега [FS] VW_CargoShip - Грузовое судно
Сообщение отредактировал DANGER1979 - Вторник, 20.04.2010, 11:14 |
| |
|
|
| Pepyk | Дата: Вторник, 20.04.2010, 20:53 | Сообщение # 1224 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 111
Награды: 1
Город: ЧернобыльЬ
Репутация: 13
Замечания: 0%
Статус: 
| DANGER1979 спс что хоть чемто помог!) Буду розбераться!
|
| |
|
|
| dmstealth | Дата: Среда, 21.04.2010, 14:36 | Сообщение # 1225 |
|
Новенький
Группа:
Пользователи
Сообщений: 8
Награды: 0
Город: Kiev
Репутация: 0
Замечания: 0%
Статус: 
| Quote (Genu) Измени в фс сам GivePlayerMoney(playerid,amount); на PlayerCash[playerid] -=amount; Этот способ пробовал сразу же когда увидел проблему, но данная команда ни отбирает деньги, ни добавляет их, и проблему само собой не решает. Еще подумал и хочу попробовать: как сделать что бы при выдаче денег фильтрскрипт записывал новое значение PlayerCash прямо в файл игрока? То есть подменял лишь одну строку "cash=" Уже пробовал реализовать, но что-то оно не работает ))) [pwn] PlayerSave(playerid){ new stringrace[64]; new playernamerace[MAX_PLAYER_NAME]; GetPlayerName(playerid,playernamerace,sizeof(playernamerace)); format(stringrace,sizeof(stringrace),"var/acf/%s.ini",playernamerace); new File: cashrace = fopen(stringrace,io_write); //if (hFile) //{ new var[64]; format(var,64,"cash=%d\n",PlayerCash[playerid]);fwrite(cashrace,var); // } return 1; } [/pwn]
|
| |
|
|
| poks[md] | Дата: Среда, 21.04.2010, 15:58 | Сообщение # 1226 |
|
Новенький
Группа:
Пользователи
Сообщений: 56
Награды: 1
Город: нет
Репутация: -7
Замечания: 20%
Статус: 
| хочу создать окно при входе для регистрации и входа на сервер , не нашёл нигде помогите пожалуйста со скриптом? Добавлено (21.04.2010, 15:58) ---------------------------------------------
мда классно помогают тут в скриптинге
|
| |
|
|
| Pepyk | Дата: Воскресенье, 25.04.2010, 11:18 | Сообщение # 1227 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 111
Награды: 1
Город: ЧернобыльЬ
Репутация: 13
Замечания: 0%
Статус: 
| Помогают все нормально кроме 1! Code (stepmex) он сам по себе! Добавлено (24.04.2010, 13:58) --------------------------------------------- Всё я смог разобратьтся с иконками.... Ток сам голову напригал)) Добавлено (24.04.2010, 23:45) --------------------------------------------- Помогите пожалуста.. Почему при проставке домов.прежние слетают?*? И когда я выхожу из нового дома каторый я поставил,,,,,я выхожу в море(хз как*)при выезде из ЛС... Помогите кто сможет пожалуста) Добавлено (25.04.2010, 00:08) --------------------------------------------- Как сделать чтобы после рестарта сохранялся тюннинг??*?? Помогите пожалуста) Добавлено (25.04.2010, 11:18) --------------------------------------------- Вот выхожу из дома и меня сюда выкидывает! http://i033.radikal.ru/1004/95/eb986ba6c10e.jpg http://s50.radikal.ru/i127/1004/9c/27e933266795.jpg http://i052.radikal.ru/1004/49/b0fb4df28aea.jpg Помогите пожалуста))
|
| |
|
|
| Awm | Дата: Воскресенье, 25.04.2010, 12:01 | Сообщение # 1228 |
|
Группа:
I'm V.I.P.
Сообщений: 3235
Награды: 55
Город: Tallinn
Репутация: 1661
Замечания: 0%
Статус: 
| dmstealth, fseek и io_append для кого создали ? Quote (Pepyk) Вот выхожу из дома и меня сюда выкидывает! координаты верные поставь.
"Life is hard... life is harder if you're stupid." - John Wayne
|
| |
|
|
| Pepyk | Дата: Воскресенье, 25.04.2010, 12:30 | Сообщение # 1229 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 111
Награды: 1
Город: ЧернобыльЬ
Репутация: 13
Замечания: 0%
Статус: 
| Правельно всё там... Если нет..исправь плз) [pwn]0.000000,-800.012207,72.670501,228.537200,1114.332519,1080.992187,0,0,0,0,0,0,The State,New house,1000000,0,100,5,1,0,5,1000,10,0,0,0,0,0,5,0,0[/pwn]Добавлено (25.04.2010, 12:21) --------------------------------------------- И если сможешь обьясни где у меня ошибка*? Добавлено (25.04.2010, 12:30) --------------------------------------------- млин походу не тот код дал) [pwn] 878.1113,-1515.9084,13.8313,295.1559,1473.5322,1080.2578,0,0,0,0,0,0,The State,New house,1000000,0,100,15,1,0,5,1000,10,0,0,0,0,0,5[/pwn]
|
| |
|
|
| Hen-Kok | Дата: Понедельник, 26.04.2010, 21:25 | Сообщение # 1230 |
|
Новенький
Группа:
Пользователи
Сообщений: 16
Награды: 0
Город: уфа
Репутация: -1
Замечания: 0%
Статус: 
| ищу вопрос на ответ можно ли добавить мпшины в /carupgrade на моде GF?
|
| |
|
|
|
 |
|
 | |
| |
|