Всем привет.как сделать чтобы очки которые давались при убийстве сохранялись самп Я сделал так чтобы когда убиваешь игрока и тебе дает очки и деньги но когда выходишь из игры очки пропадают.Помогите решить проблему
Мои работы : [MAP] Пружина- (http://www.samp-rus.com/forum/65-19428-1) [MAP] Стант парк (0.3с)- (http://www.samp-rus.com/forum/65-19429-1#415184) [MAP]ТРУБЫ- (http://www.samp-rus.com/forum/65-19442-1) [MAP+FS] Трасса для драг гонок(СФ) (http://www.samp-rus.com/forum/65-19455-1)
Добавлено (23.09.2011, 19:08) --------------------------------------------- Ну кто та поможет мне
Добавлено (24.09.2011, 21:53) --------------------------------------------- Всем привет.как сделать чтобы очки которые давались при убийстве сохранялись самп Я сделал так чтобы когда убиваешь игрока и тебе дает очки и деньги но когда выходишь из игры очки пропадают.Помогите решить проблему
Мои работы : [MAP] Пружина- (http://www.samp-rus.com/forum/65-19428-1) [MAP] Стант парк (0.3с)- (http://www.samp-rus.com/forum/65-19429-1#415184) [MAP]ТРУБЫ- (http://www.samp-rus.com/forum/65-19442-1) [MAP+FS] Трасса для драг гонок(СФ) (http://www.samp-rus.com/forum/65-19455-1)
Всем привет.как сделать чтобы очки которые давались при убийстве сохранялись самп Я сделал так чтобы когда убиваешь игрока и тебе дает очки и деньги но когда выходишь из игры очки пропадают.Помогите решить проблему
делай сохранение наподобии денег, если не разберешься пиши в аську.
giveplayerid = ReturnUser(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, " Подсказка: /heal [IDигрока] [цена]"); return 1; } moneys = strval(tmp); if(moneys < 1 || moneys > 1000) { SendClientMessage(playerid, COLOR_GREY, "Цена от 1 до 1000"); return 1; } if (giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GRAD1, " Ты не можешь лечить себя!"); return 1; } if (IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); // new giveambu = GetPlayerVehicleID(giveplayerid); Если раскомментировать - лечить можно будет только в транспорте // new playambu = GetPlayerVehicleID(playerid); Если раскомментировать - лечить можно будет только в транспорте if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)//model { // if (IsAnAmbulance(playambu) && playambu == giveambu) Если раскомментировать - лечить можно будет только в транспорте // { new Float:tempheal; GetPlayerHealth(giveplayerid,tempheal); if(tempheal >= 100.0) { SendClientMessage(playerid, TEAM_GREEN_COLOR," Этот человек полностью здоров."); return 1; } if(.... > PlayerInfo[giveplayerid][pCash]) <-------- { SendClientMessage(playerid, COLOR_TOMATO, " У этого игрока нету столько денег"); return 1; }
как мне сделать проверку если у игрока меньше денег чем цена лечения то не будет лечить а будет писать то что в коде
if(GetPlayerMoney(playerid) < HealPrice[playerid]) { SendClientMessage(HealOffer[playerid], COLOR_GREY, "У игрока нет столько денег на руках!); return 1; }
Играй там где лучше Server Gta San Andreas: Multiplayer 0.3.7
Без труда талант - это фейерверк: на мгновение ослепляет, а потом ничего не остается
/equip для закона /equip armor,deagle, m4,ak47,rifle,shotgun,armour,дубинка и когда вводишь название гана то вводишь кол-во пуль т.е. /equip armor 100 тебе даётся броня скол-вом 100 брони /equip deagle 50 дигл на 50
заранее благодарен пытался сам сделать нифига не получается(
Доброго всем времени суток. Уже не один день пытаюсь решить проблему. Если кто работал с MySQL в pawno прошу помочь.
Суть следующая: Есть таблица carshop хранящая данные о местах в магазинах авто. В этой таблице 96 записей. Писал функцию которая считывает все данные из таблицы и запихивает в массив, код в принципе праильный только сервер падает без ошибок как только функция начинает исполнятся. Выявил что конкретно сервер падает после старта функции samp_mysql_fetch_row Упростил функцию для наглядного обозрения алгоритма, убрал практически все лишнее:
Code
public ShopBaseUp() { new query[129],data[1280]; new row; format(query,sizeof(query),"SELECT X,Y,Z,id FROM car"); samp_mysql_query(query); samp_mysql_store_result(); row = samp_mysql_num_rows(); printf("rows = %d",row); new Xs[12],Ys[12],Zs[12],ids[12]; new Float:X,Float:Y,Float:Z; new id; for(new i=1;i<=row;i++) { samp_mysql_fetch_row(data); samp_mysql_get_field("X",Xs); samp_mysql_get_field("Y",Ys); samp_mysql_get_field("Z",Zs); samp_mysql_get_field("id",ids); X=floatstr(Xs); Y=floatstr(Ys); Z=floatstr(Zs); id=strval(ids); printf("¹ %d | X,Y,Z - %f %f %f | ID - %d",i,X,Y,Z,id); } return 1; }
Код работоспособный 100% так как если все оставить так же как есть а изменить в запросе имя таблицы например на таблицу с аккаунтами игроков playerlib где тоже имеются поля X,Y,Z,id то все успешно отработает
Проверял так же работу запроса, кол-во строк полученных в переменную row 96 как и должно быть, если убрать функцию samp_mysql_fetch_row тогда скрипт нормально отработает и запишет 96 раз в массив первую строку извлеченную из базы.
Пробовал увеличивать размер переменной data, эфекта не дало. Может кто встречался с данной проблемой?
Проблема когда паркую авто оно не записывается в файл а респавнится тамже где и купилось:
Code
case 22: //Купить авто для банды { if(PlayerInfo[playerid][pGangLeader] != 1) { SendClientMessage(playerid,COLOR_GREY,"Вы не являетесь лидером банды"); return 1; } if(!response) { ShowGangMenu(playerid); return 1; } if(!IsPlayerInRangeOfPoint(playerid,5.0,CarDeal[0],CarDeal[1],CarDeal[2])) { SendClientMessage(playerid,COLOR_GREY,"Вы не у дилера автомобилей"); ShowGangMenu(playerid); return 1; } new a; for(new i = 1; i <= MAX_VEHICLES; i++) { if(GetVehicleModel(i) == 0) continue; if(strlen(CarInfo[i][cOwner]) > 0 && !strcmp(CarInfo[i][cOwner],GangInfo[PlayerInfo[playerid][pGangMember]][gName],true)) a ++; } if(a >= Config[MaxGangCars_cfg]) { SendClientMessage(playerid,COLOR_GREY,"Ваша банда уже имеет максимальное количество транспорта"); ShowGangMenu(playerid); return 1; } if(!strlen(inputtext)) { ShowPlayerDialog(playerid,22,DIALOG_STYLE_INPUT,"Покупка автомобиля","Введите ID автомобиля который вы хотите приобрести.\n\ Все ID'ы машин вы можете посмотреть на сайте:\nhttp://wiki.sa-mp.com/wiki/Vehicles:All","Далее","Назад"); return 1; } new carid = strval(inputtext); if(carid < 400 || carid > 611) { SendClientMessage(playerid,COLOR_GREY,"Неверный ID транспорта"); ShowPlayerDialog(playerid,22,DIALOG_STYLE_INPUT,"Покупка автомобиля","Введите ID автомобиля который вы хотите приобрести.\n\ Все ID'ы машин вы можете посмотреть на сайте:\nhttp://wiki.sa-mp.com/wiki/Vehicles:All","Далее","Назад"); return 1; } SetPVarInt(playerid,"[T]GCarId",carid); new string[128]; format(string,sizeof(string),"Вы выбрали автомобиль ID-%d,\nцена этого автомобиля $%d и %d репутации.\n",carid,ModelPrices[carid-400][0],ModelPrices[carid-400][0]); ShowPlayerDialog(playerid,23,DIALOG_STYLE_MSGBOX,"Покупка автомобиля",string,"Купить","Отмена"); return 1; }
Code
case 5: //Припарковать авто { if(PlayerInfo[playerid][pGangMember] == -1) { SendClientMessage(playerid,COLOR_WHITE,"Вы не состоите в банде"); return 1; } if(PlayerInfo[playerid][pGangLeader] != 1) { SendClientMessage(playerid,COLOR_WHITE,"Вы не являетесь лидером банды"); return 1; } new carid = GetPlayerVehicleID(playerid); if(carid == 0) { SendClientMessage(playerid,COLOR_GREY,"Вы должны находится в транспортном средстве, которое принадлежит вашей банде"); return 1; } if(strcmp(CarInfo[carid][cOwner],GangInfo[PlayerInfo[playerid][pGangMember]][gName],true)) { SendClientMessage(playerid,COLOR_GREY,"Вы должны находится в транспортном средстве, которое принадлежит вашей банде"); return 1; } new Float:x,Float:y,Float:z,Float:a; GetVehiclePos(carid,x,y,z); GetVehicleZAngle(carid,a); CarInfo[carid][cPos_x] = x; CarInfo[carid][cPos_y] = y; CarInfo[carid][cPos_z] = z; CarInfo[carid][cPos_a] = a; SaveCars(); SendClientMessage(playerid,COLOR_GREY,"Вы припарковали эту машину. Теперь она всегда будет появляться в этом месте"); }