 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Навык стрельбы
| |
| Nemiroff23 | Дата: Суббота, 07.05.2011, 08:57 | Сообщение # 1 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 100
Награды: 3
Город: Ташкент наверно :D
Репутация: -3
Замечания: 40%
Статус: 
| Команда показывающая навык вашей стрельбы в new PlayerInfo[MAX_PLAYERS][pInfo]; добавим переменные Code pColt, pDesert, pSmg, pAk, pM4, далее в веху мода где все паблики начинаются добавим Code forward SetPlayerSkills(playerid); public SetPlayerSkills(playerid) { SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, PlayerInfo[playerid][pColt]); SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, PlayerInfo[playerid][pDesert]); SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, PlayerInfo[playerid][pSmg]); SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, PlayerInfo[playerid][pAk]); SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, PlayerInfo[playerid][pM4]); return 1; } в паблик public OnPlayerDeath добавим Code if(reason == 22) { if(PlayerInfo[killerid][pColt] >= 0 && PlayerInfo[killerid][pColt] <= 1000) { PlayerInfo[killerid][pColt] += 2; SetPlayerSkills(killerid); } } if(reason == 24) { if(PlayerInfo[killerid][pDesert] >= 0 && PlayerInfo[killerid][pDesert] <= 1000) { PlayerInfo[killerid][pDesert] += 2; SetPlayerSkills(killerid); } } if(reason == 29) { if(PlayerInfo[killerid][pSmg] >= 0 && PlayerInfo[killerid][pSmg] <= 1000) { PlayerInfo[killerid][pSmg] += 2; SetPlayerSkills(killerid); } } if(reason == 30) { if(PlayerInfo[killerid][pAk] >= 0 && PlayerInfo[killerid][pAk] <= 1000) { PlayerInfo[killerid][pAk] += 2; SetPlayerSkills(killerid); } } if(reason == 31) { if(PlayerInfo[killerid][pM4] >= 0 && PlayerInfo[killerid][pM4] <= 1000) { PlayerInfo[killerid][pM4] += 2; SetPlayerSkills(killerid); } } теперь перейдем в сохранение уровня стрельбы в паблик добавляем OnPlayerRegister Code format(var, 64, "Pistol=%d\n",PlayerInfo[playerid][pColt]);fwrite(hFile, var); format(var, 64, "Desertl=%d\n",PlayerInfo[playerid][pDesert]);fwrite(hFile, var); format(var, 64, "SMG=%d\n",PlayerInfo[playerid][pSmg]);fwrite(hFile, var); format(var, 64, "AK47=%d\n",PlayerInfo[playerid][pAk]);fwrite(hFile, var); format(var, 64, "M4=%d\n",PlayerInfo[playerid][pM4]);fwrite(hFile, var); OnPlayerUpdate Code format(var, 64, "Pistol=%d\n",PlayerInfo[playerid][pColt]);fwrite(hFile, var); format(var, 64, "Desertl=%d\n",PlayerInfo[playerid][pDesert]);fwrite(hFile, var); format(var, 64, "SMG=%d\n",PlayerInfo[playerid][pSmg]);fwrite(hFile, var); format(var, 64, "AK47=%d\n",PlayerInfo[playerid][pAk]);fwrite(hFile, var); format(var, 64, "M4=%d\n",PlayerInfo[playerid][pM4]);fwrite(hFile, var); OnPlayerLogin Code if( strcmp( key , "Pistol" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pColt] = strval( val ); } if( strcmp( key , "Desert" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDesert] = strval( val ); } if( strcmp( key , "Smg" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSmg] = strval( val ); } if( strcmp( key , "Ak47" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAk] = strval( val ); } if( strcmp( key , "M4" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pM4] = strval( val ); } OnPlayerLogin Code SetPlayerSkills(playerid); OnPlayerConnect Code PlayerInfo[playerid][pColt] = 0; PlayerInfo[playerid][pDesert] = 0; PlayerInfo[playerid][pSmg] = 0; PlayerInfo[playerid][pAk] = 0; PlayerInfo[playerid][pM4] = 0; а теперь поставим наш уровень стрельбы в статистику персонажа public ShowStats Code new ptxt[20], dtxt[20],smtxt[20], sktxt[20],s4txt[20]; if(PlayerInfo[playerid][pColt] >= 0 && PlayerInfo[playerid][pColt] <= 99) ptxt = "0 Уровень"; else if(PlayerInfo[playerid][pColt] >= 100 && PlayerInfo[playerid][pColt] <= 199) ptxt = "1 Уровень"; else if(PlayerInfo[playerid][pColt] >= 200 && PlayerInfo[playerid][pColt] <= 299) ptxt = "2 Уровень"; else if(PlayerInfo[playerid][pColt] >= 300 && PlayerInfo[playerid][pColt] <= 399) ptxt = "3 Уровень"; else if(PlayerInfo[playerid][pColt] >= 400) ptxt = "4 Уровень"; if(PlayerInfo[playerid][pDesert] >= 0 && PlayerInfo[playerid][pDesert] <= 099) dtxt = "0 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 100 && PlayerInfo[playerid][pDesert] <= 199) dtxt = "1 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 200 && PlayerInfo[playerid][pDesert] <= 299) dtxt = "2 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 300 && PlayerInfo[playerid][pDesert] <= 399) dtxt = "3 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 400) dtxt = "4 Уровень"; if(PlayerInfo[playerid][pSmg] >= 0 && PlayerInfo[playerid][pSmg] <= 99) smtxt = "0 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 100 && PlayerInfo[playerid][pSmg] <= 199) smtxt = "1 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 200 && PlayerInfo[playerid][pSmg] <= 299) smtxt = "2 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 300 && PlayerInfo[playerid][pSmg] <= 399) smtxt = "3 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 400) smtxt = "4 Уровень"; if(PlayerInfo[playerid][pAk] >= 0 && PlayerInfo[playerid][pAk] <= 99) sktxt = "0 Уровень"; else if(PlayerInfo[playerid][pAk] >= 100 && PlayerInfo[playerid][pAk] <= 199) sktxt = "1 Уровень"; else if(PlayerInfo[playerid][pAk] >= 200 && PlayerInfo[playerid][pAk] <= 299) sktxt = "2 Уровень"; else if(PlayerInfo[playerid][pAk] >= 300 && PlayerInfo[playerid][pAk] <= 399) sktxt = "3 Уровень"; else if(PlayerInfo[playerid][pAk] >= 400) sktxt = "4 Уровень"; } if(PlayerInfo[playerid][pM4] >= 0 && PlayerInfo[playerid][pM4] <= 99) s4txt = "0 Уровень"; else if(PlayerInfo[playerid][pM4] >= 100 && PlayerInfo[playerid][pM4] <= 199) s4txt = "1 Уровень"; else if(PlayerInfo[playerid][pM4] >= 200 && PlayerInfo[playerid][pM4] <= 299) s4txt = "2 Уровень"; else if(PlayerInfo[playerid][pM4] >= 300 && PlayerInfo[playerid][pM4] <= 399) s4txt = "3 Уровень"; else if(PlayerInfo[playerid][pM4] >= 400) s4txt = "4 Уровень"; format(string, sizeof(string), "Colt:[%s]\nDeagle:[%s]\nMP5:[%s]\nM4:[%s]\nAK-47:[%s]", ptxt,dtxt, smtxt, sktxt, s4txt);
Учусь скриптингу. Занимаюсь Мапингом. Продам домен + хост для сайта, оплачено до 25.04.2012. Online-Samp.Ru
|
| |
|
|
| Dima-kun | Дата: Суббота, 07.05.2011, 12:02 | Сообщение # 2 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| Перемещено в раздел The GodFarher. Причина:Урок написан для данного игрового режима. Переместил:Morino_Reigan
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| Dev | Дата: Суббота, 28.05.2011, 15:55 | Сообщение # 3 |
|
Новенький
Группа:
Продвинутые
Сообщений: 36
Награды: 1
Город: Одесса
Репутация: 2
Замечания: 0%
Статус: 
| а прокачка навыка стрельбы где идёт? или будет у всех тупо 0? в таком случае можно просто выставить всем SetPlayerSkillLevel(playerid, WEAPONSKILL_WEAPON, 0);
добавлю тогда, чтоб прокачивать оружие коммандой админа
Code if(strcmp(cmd, "/setweapskill", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "Подсказка: /setweapskill [id] [ячейка] [0-1000]"); SendClientMessage(playerid, COLOR_GREY, "1 Colt45 | 2 Deagle | 3 SMG | 4 AK47 | 5 M4"); return 1; } giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "Подсказка: /setweapskill [id] [ячейка] [0-1000]"); SendClientMessage(playerid, COLOR_GREY, "1 Colt45 | 2 Deagle | 3 SMG | 4 AK47 | 5 M4"); return 1; } new weapon; weapon = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "Подсказка: /setweapskill [id] [ячейка] [0-1000]"); SendClientMessage(playerid, COLOR_GREY, "1 Colt45 | 2 Deagle | 3 SMG | 4 AK47 | 5 M4"); return 1; } new amount; amount = strval(tmp); if (PlayerInfo[playerid][pAdmin] >= 1337) { switch (weapon) { case 1: { if(amount < 0 || amount > 1000) { SendClientMessage(playerid, COLOR_GREY, "* От 0 до 1000!"); return 1; } PlayerInfo[giveplayerid][pColt] = amount; SetPlayerSkillLevel(giveplayerid, WEAPONSKILL_PISTOL, amount); SetPlayerSkills(giveplayerid); } case 2: { if(amount < 0 || amount > 1000) { SendClientMessage(playerid, COLOR_GREY, "* От 0 до 1000!"); return 1; } PlayerInfo[giveplayerid][pDesert] = amount; SetPlayerSkillLevel(giveplayerid, WEAPONSKILL_DESERT_EAGLE, amount); SetPlayerSkills(giveplayerid); } case 3: { if(amount < 0 || amount > 1000) { SendClientMessage(playerid, COLOR_GREY, "* От 0 до 1000!"); return 1; } PlayerInfo[giveplayerid][pSmg] = amount; SetPlayerSkillLevel(giveplayerid, WEAPONSKILL_MP5, amount); SetPlayerSkills(giveplayerid); } case 4: { if(amount < 0 || amount > 1000) { SendClientMessage(playerid, COLOR_GREY, "* От 0 до 1000!"); return 1; } PlayerInfo[giveplayerid][pAk] = amount; SetPlayerSkillLevel(giveplayerid, WEAPONSKILL_AK47, amount); SetPlayerSkills(giveplayerid); } case 5: { if(amount < 0 || amount > 1000) { SendClientMessage(playerid, COLOR_GREY, "* От 0 до 1000!"); return 1; } PlayerInfo[giveplayerid][pM4] = amount; SetPlayerSkillLevel(giveplayerid, WEAPONSKILL_M4, amount); SetPlayerSkills(giveplayerid); } default: { SendClientMessage(playerid, COLOR_ORANGERED,"Неверное значение ячейки!"); }
} } else { SendClientMessage(playerid, COLOR_GRAD1, "** Вы не избранный!"); } } } } return 1; }
Сообщение отредактировал Dev - Суббота, 28.05.2011, 15:57 |
| |
|
|
| Impereal | Дата: Среда, 15.06.2011, 16:31 | Сообщение # 4 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Quote (Nemiroff23) new ptxt[20], dtxt[20],smtxt[20], sktxt[20],s4txt[20]; if(PlayerInfo[playerid][pColt] >= 0 && PlayerInfo[playerid][pColt] <= 99) ptxt = "0 Уровень"; else if(PlayerInfo[playerid][pColt] >= 100 && PlayerInfo[playerid][pColt] <= 199) ptxt = "1 Уровень"; else if(PlayerInfo[playerid][pColt] >= 200 && PlayerInfo[playerid][pColt] <= 299) ptxt = "2 Уровень"; else if(PlayerInfo[playerid][pColt] >= 300 && PlayerInfo[playerid][pColt] <= 399) ptxt = "3 Уровень"; else if(PlayerInfo[playerid][pColt] >= 400) ptxt = "4 Уровень"; if(PlayerInfo[playerid][pDesert] >= 0 && PlayerInfo[playerid][pDesert] <= 099) dtxt = "0 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 100 && PlayerInfo[playerid][pDesert] <= 199) dtxt = "1 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 200 && PlayerInfo[playerid][pDesert] <= 299) dtxt = "2 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 300 && PlayerInfo[playerid][pDesert] <= 399) dtxt = "3 Уровень"; else if(PlayerInfo[playerid][pDesert] >= 400) dtxt = "4 Уровень"; if(PlayerInfo[playerid][pSmg] >= 0 && PlayerInfo[playerid][pSmg] <= 99) smtxt = "0 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 100 && PlayerInfo[playerid][pSmg] <= 199) smtxt = "1 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 200 && PlayerInfo[playerid][pSmg] <= 299) smtxt = "2 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 300 && PlayerInfo[playerid][pSmg] <= 399) smtxt = "3 Уровень"; else if(PlayerInfo[playerid][pSmg] >= 400) smtxt = "4 Уровень"; if(PlayerInfo[playerid][pAk] >= 0 && PlayerInfo[playerid][pAk] <= 99) sktxt = "0 Уровень"; else if(PlayerInfo[playerid][pAk] >= 100 && PlayerInfo[playerid][pAk] <= 199) sktxt = "1 Уровень"; else if(PlayerInfo[playerid][pAk] >= 200 && PlayerInfo[playerid][pAk] <= 299) sktxt = "2 Уровень"; else if(PlayerInfo[playerid][pAk] >= 300 && PlayerInfo[playerid][pAk] <= 399) sktxt = "3 Уровень"; else if(PlayerInfo[playerid][pAk] >= 400) sktxt = "4 Уровень"; } if(PlayerInfo[playerid][pM4] >= 0 && PlayerInfo[playerid][pM4] <= 99) s4txt = "0 Уровень"; else if(PlayerInfo[playerid][pM4] >= 100 && PlayerInfo[playerid][pM4] <= 199) s4txt = "1 Уровень"; else if(PlayerInfo[playerid][pM4] >= 200 && PlayerInfo[playerid][pM4] <= 299) s4txt = "2 Уровень"; else if(PlayerInfo[playerid][pM4] >= 300 && PlayerInfo[playerid][pM4] <= 399) s4txt = "3 Уровень"; else if(PlayerInfo[playerid][pM4] >= 400) s4txt = "4 Уровень"; format(string, sizeof(string), "Colt:[%s]\nDeagle:[%s]\nMP5:[%s]\nM4:[%s]\nAK-47:[%s]", ptxt,dtxt, smtxt, sktxt, s4txt); Мде,советовал бы так сделать: Code new ptxt[20], dtxt[20],smtxt[20], sktxt[20],s4txt[20]; switch(PlayerInfo[playerid][pColt]) { case 0..99: ptxt = "0 Уровень"; case 100..199: ptxt = "1 Уровень"; case 200..299: ptxt = "2 Уровень"; case 300..399: ptxt = "3 Уровень"; default: ptxt = "4 Уровень"; } switch(PlayerInfo[playerid][pDesert]) { case 0..99: dtxt = "0 Уровень"; case 100..199: dtxt = "1 Уровень"; case 200..299: dtxt = "2 Уровень"; case 300..399: dtxt = "3 Уровень"; default: dtxt = "4 Уровень"; } switch(PlayerInfo[playerid][pSmg]) { case 0..99: smtxt = "0 Уровень"; case 100..199: smtxt = "1 Уровень"; case 200..299: smtxt = "2 Уровень"; case 300..399: smtxt = "3 Уровень"; default: smtxt = "4 Уровень"; } switch(PlayerInfo[playerid][pAk]) { case 0..99: sktxt = "0 Уровень"; case 100..199: sktxt = "1 Уровень"; case 200..299: sktxt = "2 Уровень"; case 300..399: sktxt = "3 Уровень"; default: sktxt = "4 Уровень"; } switch(PlayerInfo[playerid][pM4]) { case 0..99: s4txt = "0 Уровень"; case 100..199: s4txt = "1 Уровень"; case 200..299: s4txt = "2 Уровень"; case 300..399: s4txt = "3 Уровень"; default: s4txt = "4 Уровень"; } format(string, sizeof(string), "Colt:[%s]\nDeagle:[%s]\nMP5:[%s]\nM4:[%s]\nAK-47:[%s]", ptxt,dtxt, smtxt, sktxt, s4txt);
Прощай самп-рус =Р
|
| |
|
|
| Impereal | Дата: Среда, 15.06.2011, 16:35 | Сообщение # 5 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Quote (Dev) а прокачка навыка стрельбы где идёт? или будет у всех тупо 0? в таком случае можно просто выставить всем SetPlayerSkillLevel(playerid, WEAPONSKILL_WEAPON, 0);
добавлю тогда, чтоб прокачивать оружие коммандой админа Видимо слепой либо даун,в начале может код будем смотреть а потом херь всякую нести. В коде идет сохранение в аккаунт навыков и загрузках их при входе...
Прощай самп-рус =Р
|
| |
|
|
| Dev | Дата: Среда, 15.06.2011, 16:54 | Сообщение # 6 |
|
Новенький
Группа:
Продвинутые
Сообщений: 36
Награды: 1
Город: Одесса
Репутация: 2
Замечания: 0%
Статус: 
| Quote (Impereal) Видимо слепой либо даун,в начале может код будем смотреть а потом херь всякую нести. В коде идет сохранение в аккаунт навыков и загрузках их при входе... я не слепой и не даун <_< я понял, что идёт сохранение навыков, но вопрос: а где же тут прокачка навыков? если её нет, какой толк тогда прогружать их? можно просто 0 поставить и всё, чтоб не мучался. обрати же внимание на вот это <_< (ниже ещё пояснение):
Code PlayerInfo[playerid][pColt] = 0; PlayerInfo[playerid][pDesert] = 0; PlayerInfo[playerid][pSmg] = 0; PlayerInfo[playerid][pAk] = 0; PlayerInfo[playerid][pM4] = 0;
Добавлю:
Code if(reason == 22) { if(PlayerInfo[killerid][pColt] >= 0 && PlayerInfo[killerid][pColt] <= 1000) { PlayerInfo[killerid][pColt] += 2; SetPlayerSkills(killerid); } } if(reason == 24) { if(PlayerInfo[killerid][pDesert] >= 0 && PlayerInfo[killerid][pDesert] <= 1000) { PlayerInfo[killerid][pDesert] += 2; SetPlayerSkills(killerid); } } if(reason == 29) { if(PlayerInfo[killerid][pSmg] >= 0 && PlayerInfo[killerid][pSmg] <= 1000) { PlayerInfo[killerid][pSmg] += 2; SetPlayerSkills(killerid); } } if(reason == 30) { if(PlayerInfo[killerid][pAk] >= 0 && PlayerInfo[killerid][pAk] <= 1000) { PlayerInfo[killerid][pAk] += 2; SetPlayerSkills(killerid); } } if(reason == 31) { if(PlayerInfo[killerid][pM4] >= 0 && PlayerInfo[killerid][pM4] <= 1000) { PlayerInfo[killerid][pM4] += 2; SetPlayerSkills(killerid); } } само собой, если вася убил чела, то васе дают скилл? тогда что эта тема делает в ГФ? это в ДМ надо потому что это за прокачку оружия в ГФ я не считаю.. заранее опережу вопрос: придут игроки на сервер (нубы например), узнают, что чтобы прокачать скилл оружия надо убивать. что тут начнётся? третья мировая? протестантский режим? люди с ума сойдут? не думаю. сервер превратится в ДМ. собственно для этого я и дал комманду для повышения лвла оружия через админов. а тренировку лучше сделать в аммуниции
Сообщение отредактировал Dev - Среда, 15.06.2011, 17:11 |
| |
|
|
| El_Jay | Дата: Воскресенье, 14.08.2011, 11:50 | Сообщение # 7 |
|
Новенький
Группа:
Пользователи
Сообщений: 9
Награды: 0
Город: Samp-rus.com
Репутация: 0
Замечания: 0%
Статус: 
| if(reason == 31) { if(PlayerInfo[killerid][pM4] >= 0 && PlayerInfo[killerid][pM4] <= 1000) { PlayerInfo[killerid][pM4] += 2; SetPlayerSkills(killerid); } }
а что 1000 дает, к чему это число тут можете сказать, и как сделал убил 20 человек левел up
|
| |
|
|
|
 |
|
 | |
| |
|