Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Система Прокачки Скилов Как На Samp-Rp - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (3 Страниц) +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ GF ]
Система Прокачки Скилов Как На Samp-Rp
Оценка: ***** 1 Голосов

#1
Пользователь офлайн   Romzes 

  • © Pawn-Wiki.Ru
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
в pinfo:
pSDPistol,
pDesertEagle,
pShotGun,
pMP5,
pAK47,
pM4,


И ниже:
new iPlayerAmmo[MAX_PLAYERS];
new iNewPlayerAmmo[MAX_PLAYERS];
new Shot[MAX_PLAYERS];


в public OnPlayerRegister и в паблик сохранения:
iniSetInt(File,"SDPistol",0);
iniSetInt(File,"DesertEagle",0);
iniSetInt(File,"ShotGun",0);
iniSetInt(File,"MP5",0);
iniSetInt(File,"AK47",0);
iniSetInt(File,"M4",0);


в public OnPlayerLogin
iniGetInt(File,"SDPistol",PlayerInfo[playerid][pSDPistol]);
niGetInt(File,"DesertEagle",PlayerInfo[playerid][pDesertEagle]);
iniGetInt(File,"ShotGun",PlayerInfo[playerid][pShotGun]);
iniGetInt(File,"MP5",PlayerInfo[playerid][pMP5]);
iniGetInt(File,"AK47",PlayerInfo[playerid][pAK47]);
iniGetInt(File,"M4",PlayerInfo[playerid][pM4]);


Добовляем команду /myskill для sscanf_zcmd:
CMD:myskill(playerid,params[])
{
    if(!GetPVarInt(playerid,"PlayerLogged")) return true;
	new string[1000];
	new points[6];
	points[0] = 100 - PlayerInfo[playerid][pSDPistol];
	points[1] = 100 - PlayerInfo[playerid][pDesertEagle];
	points[2] = 100 - PlayerInfo[playerid][pShotGun];
	points[3] = 100 - PlayerInfo[playerid][pMP5];
	points[4] = 100 - PlayerInfo[playerid][pAK47];
	points[5] = 100 - PlayerInfo[playerid][pM4];
 	format(string,1000,"SDPistol:\t[%s]%d%\nDeagle:\t[%s]%d%\nShotGun:
\t[%s]%d%\nMP5\t\t[%s]%d%\nAK47:\t\t[%s]%d%
\nM4A1:\t\t[%s]%d%",
 	ToDevelopSkills(PlayerInfo[playerid][pSDPistol],points[0]),PlayerInfo[playerid]
[pSDPistol],
 	ToDevelopSkills(PlayerInfo[playerid][pDesertEagle],points[1]),PlayerInfo[
playerid][pDesertEagle],
 	ToDevelopSkills(PlayerInfo[playerid][pShotGun],points[2]),PlayerInfo[playerid]
[pShotGun],
 	ToDevelopSkills(PlayerInfo[playerid][pMP5],points[3]),PlayerInfo[playerid]
[pMP5],
 	ToDevelopSkills(PlayerInfo[playerid][pAK47],points[4]),PlayerInfo[playerid]
[pAK47],
 	ToDevelopSkills(PlayerInfo[playerid][pM4],points[5]),PlayerInfo[playerid]
[pM4]);
 	ShowPlayerDialog(playerid,43,DIALOG_STYLE_MSGBOX,"<< Навыки владения оружием >>",string,"Готово","");
	return true;
}


