Перейти к содержанию
Авторизация  
Rici

Система поднятие/выкидывание оружие

Рекомендуемые сообщения

Rici

Всем привет пользователи GSG хочу вам показать систему Система поднятие/выкидывание оружие давайте начнем.

Ко всем define

#define MAX_GUNS 500

Ко всем enum

enum DGUN_INFO 
{
dID, // ID 
Float:dPos[3], // Позиция 
dWeapon, // Оружие 
dAmmo, // Патроны 
dVirtualWorld, // Виртуальный мир 
dInterior, // Интерьер 
Text3D:dLabel // 3D текст 
}; 
new Dgun[MAX_GUNS][DGUN_INFO];

Ко всем глобальным переменным:

new GunObjects[47] = 
{ 
0, 331, 333, 334, 335, 336, 337, 338, 339, 341, 321, 322, 323, 324, 325, 326, 
342, 343, 344, 0, 0, 0, 346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, 
357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 368, 371 
};

В конец мода:

stock B_RemovePlayerWeapon(playerid, b_weapon) 
{ 
new b_weaponammo[13][2]; 
for(new s; s != 13; s++) GetPlayerWeaponData(playerid, s, b_weaponammo[s][0], b_weaponammo[s][1]); 
ResetPlayerWeapons(playerid); 
for(new g; g != 13; g++) 
{ 
if(b_weaponammo[g][0] == b_weapon || b_weaponammo[g][1] <= 0) continue; 
GivePlayerWeapon(playerid, b_weaponammo[g][0], b_weaponammo[g][1]); 
break; 
} 
return true; 
}

Команды:

CMD:drop(playerid, params[]) 
{ 
if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, 0xAFAFAFAA, "[!] Вы находитесь в транспорте."); 
if(GetPlayerWeapon(playerid) <= 0 && GetPlayerAmmo(playerid) <= 0) return SendClientMessage(playerid, 0xAFAFAFAA, "[!] Вы не имеете при себе оружие."); 
for(new g; g != MAX_GUNS; g++) 
{ 
if(g > MAX_GUNS) return SendClientMessage(playerid, 0xAFAFAFAA, "[!] Вы не можете выбросить оружие. Превышен максимальный лимит.");
B_RemovePlayerWeapon(playerid, GetPlayerWeapon(playerid)); 
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); 
GetPlayerPos(playerid, Dgun[g][dPos][0], Dgun[g][dPos][1], Dgun[g][dPos][2]); 
Dgun[g][dWeapon] = GetPlayerWeapon(playerid); 
Dgun[g][dAmmo] = GetPlayerAmmo(playerid); 
Dgun[g][dVirtualWorld] = GetPlayerVirtualWorld(playerid); 
Dgun[g][dInterior] = GetPlayerInterior(playerid); 
Dgun[g][dID] = CreateDynamicObject(GunObjects[Dgun[g][dWeapon]], Dgun[g][dPos][0], Dgun[g][dPos][1], Dgun[g][dPos][2]-1, 93.7, 120.0, 120.0, Dgun[g][dVirtualWorld], Dgun[g][dInterior], -1, 300.0); 
GetWeaponName(Dgun[g][dWeapon], m_string, sizeof(m_string));
format(f_string, sizeof(f_string), "Оружие %s и %d патронов.\n{00A86B}Введите: /take", m_string, Dgun[g][dAmmo]); 
Dgun[g][dLabel] = CreateDynamic3DTextLabel(f_string, 0xFFFF00AA, Dgun[g][dPos][0], Dgun[g][dPos][1], Dgun[g][dPos][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Dgun[g][dVirtualWorld], Dgun[g][dInterior], -1, 100.0);
format(f_string, sizeof(f_string), "Вы выбросили оружие %s и %d патронов.", m_string, Dgun[g][dAmmo]); 
SendClientMessage(playerid, 0xFFA500AA, f_string);
format(f_string, sizeof(f_string), "Выбросил оружие %s и %d патронов", m_string, Dgun[g][dAmmo]); 
SetPlayerChatBubble(playerid, f_string, 0xFF9900AA, 5.0, 3000); 
break; 
} 
return true; 
}
CMD:take(playerid, params[]) 
{ 
if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, 0xAFAFAFAA, "[!] Вы находитесь в транспорте."); 
for(new g; g != MAX_GUNS; g++) 
{ 
if(!IsPlayerInRangeOfPoint(playerid, 1.0, Dgun[g][dPos][0], Dgun[g][dPos][1], Dgun[g][dPos][2])) continue; 
if(g > MAX_GUNS) return SendClientMessage(playerid, 0xAFAFAFAA, "[!] Вы не можете подобрать оружие. Превышен максимальный лимит."); 
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); 
DestroyDynamicObject(Dgun[g][dID]); 
DestroyDynamic3DTextLabel(Dgun[g][dLabel]); 
GivePlayerWeapon(playerid, Dgun[g][dWeapon], Dgun[g][dAmmo]); 
GetWeaponName(Dgun[g][dWeapon], m_string, sizeof(m_string));
format(f_string, sizeof(f_string), "Вы подобрали оружие %s и %d патронов.", m_string, Dgun[g][dAmmo]); 
SendClientMessage(playerid, 0xFFA500AA, f_string);
format(f_string, sizeof(f_string), "Подобрал оружие %s и %d патронов", m_string, Dgun[g][dAmmo]); 
SetPlayerChatBubble(playerid, f_string, 0xFF9900AA, 5.0, 3000); 
Dgun[g][dID] = -1; 
Dgun[g][dPos][0] = 0.0; 
Dgun[g][dPos][1] = 0.0; 
Dgun[g][dPos][2] = 0.0; 
Dgun[g][dWeapon] = -1; 
Dgun[g][dAmmo] = -1; 
Dgun[g][dVirtualWorld] = -1; 
Dgun[g][dInterior] = -1; 
break; 
} 
return true; 
}

