 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Неработает команда
| |
| _Rage_ | Дата: Суббота, 12.04.2008, 02:29 | Сообщение # 1 |
|
Новенький
Группа:
Пользователи
Сообщений: 61
Награды: 1
Репутация: 9
Замечания: 0%
Статус: 
| Вообщем это команда должна давать оружие выбранному игроку, если выбираешь себя, то можно любое оружие и любое кол-во патрон, но если другого, то дает только в том случае если: 1. Оружие запрещенное(ID указаны там где меняется переменная slot), тогда если конечное количество патрон не будет превышать 499. 2. Если не запрещенное, это типо m4, mp5 то сколько угодно. А если проще, то чтобы админ не мог сделать игроку больше 500 патрон оружия которого в Godfather нету. Надеюсь поняли, но она не работает почемуто, может где-то returnы нужно поставить, прошу поправить её, или хотябы объяснить в чем дело, с меня +. Code
if(strcmp(cmd, "/givegun", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /givegun [playerid/PartOfName] [weaponid(eg. 46 = Parachute)] [ammo]"); return 1; } new playa; new gun; new ammo; new slot; new playerammo; new playergun; new banammo = 500; playa = ReturnUser(tmp); tmp = strtok(cmdtext, idx); gun = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /givegun [playerid/PartOfName] [weaponid] [ammo]"); SendClientMessage(playerid, COLOR_GRAD4, "3(Club) 4(knife) 5(bat) 6(Shovel) 7(Cue) 8(Katana) 10-13(Dildo) 14(Flowers) 16(Grenades) 18(Molotovs) 22(Pistol) 23(SPistol)"); SendClientMessage(playerid, COLOR_GRAD3, "24(Eagle) 25(shotgun) 29(MP5) 30(AK47) 31(M4) 33(Rifle) 34(Sniper) 37(Flamethrower) 41(spray) 42(exting) 43(Camera) 46(Parachute)"); return 1; } if(gun < 0||gun > 50) { SendClientMessage(playerid, COLOR_GRAD1, " такого оружия нету!"); return 1; } tmp = strtok(cmdtext, idx); ammo = strval(tmp); if(ammo <1||ammo > 9999||ammo == 500) { SendClientMessage(playerid, COLOR_GRAD1, " Кол-во патронов может быть от 1 до 9999 шт и не равно 500 !"); return 1; } if((gun >= 0) && (gun <= 1)) { slot = 0; return 1; } if((gun >= 2) && (gun <= 9)) { slot = 1; return 1; } if((gun >= 10) && (gun <= 15)) { slot = 10; return 1; } if((gun >= 16) && (gun <= 19)) { slot = 8; return 1; } if(gun == 22) { slot = 2; return 1; } if((gun >= 26) && (gun <= 27)) { slot = 3; return 1; } if(gun == 28) { slot = 4; return 1; } if(gun == 32) { slot = 4; return 1; } if((gun >= 33) && (gun <= 34)) { slot = 6; return 1; } if((gun >= 35) && (gun <= 38)) { slot = 7; return 1; } if(gun == 39) { slot = 8; return 1; } if(gun == 40) { slot = 12; return 1; } if((gun >= 42) && (gun <= 43)) { slot = 9; return 1; } if((gun >= 44) && (gun <= 46)) { slot = 11; return 1; } GetPlayerWeaponData(playa, slot, playergun, playerammo); if (PlayerInfo[playerid][pAdmin] >= 4) { if(IsPlayerConnected(playa)) { if(playa != INVALID_PLAYER_ID) { if(playa != playerid) { if(gun == 23||gun == 24||gun == 25||gun == 29||gun == 30||gun == 31||gun == 41) { GivePlayerWeapon(playa, gun, ammo); } else if((slot >= 0) && (slot <= 12)) //else if(gun >0||gun <23||gun >25||gun <29||gun >31||gun <41||gun >41||gun <51) { if(playerammo + ammo >= banammo) { SendClientMessage(playerid, COLOR_GRAD1, " Игрок не может иметь больше чем 499 патрон запрещенного оружия !"); } else { GivePlayerWeapon(playa, gun, ammo); } } } else { GivePlayerWeapon(playa, gun, ammo); } } else { SendClientMessage(playerid, COLOR_GRAD1, " Такого игрока не существует !"); } } } else { SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете использовать эту команду!"); } } return 1; }
Лучше конечно pwn посмотреть.
|
| |
|
|
| slayer | Дата: Суббота, 12.04.2008, 11:48 | Сообщение # 2 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус: 
| Короче попробуй вот этот код. Code if(strcmp(cmd, "/givegun", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { //SendClientMessage(playerid, COLOR_GRAD2, " ИСПОЛЬЗОВАНИЕ: /givegun [playerid/часть ника] [weaponid(eg. 46 = Parachute)] [ammo]"); //SendClientMessage(playerid, COLOR_RED, " ВНИМАНИЕ: Invalid WeaponID's will crash the server"); return 1; } new playa; new gun; new ammo; if(IsStringAName(tmp)) { playa = GetPlayerID(tmp); } else { playa = strval(tmp); } tmp = strtok(cmdtext, idx); gun = strval(tmp); tmp = strtok(cmdtext, idx); ammo = strval(tmp); GetPlayerName(playa, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); if ((IsPlayerAdmin(playerid)) || PlayerInfo[playerid][pAdmin] >= 1337) { GivePlayerWeapon(playa, gun, ammo); printf("AdmCmd: %s gave %s Weapon %d",sendername, giveplayer, gun);
} else { //SendClientMessage(playerid, COLOR_GRAD1, " у вас недостаточно прав на использование этой команды!"); } return 1; Вставлять вроде бы в public OnPlayerCommandText Пишешь /givegun ID игрока IDоружия Патроны. Вот пример /givegun 3 31 200
Сообщение отредактировал slayer - Суббота, 12.04.2008, 12:04 |
| |
|
|
| RAX | Дата: Суббота, 12.04.2008, 14:03 | Сообщение # 3 |
|
Новенький
Группа:
Продвинутые
Сообщений: 24
Награды: 1
Репутация: 2
Замечания: 0%
Статус: 
| ему нето надо кажись
Сообщение отредактировал RAX - Суббота, 12.04.2008, 14:04 |
| |
|
|
| _Rage_ | Дата: Воскресенье, 13.04.2008, 06:50 | Сообщение # 4 |
|
Новенький
Группа:
Пользователи
Сообщений: 61
Награды: 1
Репутация: 9
Замечания: 0%
Статус: 
| slayer, команда у меня есть, но я хочу еще модернизировать, как я описал выше в первом посте, я модернизировал, а неработает она..Компилится без ошибок. Добавлено (12.04.2008, 19:34) --------------------------------------------- Народ исправьте плз, там немного надо то, код правильный. Скорее всего ретурны нужны, я не умею с ними обращатся  Добавлено (13.04.2008, 06:50) --------------------------------------------- UP, ну посмотрите а, там немного же )
|
| |
|
|
| Stels | Дата: Воскресенье, 13.04.2008, 07:00 | Сообщение # 5 |
|
Группа:
I'm V.I.P.
Сообщений: 3167
Награды: 32
Город: Каменск-Уральский
Репутация: 828
Замечания: 0%
Статус: 
| _Rage_, я твоё сообщение перечитал раз на 5...только понял,что это требования,а не ошибки А зачем по 500 запрещённого? В запрещённом:гранаты,самонаводка(гранатомёт),миниган.
 Полезные ссылки: GTA:SA спецсборка для SA-MP / GTA:SA-MP ver. 0.3a / GTA:SA-MP ver. 0.2x / Руссификатор геймтекста в GTA:SA(рекомендуется) / Классная игрушка!(Рекомендую!) / Пак русских шрифтов.
|
| |
|
|
| MIR | Дата: Воскресенье, 13.04.2008, 08:46 | Сообщение # 6 |
|
Новенький
Группа:
Пользователи
Сообщений: 4
Награды: 1
Репутация: 1
Замечания: 0%
Статус: 
| Мда....вдумайтесь чё пишите
|
| |
|
|
| _Rage_ | Дата: Воскресенье, 13.04.2008, 19:34 | Сообщение # 7 |
|
Новенький
Группа:
Пользователи
Сообщений: 61
Награды: 1
Репутация: 9
Замечания: 0%
Статус: 
| [Mi8]Stels, хоть откликнулись и то хорошо, никто непоймет наверно что требуется. хотя достаточно было посмотреть pwn файл..и прочитать первый пост. Пойду куда нибуть еще обращусь..
|
| |
|
|
| OKStyle™ | Дата: Среда, 16.04.2008, 15:25 | Сообщение # 8 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| Должно работать: Code if(strcmp(cmd, "/givegun", true) == 0) { tmp = strtok(cmdtext, idx); if(IsPlayerConnected(playerid)) { if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, " Синтаксис: /givegun [id] [weaponid (пример: 46 = Паращют)] [ammo]"); } new playa; new gun; new ammo; new slot; new playerammo; new playergun; new banammo = 500; playa = ReturnUser(tmp); tmp = strtok(cmdtext, idx); gun = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /givegun [playerid/PartOfName] [weaponid] [ammo]"); SendClientMessage(playerid, COLOR_GRAD4, "3(Club) 4(knife) 5(bat) 6(Shovel) 7(Cue) 8(Katana) 10-13(Dildo) 14(Flowers) 16(Grenades) 18(Molotovs) 22(Pistol) 23(SPistol)"); SendClientMessage(playerid, COLOR_GRAD3, "24(Eagle) 25(shotgun) 29(MP5) 30(AK47) 31(M4) 33(Rifle) 34(Sniper) 37(Flamethrower) 41(spray) 42(exting) 43(Camera) 46(Parachute)"); return 1; } if(gun < 0||gun > 50) return SendClientMessage(playerid, COLOR_GRAD1, " такого оружия нет!"); ammo = strval(tmp); if(ammo <1||ammo > 9999||ammo == 500) return SendClientMessage(playerid, COLOR_GRAD1, " Кол-во патронов может быть от 1 до 9999 шт и не равно 500!"); if((gun >= 0) && (gun <= 1)) { slot = 0; return 1; } if((gun >= 2) && (gun <= 9)) { slot = 1; return 1; } if((gun >= 10) && (gun <= 15)) { slot = 10; return 1; } if((gun >= 16) && (gun <= 19)) { slot = 8; return 1; } if(gun == 22) { slot = 2; return 1; } if((gun >= 26) && (gun <= 27)) { slot = 3; return 1; } if(gun == 28) { slot = 4; return 1; } if(gun == 32) { slot = 4; return 1; } if((gun >= 33) && (gun <= 34)) { slot = 6; return 1; } if((gun >= 35) && (gun <= 38)) { slot = 7; return 1; } if(gun == 39) { slot = 8; return 1; } if(gun == 40) { slot = 12; return 1; } if((gun >= 42) && (gun <= 43)) { slot = 9; return 1; } if((gun >= 44) && (gun <= 46)) { slot = 11; return 1; } GetPlayerWeaponData(playa, slot, playergun, playerammo); if (PlayerInfo[playerid][pAdmin] >= 4) { if(IsPlayerConnected(playa)) { if(playa != INVALID_PLAYER_ID) { if(playa != playerid) { if(gun == 23||gun == 24||gun == 25||gun == 29||gun == 30||gun == 31||gun == 41) return GivePlayerWeapon(playa, gun, ammo); else if((slot >= 0) && (slot <= 12)) //else if(gun >0||gun <23||gun >25||gun <29||gun >31||gun <41||gun >41||gun <51) { if(playerammo + ammo >= banammo) return SendClientMessage(playerid, COLOR_GRAD1, " Игрок не может иметь больше чем 499 патрон запрещенного оружия!"); else return GivePlayerWeapon(playa, gun, ammo); } } else return SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете дать оружие себе!"); } else return SendClientMessage(playerid, COLOR_GRAD1, " Такого игрока не существует!"); } else return SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете использовать эту команду!"); } return 1; }
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
|
| |
|
|
|
 |
|
 | |
| |
|