Для обчных команд:
if(strcmp(cmd, "/myskills", true) == 0)
{
    if(!GetPVarInt(playerid,"PlayerLogged")) return true;
	new string[1000];
	new points[6];
	points[0] = 100 - PlayerInfo[playerid][pSDPistol];
	points[1] = 100 - PlayerInfo[playerid][pDesertEagle];
	points[2] = 100 - PlayerInfo[playerid][pShotGun];
	points[3] = 100 - PlayerInfo[playerid][pMP5];
	points[4] = 100 - PlayerInfo[playerid][pAK47];
	points[5] = 100 - PlayerInfo[playerid][pM4];
 	format(string,1000,"SDPistol:\t[%s]%d%\nDeagle:\t[%s]%d%\nShotGun:
\t[%s]%d%\nMP5\t\t[%s]%d%\nAK47:\t\t[%s]%d%
\nM4A1:\t\t[%s]%d%",
 	ToDevelopSkills(PlayerInfo[playerid][pSDPistol],points[0]),PlayerInfo[playerid]
[pSDPistol],
 	ToDevelopSkills(PlayerInfo[playerid][pDesertEagle],points[1]),PlayerInfo[
playerid][pDesertEagle],
 	ToDevelopSkills(PlayerInfo[playerid][pShotGun],points[2]),PlayerInfo[playerid]
[pShotGun],
 	ToDevelopSkills(PlayerInfo[playerid][pMP5],points[3]),PlayerInfo[playerid]
[pMP5],
 	ToDevelopSkills(PlayerInfo[playerid][pAK47],points[4]),PlayerInfo[playerid]
[pAK47],
 	ToDevelopSkills(PlayerInfo[playerid][pM4],points[5]),PlayerInfo[playerid]
[pM4]);
 	ShowPlayerDialog(playerid,43,DIALOG_STYLE_MSGBOX,"<< Навыки владения оружием >>",string,"Готово","");
	return true;
}


Ну и сама функция распознавание прокачки скиллов:
stock ToDevelopSkills(Slashes,Points)
{
	new string[149];
	new Slash[2] = "|";
	new Point[2] = ".";
	for(new i = 0; i < Slashes; i++) strcat(string, Slash);
	for(new i = 0; i < Points; i++) strcat(string, Point);
    return string;
}


В конец мода функцию скиллов игрока
stock SetPlayerSkills(playerid)
{
if(PlayerInfo[playerid][pSDPistol] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 1000);
if(PlayerInfo[playerid][pDesertEagle] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, 1000);
if(PlayerInfo[playerid][pShotGun] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, 1000);
if(PlayerInfo[playerid][pMP5] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, 1000);
if(PlayerInfo[playerid][pAK47] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, 1000);
if(PlayerInfo[playerid][pM4] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, 1000);
return 1;
}


В public OnPlayerSpawn SetPlayerSkills(playerid); в самый конец
Теперь переменные для отчитывания патронов в public OnPlayerUpdate
iNewPlayerAmmo[playerid] = GetPlayerAmmo(playerid);
	if(iNewPlayerAmmo[playerid] != iPlayerAmmo[playerid])
	{
		OnPlayerAmmoChange(playerid, iNewPlayerAmmo[playerid], iPlayerAmmo[playerid]);
		iPlayerAmmo[playerid] = iNewPlayerAmmo[playerid];
	}


