Ребят, помогите пожалуйста разобраться с ганг зонами.
Каков порядок действий?
Ввести:
[pwn]#define REOWN_TURF 4 //сколько раз убить противника чтобы отвоевать зону обратно
#define GANGAREA_TAKE 4 //4 - кол-во убийств на данной територии для захвата
#define GANGAREA_WARNINGS 2 //сообщенька предупреждения о захвате[/pwn]
Потом внести эти new для создания ганг-зон
[pwn]new Grove;
new Ballas;[/pwn]
И указать дефайны самих фракций с их id:
[pwn]#define TEAM_GROOVE 12
#define TEAM_BALLAS 13 [/pwn]
Потом в паблике OnGameModeInit() зделать сами зоны с указанием координат:
[pwn]Grove = GangZoneCreate(2220.01, -1950.308, 2634.519, -1437.102); //green [/pwn]
и в паблике OnPlayerSpawn указать цвет территории:
[pwn] GangZoneShowForPlayer(playerid, Groove, 0x00800096);[/pwn]
И последним действием указать в паблике OnPlayerDeath взятие и возврат территорий:
[pwn]//============= Возврат взятых территорий ============================================
//----------------------------(This is propably the longest way to make this work)
//==============================================================================
if(gTeam[killerid] == TEAM_GROOVE) {
taketurfbackcount[killerid]++;
if(taketurfbackcount[killerid] == REOWN_TURF) {
GangZoneStopFlashForAll(Grove);
GangZoneHideForAll(Grove);
GangZoneShowForAll(Grove, GetPlayerColor(killerid) );
taketurfbackcount[killerid]=0;
}
}
//=============== [ Взятие территорий ] ====================================
//==============================================================================
if((gTeam[playerid] == TEAM_GROVE) && (gTeam[killerid] != TEAM_GROVE) && (killerid != INVALID_PLAYER_ID)) {
gangkillcount[playerid]++;
if(gangkillcount[playerid] == GANGAREA_WARNINGS) {
SendClientMessageToAll(COLOR_RED," Сообщения гангзоны: Грувовцы начали атаковать!");
GangZoneFlashForAll(Grove,GetPlayerColor(killerid) );
}
if(gangkillcount[playerid] == GANGAREA_TAKE) {
new KillerName[30], str[256];
GetPlayerName(killerid, KillerName, 30);
format(str, 256, " Сообщение гангзоны: %s завоевал территорию грувовцов", KillerName);
SendClientMessageToAll(GetPlayerColor(killerid), str);
GangZoneStopFlashForAll(Grove);
GangZoneHideForAll(Grove);
GangZoneShowForAll(Grove, GetPlayerColor(killerid) );
gangkillcount[playerid]=0;
}
}[/pwn] Я все верно сделал? Прост я впервые делаю мод...
Добавлено (25.02.2010, 10:32)
---------------------------------------------
В общем из того что я понаписал, получаются ошибки...их я исправил, остался варнинг или 2, looze integration, но вот вся эта штука не работает...Терры не перезахватываются