[textred]Командный процесс - ZCMD. Так что, при необходимости подгоняйте под свой мод.[/textred] 

Автор-Неизвестен

  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
peter

помогите с этой ошибкой 

D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20118) : error 017: undefined symbol "m_string"
D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20118) : error 017: undefined symbol "m_string"
D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20118) : error 029: invalid expression, assumed zero
D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20118) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.



вот строка
GetWeaponName(Dgun[g][dWeapon], m_string, sizeof(m_string));

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BaseMussel29

@peter,тут DC_CMD а у вас ZC_CMD - надо кое,что вам исправить

Изменено пользователем BaseMussel29

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Predator

@peter,

new m_string[56];
Изменено пользователем Predator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

@Predator, С чего бы выделять именно 56?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
peter

Ясно то есть это полностью команду переписывать да 

 

кто не буть может из вас скинуть на такой основе ZC_CMD то есть скинуть код команды на не так уж знаю эту технологию ребята помогите пожалуйста.

Изменено пользователем peter

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

ZCMD: COMMAND:

DC_CMD: CMD:

 

Вот и все.

Дело вообще в переменной, а не в используемом командном процессоре.

Изменено пользователем Веб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
peter

И что делать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

new m_string[56];

 

new m_string[128];

Изменено пользователем Веб
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
peter

Теперь ошибка в этой строке

format(f_string, sizeof(f_string), "I?o?ea %s e %d iao?iiia.\n{00A86B}Aaaaeoa: /take", m_string, Dgun[g][dAmmo]);
D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20120) : error 017: undefined symbol "f_string"
D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20120) : error 017: undefined symbol "f_string"
D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20120) : error 029: invalid expression, assumed zero
D:\????????? ?? ??? ?????\gamemodes\sunrp.pwn(20120) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vsergeenko

@peter, включаем мозг и додумываем, а не ждем пока кто нибудь предоставит вам готовый код в одну строку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemLOL12

,Понимаешь человек Pawno не знает. Просто ему в сервера(PAWNO) лезть не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

pawn - язык

pawno - программа

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemLOL12

,С кем не бывает перепутал. Но это почти одно и тоже. 1 буквой ошибся. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
peter

Конечно вы та всегда умничаете потому что знаете а я не знаю Форум для чего?  чтоб вот это писать как вы(С кем не бывает перепутал. Но это почти одно и тоже. 1 буквой ошибся) Или на пример так (включаем мозг и додумываем, а не ждем пока кто нибудь предоставит вам готовый код в одну строку) Просто наглые человек за помощью пришёл  а не вот это читать почему вы такие? Понимаете обидно что вы такие люди.  Знаете как делать ну желание другим помогать нет.

Изменено пользователем peter

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vsergeenko

@peter, читать то, что ты пишешь - УНРИЛ, СЕРЬЕЗНО. Поменять букву очень сложно?

new f_string[128];

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.