[X-POL]BUDU_KRATOK[TL] | Дата: Понедельник, 10.09.2007, 17:57 | Сообщение # 1 |
![[X-POL]BUDU_KRATOK[TL]](/avatar/69/458990.jpg) Лидер Клана
Группа: Верховный Главнокомандующий
Сообщений: 307
Статус: Offline
| Итак, я решил написать что-то типа FAQа по скриптостроительству. Для начала надо выбрать, что Вы хотите - DM (DeadMatch) RPG или ещё что-нибудь. Самому писать скрипт с нуля не имеет смысла, можно перевести и дополнить уже существующие скрипты. Возьмём DM Mod. Просмотреть его можно в папке gamemods файл lvdm Это СТАНДАРТНЫЙ мод, находится в папке gamemodes. Допустим, мы хотим, чтобы можно было запирать машины, т.к. в этой версии мода этого делать нельзя. Пока нельзя =) В разделе OnePlayerCommand после всех комманд (в моем случае это команда и описание /givecash пишем: Code if (IsPlayerConnected(giveplayerid)) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); playermoney = GetPlayerMoney(playerid); if (moneys > 0 && playermoney >= moneys) { GivePlayerMoney(playerid, (0 - moneys)); GivePlayerMoney(giveplayerid, moneys); format(string, sizeof(string), "_=Вы передали %s(player: %d), $%d.", giveplayer,giveplayerid, moneys); SendClientMessage(playerid, COLOR_YELLOW, string); format(string, sizeof(string), "_=Вы передали $%d from %s(player: %d).", moneys, sendername, playerid); SendClientMessage(giveplayerid, COLOR_YELLOW, string); printf("%s(playerid:%d) передал(а) %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid); } else { SendClientMessage(playerid, COLOR_YELLOW, "_=Проблема с передачей"); } } else { format(string, sizeof(string), "%d - неактивный игрок", giveplayerid); SendClientMessage(playerid, COLOR_YELLOW, string); } return 1; } if (strcmp(cmdtext, "/lock", true)==0) { if(IsPlayerInAnyVehicle(playerid)) { new State=GetPlayerState(playerid); if(State!=PLAYER_STATE_DRIVER) { SendClientMessage(playerid,0xFFFF00AA,","-=Вы можете только отпирать двери как водитель=-"); return 1; } new i; for(i=0;i<MAX_PLAYERS;i++) { if(i != playerid) { SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1); } } SendClientMessage(playerid, 0xFFFF00AA, ""-=Машина закрыта!=-"); new Float:pX, Float:pY, Float:pZ; GetPlayerPos(playerid,pX,pY,pZ); PlayerPlaySound(playerid,1056,pX,pY,pZ); } else { SendClientMessage(playerid, 0xFFFF00AA, "-=Вы не в машине!=-"); } return 1; }
if (strcmp(cmdtext, "/unlock", true)==0) { if(IsPlayerInAnyVehicle(playerid)) { new State=GetPlayerState(playerid); if(State!=PLAYER_STATE_DRIVER) { SendClientMessage(playerid,0xFFFF00AA,"-=Вы можете только отпирать двери как водитель=-"); return 1; } new i; for(i=0;i<MAX_PLAYERS;i++) { SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0); } SendClientMessage(playerid, 0xFFFF00AA, "-=Машина открыта!=-"); new Float:pX, Float:pY, Float:pZ; GetPlayerPos(playerid,pX,pY,pZ); PlayerPlaySound(playerid,1057,pX,pY,pZ); } else { SendClientMessage(playerid, 0xFFFF00AA, "-=Вы не в машине!=-"); } return 1; } Как видете команду /givecash я перевел на русский. GTA:SA Server не понимает русского и поэтому надо вставлять перед началом фразы любой символ. У меня это "-=". В случае с Code format(string, sizeof(string), "%d - неактивный игрок", giveplayerid); Пробел ставить не нужно, т.к. уже есть символ - %d - это айди игрока. Спрашивайте, отвечу! Команды в англ. версии брал с сайьа www.sa-mp.com на Форуме. Добавлено (10.09.2007, 17:57) --------------------------------------------- В коде ошибки с отступами, так что если кому надо код - обращайтесь в асю!
С уважением Глава Внешней Разведки Секретной Полиции (ГВРСП) "Кристаллическая решетка на следующий год, когда было лунное затмение и сгорел древний храм Афины в Афинах (при эфоре Питии и афинском архонте Каллии), развивает неопределенный интеграл, не говоря уже о том, что рок-н-ролл мертв. Хорус изменяем." www.yandex.ru - Генератор рефератов
Сообщение отредактировал [X-POL]BUDU_KRATOK[TL] - Понедельник, 10.09.2007, 17:59 |
|
| |