Ну и сам public куда нить тоже в конец мода
public OnPlayerAmmoChange(playerid, newammo, oldammo)
{
	if(GetPlayerWeapon(playerid) == 24 && newammo < oldammo)
	{
	    Shot[playerid]++;
	    if(Shot[playerid] >= 24)
	    {
	    	PlayerInfo[playerid][pDesertEagle] ++;
			Shot[playerid] = 0;
			SaveAccount(playerid);//Или ваша функция сохранение акаунта
		}
	}
	if(GetPlayerWeapon(playerid) == 23 && newammo < oldammo)
	{
	    Shot[playerid]++;
	    if(Shot[playerid] >= 30)
	    {
	    	PlayerInfo[playerid][pSDPistol] ++;
			Shot[playerid] = 0;
			SaveAccount(playerid);//Или ваша функция сохранение акаунта
		}
	}
	if(GetPlayerWeapon(playerid) == 25 && newammo < oldammo)
	{
	    Shot[playerid]++;
	    if(Shot[playerid] >= 15)
	    {
	    	PlayerInfo[playerid][pShotGun] ++;
			Shot[playerid] = 0;
			SaveAccount(playerid);//Или ваша функция сохранение акаунта
		}
	}
	if(GetPlayerWeapon(playerid) == 29 && newammo < oldammo)
	{
	    Shot[playerid]++;
	    if(Shot[playerid] >= 75)
	    {
	    	PlayerInfo[playerid][pMP5] ++;
			Shot[playerid] = 0;
			SaveAccount(playerid);//Или ваша функция сохранение акаунта
		}
	}
	if(GetPlayerWeapon(playerid) == 30 && newammo < oldammo)
	{
	    Shot[playerid]++;
	    if(Shot[playerid] >= 100)
	    {
	    	PlayerInfo[playerid][pAK47] ++;
			Shot[playerid] = 0;
			SaveAccount(playerid);//Или ваша функция сохранение акаунта
		}
	}
	if(GetPlayerWeapon(playerid) == 29 && newammo < oldammo)
	{
	    Shot[playerid]++;
	    if(Shot[playerid] >= 89)
	    {
	    	PlayerInfo[playerid][pM4] ++;
			Shot[playerid] = 0;
			SaveAccount(playerid);//Или ваша функция сохранение акаунта
		}
	}
	return 1;
}


В public OnPlayerLogin:
SetPVarInt(playerid,"PlayerLogged",1);


Вот и всё.. Автор я:)
Знаю, что были подобные темы, но эта реально копия..
Ах, да if(Shot[playerid] >= кол -во) это сколько надо выстрелить патронов
Вот примерно так будет:
Изображение

Автор: Fresh_Light
0

Сказали спасибо 2:

#2
Пользователь офлайн   xkluz1v 

  • Прохожий
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Все сделал как ты написал , но все таки 4 ошибки возникли при компелированнии, помогите пожалуйста с меня +!

Вот сами ошибки:

C:\Users\?????\Desktop\???\gamemodes\Belarus.pwn(297) : error 017: undefined symbol "PlayerInfo"
C:\Users\?????\Desktop\???\gamemodes\Belarus.pwn(297) : warning 215: expression has no effect
C:\Users\?????\Desktop\???\gamemodes\Belarus.pwn(297) : error 001: expected token: ";", but found "]"
C:\Users\?????\Desktop\???\gamemodes\Belarus.pwn(297) : error 029: invalid expression, assumed zero
C:\Users\?????\Desktop\???\gamemodes\Belarus.pwn(297) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase

4 Errors.


Строка:
[297]points[0] = 100 - PlayerInfo[playerid][pSDPistol];

Сообщение отредактировал xkluz1v: 05 Январь 2012 - 08:55

0

#3
Пользователь офлайн   Romzes 

  • © Pawn-Wiki.Ru
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
И в какой ты мод впиливал? Система для GF
0

#4
Пользователь офлайн   Rock & Roll 

  • ДИПЛОМИРОВАННЫЙ ИНЖЕНЕР
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Чтож вы все та с этим playerinfo возитесь... это переменная у вас в регестрации!! у меня например это Player[playerid]
0

#5
Пользователь офлайн   xkluz1v 

  • Прохожий
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Я мод с 0 делаю и вливаю туда уроки)
0

#6
Пользователь офлайн   Lwf 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
У тебя рега сделана?
0

#7
Пользователь офлайн   xkluz1v 

  • Прохожий
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Нет
-1

#8
Пользователь офлайн   Lwf 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Этим всё и сказано..
0

#9
Пользователь офлайн   Rock & Roll 

  • ДИПЛОМИРОВАННЫЙ ИНЖЕНЕР
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Ахаха LOL на форуме есть урок реги. Нпиши его в пвн и свяжи с этой системой
0

#10
Пользователь офлайн   OneLifeOneDream 

  • Знаток
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
инклюид а_samp??

Сообщение отредактировал OneLifeOneDream: 06 Январь 2012 - 19:39

0

Поделиться темой:


  • (3 Страниц) +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей