PDA

Просмотр полной версии : [Вопрос] По захвату территорий



Kenny_Dalglish
02.05.2014, 19:58
Бобрый вечер, всем. И опять проблема.
Вот если сделать так:


if(captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0])
{
killcapt[captplayer[killerid]] ++;
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}

То может и +6 к ТД капту плюсануть и 8 и т.д
Пытался сделать так:


if(captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0])
{
killcapt[captplayer[killerid]] += 1;
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}

Так вообще не считает. Ну вот обращаюсь за помошью

DeimoS
02.05.2014, 20:09
Так а что вообще нужно то сделать и что есть сейчас?

Kenny_Dalglish
02.05.2014, 20:11
Так а что вообще нужно то сделать и что есть сейчас?

Все есть, просто баг говорю если 1 вариант то там может +8 киллов на ТД выбить а это баг :). А во втором случий вообще не работает.

DeimoS
03.05.2014, 07:20
Все есть, просто баг говорю если 1 вариант то там может +8 киллов на ТД выбить а это баг :). А во втором случий вообще не работает.

А что нужно то от нас? Как должна работать система? Мы вашей идеи НЕ знаем

Kenny_Dalglish
03.05.2014, 10:31
А что нужно то от нас? Как должна работать система? Мы вашей идеи НЕ знаем

Должна обычно должна что не понятного капт Advance/Diamond. По киллам на ТД должны UPDATE дак вот может и + 6 киллов на ТД с одного убийство хотя должно + 1 килл...

DeimoS
03.05.2014, 10:50
Ну представьте себе, ни разу не играл на этих ваших Advance/Diamond и в душе не... о том, как устроены там системы капта.
Полный код паблика дайте, где используется система. Если +6 даёт, значит код вызывается 6 раз.

Kenny_Dalglish
03.05.2014, 11:02
Ну представьте себе, ни разу не играл на этих ваших Advance/Diamond и в душе не... о том, как устроены там системы капта.
Полный код паблика дайте, где используется система. Если +6 даёт, значит код вызывается 6 раз.

Полный код, паблика смерти?


public OnPlayerDeath(playerid, killerid, reason)
{
if(captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0]){
killcapt[captplayer[killerid]] += 1;
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}
if(DMOn[killerid][0] == 1 || DMOn[killerid][1] == 1 || dmixed[killerid][1] == 1) { SetPlayerHealth(killerid,100); }
PI[playerid][pAFK] = 0;
PI[playerid][pAFKText] = Text3D:INVALID_3DTEXT_ID;
PI[playerid][pIsAFK] = false;
new sendername[MAX_PLAYER_NAME],string[128],killedby[25];
GetPlayerName(killerid, sendername, sizeof(sendername));
SetPVarInt(killerid, "ScoreKill", GetPVarInt(killerid, "ScoreKill") + 1);
SetPVarInt(playerid, "ScoreKill", 0);
switch(GetPVarInt(killerid, "ScoreKill"))
{
case 1: { GameTextForPlayer(killerid, "~w~1/25 KILLS", 50, 1); }
case 2: { GameTextForPlayer(killerid, "~w~2/25 KILLS", 50, 1); }
case 3: { GameTextForPlayer(killerid, "~w~3/25 KILLS", 50, 1); }
case 4: { GameTextForPlayer(killerid, "~w~4/25 KILLS", 50, 1); }
case 5: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [5/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~5/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 5 êèëëîâ"); PI[killerid][pKill] += 5; SetPlayerScore(killerid,GetPlayerScore(killerid)+5); SendToAll(COLOR_ARPCVET1338,string); }
case 6: { GameTextForPlayer(killerid, "~w~6/25 KILLS", 50, 1); }
case 7: { GameTextForPlayer(killerid, "~w~7/25 KILLS", 50, 1); }
case 8: { GameTextForPlayer(killerid, "~w~8/25 KILLS", 50, 1); }
case 9: { GameTextForPlayer(killerid, "~w~9/25 KILLS", 50, 1); }
case 10: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [10/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~10/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 10 êèëëîâ"); PI[killerid][pKill] += 10; SetPlayerScore(killerid,GetPlayerScore(killerid)+10); SendToAll(COLOR_ARPCVET1338,string); }
case 11: { GameTextForPlayer(killerid, "~w~11/25 KILLS", 50, 1); }
case 12: { GameTextForPlayer(killerid, "~w~12/25 KILLS", 50, 1); }
case 13: { GameTextForPlayer(killerid, "~w~13/25 KILLS", 50, 1); }
case 14: { GameTextForPlayer(killerid, "~w~14/25 KILLS", 50, 1); }
case 15: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [15/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~15/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 15 êèëëîâ"); PI[killerid][pKill] += 15; SetPlayerScore(killerid,GetPlayerScore(killerid)+15); SendToAll(COLOR_ARPCVET1338,string); }
case 16: { GameTextForPlayer(killerid, "~w~16/25 KILLS", 50, 1); }
case 17: { GameTextForPlayer(killerid, "~w~17/25 KILLS", 50, 1); }
case 18: { GameTextForPlayer(killerid, "~w~18/25 KILLS", 50, 1); }
case 19: { GameTextForPlayer(killerid, "~w~19/25 KILLS", 50, 1); }
case 20: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [20/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~20/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 20 êèëëîâ"); PI[killerid][pKill] += 20; SetPlayerScore(killerid,GetPlayerScore(killerid)+20); SendToAll(COLOR_ARPCVET1338,string); }
case 21: { GameTextForPlayer(killerid, "~w~21/25 KILLS", 50, 1); }
case 22: { GameTextForPlayer(killerid, "~w~22/25 KILLS", 50, 1); }
case 23: { GameTextForPlayer(killerid, "~w~23/25 KILLS", 50, 1); }
case 24: { GameTextForPlayer(killerid, "~w~24/25 KILLS", 50, 1); }
case 25: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [25/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~25/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 25 êèëëîâ"); PI[killerid][pKill] += 25; SetPlayerScore(killerid,GetPlayerScore(killerid)+25); SendToAll(COLOR_ARPCVET1338,string); }
default: { }
}
if(dInfo[Mode] == true && dInfo[Timer][1])
{
if(playerid == dInfo[Enemy][0])
{
SendClientMessageToAll(COLOR_RESTART, "[Âíèìàíèå!]:{1faee9} Äóýëü îêîí÷åíà!");
new stringtext[45+MAX_PLAYER_NAME*2+6];
format(stringtext, sizeof(stringtext), "Èãðîê {1faee9}%s[%d]{97c900} âûéãðàë èãðîêà {1faee9}%s[%d]", pNick(dInfo[Enemy][1]), dInfo[Enemy][1], pNick(dInfo[Enemy][0]), dInfo[Enemy][0]);
SendClientMessageToAll(COLOR_ARPCVET1338, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïðîèãðàëè è ïîòåðÿëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][0], 0xFF0000FF, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïîáåäèëè è ïîëó÷èëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][1], 0xFF0000FF, stringtext);
GivePlayerMoney(dInfo[Enemy][0], -dInfo[Money]);
GivePlayerMoney(dInfo[Enemy][1], dInfo[Money]);
SetPlayerArmour(dInfo[Enemy][0], 0);
SpawnPlayer(dInfo[Enemy][1]);
CleanDuelInfo();
}
else if(playerid == dInfo[Enemy][1])
{
SendClientMessageToAll(COLOR_RESTART, "[Âíèìàíèå!]:{1faee9} Äóýëü îêîí÷åíà!");
new stringtext[45+MAX_PLAYER_NAME*2+6];
format(stringtext, sizeof(stringtext), "Èãðîê {1faee9}%s[%d]{97c900} âûéãðàë èãðîêà {1faee9}%s[%d]", pNick(dInfo[Enemy][0]), dInfo[Enemy][0], pNick(dInfo[Enemy][1]), dInfo[Enemy][1]);
SendClientMessageToAll(COLOR_ARPCVET1338, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïðîèãðàëè è ïîòåðÿëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][1], 0xFF0000FF, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïîáåäèëè è ïîëó÷èëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][0], 0xFF0000FF, stringtext);
GivePlayerMoney(dInfo[Enemy][1], -dInfo[Money]);
GivePlayerMoney(dInfo[Enemy][0], dInfo[Money]);
SetPlayerArmour(dInfo[Enemy][1], 0);
SpawnPlayer(dInfo[Enemy][0]);
CleanDuelInfo();
}
}
ResetPlayerWeapons(playerid);
//==========================================================================
PI[killerid][pKill]++;
PI[playerid][pDeath] += 1;
SendDeathMessage(killerid, playerid, reason);
GetPlayerName(killerid,killedby,25);
TextDrawShowForPlayer(playerid,KILLEDINFORMER[playerid][1]);
format(string, sizeof(string), "Killed by: %s", killedby);
TextDrawShowForPlayer(playerid,KILLEDINFORMER[playerid][0]);
TextDrawShowForPlayer(playerid,KILLEDINFORMER[playerid][1]);
SetTimerEx("KilledInformerExit",2000,false,"i",playerid);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
return 1;
}


new killcapt[6];

DeimoS
03.05.2014, 11:32
Что хранят в себе массивы killcapt и captplayer

Kenny_Dalglish
03.05.2014, 11:38
Киллкапт - сколько игроков убито с одной стороны
Каптплер за какую баНду

Kenny_Dalglish
03.05.2014, 13:01
Что хранят в себе массивы killcapt и captplayer

Ну дак что Вы поможете?

DeimoS
03.05.2014, 13:25
Вот этим кодом начало паблика замените:

public OnPlayerDeath(playerid, killerid, reason)
{
printf("\n\nOnPlayerDeath (%d/%d)",playerid, killerid);
if(killerid != INVALID_PLAYER_ID && captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0])
{
print("-------[ До ]--------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
killcapt[captplayer[killerid]] += 1;
print("------[ После ]------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
print("---------------------");
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}
После проведите капт, убейте кого-нибудь на нём и скиньте логи.
И при каждом самоубийстве у вас будет выход за пределы массива, ибо killerid будет равен невалидному ID игрока, а это 65535 и такой ячейки в ваших массивах, естественно, не существует. Этот недочёт говорит о том, что люди отказываются читать информацию, которую для них оставляют (http://wiki.sa-mp.com/wiki/OnPlayerDeath), при этом кричат, что им отказываются помогать в изучении языка...

Kenny_Dalglish
03.05.2014, 14:24
Вот этим кодом начало паблика замените:

public OnPlayerDeath(playerid, killerid, reason)
{
printf("\n\nOnPlayerDeath (%d/%d)",playerid, killerid);
if(killerid != INVALID_PLAYER_ID && captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0])
{
print("-------[ До ]--------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
killcapt[captplayer[killerid]] += 1;
print("------[ После ]------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
print("---------------------");
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}
После проведите капт, убейте кого-нибудь на нём и скиньте логи.
И при каждом самоубийстве у вас будет выход за пределы массива, ибо killerid будет равен невалидному ID игрока, а это 65535 и такой ячейки в ваших массивах, естественно, не существует. Этот недочёт говорит о том, что люди отказываются читать информацию, которую для них оставляют (http://wiki.sa-mp.com/wiki/OnPlayerDeath), при этом кричат, что им отказываются помогать в изучении языка...


nPlayerDeath (0/1)
[13:20:34] -------[ До ]--------
[13:20:34] captplayer = 4
[13:20:34] killcapt = 0
[13:20:34] ------[ После ]------
[13:20:34] captplayer = 4
[13:20:34] killcapt = 1
[13:20:34] ---------------------
[13:20:34] [kill] Hubba_Bubba killed Kenny_Dalglish Shotgun
[13:21:24]

OnPlayerDeath (1/0)
[13:21:24] -------[ До ]--------
[13:21:24] captplayer = 2
[13:21:24] killcapt = 0
[13:21:24] ------[ После ]------
[13:21:24] captplayer = 2
[13:21:24] killcapt = 1
[13:21:24] ---------------------
[13:21:24] [kill] Kenny_Dalglish killed Hubba_Bubba M4
[13:21:37] [chat] [Kenny_Dalglish]: да стой ты
[13:21:38]

OnPlayerDeath (1/0)
[13:21:38] -------[ До ]--------
[13:21:38] captplayer = 2
[13:21:38] killcapt = 1
[13:21:38] ------[ После ]------
[13:21:38] captplayer = 2
[13:21:38] killcapt = 2
[13:21:38] ---------------------
[13:21:38] [kill] Kenny_Dalglish killed Hubba_Bubba M4
[13:21:47]

OnPlayerDeath (1/0)
[13:21:47] -------[ До ]--------
[13:21:47] captplayer = 2
[13:21:47] killcapt = 2
[13:21:47] ------[ После ]------
[13:21:47] captplayer = 2
[13:21:47] killcapt = 3
[13:21:47] ---------------------
[13:21:47] [kill] Kenny_Dalglish killed Hubba_Bubba Desert Eagle
[13:21:59]

OnPlayerDeath (1/0)
[13:21:59] -------[ До ]--------
[13:21:59] captplayer = 2
[13:21:59] killcapt = 3
[13:21:59] ------[ После ]------
[13:21:59] captplayer = 2
[13:21:59] killcapt = 4
[13:21:59] ---------------------
[13:21:59] [kill] Kenny_Dalglish killed Hubba_Bubba Desert Eagle
[13:22:25] [chat] [Kenny_Dalglish]: Слей
[13:22:29]

OnPlayerDeath (0/1)
[13:22:29] -------[ До ]--------
[13:22:29] captplayer = 4
[13:22:29] killcapt = 1
[13:22:29] ------[ После ]------
[13:22:29] captplayer = 4
[13:22:29] killcapt = 2
[13:22:29] ---------------------
[13:22:29] [kill] Hubba_Bubba killed Kenny_Dalglish Desert Eagle
[13:22:32] [chat] [Kenny_Dalglish]: бля
[13:22:52]

OnPlayerDeath (1/0)
[13:22:52] -------[ До ]--------
[13:22:52] captplayer = 2
[13:22:52] killcapt = 4
[13:22:52] ------[ После ]------
[13:22:52] captplayer = 2
[13:22:52] killcapt = 5
[13:22:52] ---------------------
[13:22:52] [kill] Kenny_Dalglish killed Hubba_Bubba Desert Eagle

Как я понял начинает считать до начало капта.


//===================================================================================



OnPlayerDeath (1/0)
[13:26:40] -------[ До ]--------
[13:26:40] captplayer = 2
[13:26:40] killcapt = 5
[13:26:40] ------[ После ]------
[13:26:40] captplayer = 2
[13:26:40] killcapt = 6
[13:26:40] ---------------------
[13:26:40] [kill] Kenny_Dalglish killed Hubba_Bubba Desert Eagle
[13:26:44] [chat] [Kenny_Dalglish]: ебать


И не чиститься после окончание капта, сколько было это новый капт уже сразу + 1 из 5

DeimoS
03.05.2014, 14:34
Скорее всего вы не приравниваете массив usebandaI к INVALID_PLAYER_ID при старте мода и когда капт не идёт. Потому и срабатывает он, ибо значение равно нулю.
Давайте так

public OnPlayerDeath(playerid, killerid, reason)
{
printf("\n\nOnPlayerDeath (%d/%d)",playerid, killerid);
if(killerid != INVALID_PLAYER_ID && captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0])
{
print("-------[ До ]--------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
printf("usebandaI[0] = %d", usebandaI[0]);
printf("usebandaI[1] = %d", usebandaI[1]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
killcapt[captplayer[killerid]] += 1;
print("------[ После ]------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
print("---------------------");
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}
А вообще стоит сделать проверку на начало капта, дабы код не срабатывал лишний раз

Kenny_Dalglish
03.05.2014, 15:10
Скорее всего вы не приравниваете массив usebandaI к INVALID_PLAYER_ID при старте мода и когда капт не идёт. Потому и срабатывает он, ибо значение равно нулю.
Давайте так

public OnPlayerDeath(playerid, killerid, reason)
{
printf("\n\nOnPlayerDeath (%d/%d)",playerid, killerid);
if(killerid != INVALID_PLAYER_ID && captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0])
{
print("-------[ До ]--------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
printf("usebandaI[0] = %d", usebandaI[0]);
printf("usebandaI[1] = %d", usebandaI[1]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
killcapt[captplayer[killerid]] += 1;
print("------[ После ]------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
print("---------------------");
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}
А вообще стоит сделать проверку на начало капта, дабы код не срабатывал лишний раз
Ну как я и говорю после капта не обнуляться киллы. + к тому число до того как был капт. Как обнулить с прверкой до капта сам разберусь.

- - - Добавлено - - -



OnPlayerDeath (1/0)
[13:57:48] -------[ До ]--------
[13:57:48] captplayer = 3
[13:57:48] killcapt = 0
[13:57:48] usebandaI[0] = 1
[13:57:48] usebandaI[1] = 3
[13:57:48] killcapt = 0
[13:57:48] ------[ После ]------
[13:57:48] captplayer = 3
[13:57:48] killcapt = 1
[13:57:48] ---------------------
[13:57:48] [kill] Kenny_Dalglish killed Lewis_Dalglish Minigun
[13:57:53] [chat] [Lewis_Dalglish]: huise
[13:58:08]

OnPlayerDeath (1/0)
[13:58:08] -------[ До ]--------
[13:58:08] captplayer = 3
[13:58:08] killcapt = 1
[13:58:08] usebandaI[0] = 1
[13:58:08] usebandaI[1] = 3
[13:58:08] killcapt = 1
[13:58:08] ------[ После ]------
[13:58:08] captplayer = 3
[13:58:08] killcapt = 2
[13:58:08] ---------------------
[13:58:08] [kill] Kenny_Dalglish killed Lewis_Dalglish Minigun
[13:58:11] [chat] [Kenny_Dalglish]: ахах
[13:58:12] [chat] [Lewis_Dalglish]: ebat'
[13:58:14] [chat] [Lewis_Dalglish]: ((
[13:58:20] [chat] [Lewis_Dalglish]: pizda
[13:58:28] [chat] [Kenny_Dalglish]: фраги давай
[13:58:30] [chat] [Kenny_Dalglish]: быстрей
[13:58:31]

OnPlayerDeath (0/1)
[13:58:31] -------[ До ]--------
[13:58:31] captplayer = 1
[13:58:31] killcapt = 0
[13:58:31] usebandaI[0] = 1
[13:58:31] usebandaI[1] = 3
[13:58:31] killcapt = 0
[13:58:31] ------[ После ]------
[13:58:31] captplayer = 1
[13:58:31] killcapt = 1
[13:58:31] ---------------------
[13:58:31] [kill] Lewis_Dalglish killed Kenny_Dalglish Desert Eagle
[13:58:45] [chat] [Kenny_Dalglish]: Убивай
[13:59:06] [chat] [Kenny_Dalglish]: Саня
[13:59:14] [chat] [Lewis_Dalglish]: m
[13:59:17] [chat] [Kenny_Dalglish]: Сливай
[13:59:18] [chat] [Kenny_Dalglish]: меня
[13:59:21]

OnPlayerDeath (0/1)
[13:59:21] -------[ До ]--------
[13:59:21] captplayer = 1
[13:59:21] killcapt = 1
[13:59:21] usebandaI[0] = 1
[13:59:21] usebandaI[1] = 3
[13:59:21] killcapt = 1
[13:59:21] ------[ После ]------
[13:59:21] captplayer = 1
[13:59:21] killcapt = 2
[13:59:21] ---------------------
[13:59:21] [kill] Lewis_Dalglish killed Kenny_Dalglish Desert Eagle
[13:59:30]

OnPlayerDeath (0/1)
[13:59:30] -------[ До ]--------
[13:59:30] captplayer = 1
[13:59:30] killcapt = 2
[13:59:30] usebandaI[0] = 1
[13:59:30] usebandaI[1] = 3
[13:59:30] killcapt = 2
[13:59:30] ------[ После ]------
[13:59:30] captplayer = 1
[13:59:30] killcapt = 3
[13:59:30] ---------------------
[13:59:30] [kill] Lewis_Dalglish killed Kenny_Dalglish Desert Eagle
[13:59:47]

OnPlayerDeath (0/65535)
[13:59:47] [death] Kenny_Dalglish died 255
[14:00:49] [chat] [Lewis_Dalglish]: /ban 0 миниган где взял :D
[14:01:12]

OnPlayerDeath (1/0)
[14:01:12] [kill] Kenny_Dalglish killed Lewis_Dalglish Minigun
[14:01:29]

OnPlayerDeath (1/0)
[14:01:29] [kill] Kenny_Dalglish killed Lewis_Dalglish Minigun
[14:03:56]

OnPlayerDeath (1/0)
[14:03:56] -------[ До ]--------
[14:03:56] captplayer = 1
[14:03:56] killcapt = 0
[14:03:56] usebandaI[0] = 4
[14:03:56] usebandaI[1] = 1
[14:03:56] killcapt = 0
[14:03:56] ------[ После ]------
[14:03:56] captplayer = 1
[14:03:56] killcapt = 1
[14:03:56] ---------------------
[14:03:56] [kill] Kenny_Dalglish killed Lewis_Dalglish Minigun
[14:04:12]

OnPlayerDeath (1/0)
[14:04:12] -------[ До ]--------
[14:04:12] captplayer = 1
[14:04:12] killcapt = 1
[14:04:12] usebandaI[0] = 4
[14:04:12] usebandaI[1] = 1
[14:04:12] killcapt = 1
[14:04:12] ------[ После ]------
[14:04:12] captplayer = 1
[14:04:12] killcapt = 2
[14:04:12] ---------------------
[14:04:12] [kill] Kenny_Dalglish killed Lewis_Dalglish Minigun
[14:04:12]

OnPlayerDeath (0/1)
[14:04:12] -------[ До ]--------
[14:04:12] captplayer = 4
[14:04:12] killcapt = 0
[14:04:12] usebandaI[0] = 4
[14:04:12] usebandaI[1] = 1
[14:04:12] killcapt = 0
[14:04:12] ------[ После ]------
[14:04:12] captplayer = 4
[14:04:12] killcapt = 1
[14:04:12] ---------------------
[14:04:12] [kill] Lewis_Dalglish killed Kenny_Dalglish Minigun


Вот, логи 2 каптов.

- - - Добавлено - - -

[13:58:08] usebandaI[0] = 1
[13:58:08] usebandaI[1] = 3 Это банды

DeimoS
03.05.2014, 15:40
Скиньте текущий код со всеми изменениями и поясните как сейчас работает код

Kenny_Dalglish
03.05.2014, 15:41
Скиньте текущий код со всеми изменениями и поясните как сейчас работает код

Дак все тоже.


public OnPlayerDeath(playerid, killerid, reason)
{
printf("\n\nOnPlayerDeath (%d/%d)",playerid, killerid);
if(killerid != INVALID_PLAYER_ID && captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0])
{
print("-------[ Äî ]--------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
for(new i; i < sizeof(usebandaI); i++) printf("usebandaI[%d] = %d", i, usebandaI[i]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
killcapt[captplayer[killerid]] += 1;
print("------[ Ïîñëå ]------");
printf("captplayer = %d",captplayer[killerid]);
printf("killcapt = %d",killcapt[captplayer[killerid]]);
print("---------------------");
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}
if(DMOn[killerid][0] == 1 || DMOn[killerid][1] == 1 || dmixed[killerid][1] == 1) { SetPlayerHealth(killerid,100); }
PI[playerid][pAFK] = 0;
PI[playerid][pAFKText] = Text3D:INVALID_3DTEXT_ID;
PI[playerid][pIsAFK] = false;
new sendername[MAX_PLAYER_NAME],string[128],killedby[25];
GetPlayerName(killerid, sendername, sizeof(sendername));
SetPVarInt(killerid, "ScoreKill", GetPVarInt(killerid, "ScoreKill") + 1);
SetPVarInt(playerid, "ScoreKill", 0);
switch(GetPVarInt(killerid, "ScoreKill"))
{
case 1: { GameTextForPlayer(killerid, "~w~1/25 KILLS", 50, 1); }
case 2: { GameTextForPlayer(killerid, "~w~2/25 KILLS", 50, 1); }
case 3: { GameTextForPlayer(killerid, "~w~3/25 KILLS", 50, 1); }
case 4: { GameTextForPlayer(killerid, "~w~4/25 KILLS", 50, 1); }
case 5: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [5/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~5/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 5 êèëëîâ"); PI[killerid][pKill] += 5; SetPlayerScore(killerid,GetPlayerScore(killerid)+5); SendToAll(COLOR_ARPCVET1338,string); }
case 6: { GameTextForPlayer(killerid, "~w~6/25 KILLS", 50, 1); }
case 7: { GameTextForPlayer(killerid, "~w~7/25 KILLS", 50, 1); }
case 8: { GameTextForPlayer(killerid, "~w~8/25 KILLS", 50, 1); }
case 9: { GameTextForPlayer(killerid, "~w~9/25 KILLS", 50, 1); }
case 10: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [10/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~10/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 10 êèëëîâ"); PI[killerid][pKill] += 10; SetPlayerScore(killerid,GetPlayerScore(killerid)+10); SendToAll(COLOR_ARPCVET1338,string); }
case 11: { GameTextForPlayer(killerid, "~w~11/25 KILLS", 50, 1); }
case 12: { GameTextForPlayer(killerid, "~w~12/25 KILLS", 50, 1); }
case 13: { GameTextForPlayer(killerid, "~w~13/25 KILLS", 50, 1); }
case 14: { GameTextForPlayer(killerid, "~w~14/25 KILLS", 50, 1); }
case 15: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [15/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~15/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 15 êèëëîâ"); PI[killerid][pKill] += 15; SetPlayerScore(killerid,GetPlayerScore(killerid)+15); SendToAll(COLOR_ARPCVET1338,string); }
case 16: { GameTextForPlayer(killerid, "~w~16/25 KILLS", 50, 1); }
case 17: { GameTextForPlayer(killerid, "~w~17/25 KILLS", 50, 1); }
case 18: { GameTextForPlayer(killerid, "~w~18/25 KILLS", 50, 1); }
case 19: { GameTextForPlayer(killerid, "~w~19/25 KILLS", 50, 1); }
case 20: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [20/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~20/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 20 êèëëîâ"); PI[killerid][pKill] += 20; SetPlayerScore(killerid,GetPlayerScore(killerid)+20); SendToAll(COLOR_ARPCVET1338,string); }
case 21: { GameTextForPlayer(killerid, "~w~21/25 KILLS", 50, 1); }
case 22: { GameTextForPlayer(killerid, "~w~22/25 KILLS", 50, 1); }
case 23: { GameTextForPlayer(killerid, "~w~23/25 KILLS", 50, 1); }
case 24: { GameTextForPlayer(killerid, "~w~24/25 KILLS", 50, 1); }
case 25: { format(string, sizeof(string), "Èãðîê {1faee9}%s{ff0000}[%i]{97c900} ñîâåðøèë ñåðèþ óáèéñòâ [25/25]", sendername,killerid); GameTextForPlayer(killerid, "~w~25/25 KILLS", 50, 1); SCM(killerid,COLOR_CHAI,"Âû ñäåëàëè ñåðèþ óáèéñòâ, è çà ýòî ïîëó÷àåòå + 25 êèëëîâ"); PI[killerid][pKill] += 25; SetPlayerScore(killerid,GetPlayerScore(killerid)+25); SendToAll(COLOR_ARPCVET1338,string); }
default: { }
}
if(dInfo[Mode] == true && dInfo[Timer][1])
{
if(playerid == dInfo[Enemy][0])
{
SendClientMessageToAll(COLOR_RESTART, "[Âíèìàíèå!]:{1faee9} Äóýëü îêîí÷åíà!");
new stringtext[45+MAX_PLAYER_NAME*2+6];
format(stringtext, sizeof(stringtext), "Èãðîê {1faee9}%s[%d]{97c900} âûéãðàë èãðîêà {1faee9}%s[%d]", pNick(dInfo[Enemy][1]), dInfo[Enemy][1], pNick(dInfo[Enemy][0]), dInfo[Enemy][0]);
SendClientMessageToAll(COLOR_ARPCVET1338, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïðîèãðàëè è ïîòåðÿëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][0], 0xFF0000FF, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïîáåäèëè è ïîëó÷èëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][1], 0xFF0000FF, stringtext);
GivePlayerMoney(dInfo[Enemy][0], -dInfo[Money]);
GivePlayerMoney(dInfo[Enemy][1], dInfo[Money]);
SetPlayerArmour(dInfo[Enemy][0], 0);
SpawnPlayer(dInfo[Enemy][1]);
CleanDuelInfo();
}
else if(playerid == dInfo[Enemy][1])
{
SendClientMessageToAll(COLOR_RESTART, "[Âíèìàíèå!]:{1faee9} Äóýëü îêîí÷åíà!");
new stringtext[45+MAX_PLAYER_NAME*2+6];
format(stringtext, sizeof(stringtext), "Èãðîê {1faee9}%s[%d]{97c900} âûéãðàë èãðîêà {1faee9}%s[%d]", pNick(dInfo[Enemy][0]), dInfo[Enemy][0], pNick(dInfo[Enemy][1]), dInfo[Enemy][1]);
SendClientMessageToAll(COLOR_ARPCVET1338, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïðîèãðàëè è ïîòåðÿëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][1], 0xFF0000FF, stringtext);
format(stringtext, sizeof(stringtext), "Âû ïîáåäèëè è ïîëó÷èëè %d$", dInfo[Money]);
SendClientMessage(dInfo[Enemy][0], 0xFF0000FF, stringtext);
GivePlayerMoney(dInfo[Enemy][1], -dInfo[Money]);
GivePlayerMoney(dInfo[Enemy][0], dInfo[Money]);
SetPlayerArmour(dInfo[Enemy][1], 0);
SpawnPlayer(dInfo[Enemy][0]);
CleanDuelInfo();
}
}
ResetPlayerWeapons(playerid);
//==========================================================================
PI[killerid][pKill]++;
PI[playerid][pDeath] += 1;
SendDeathMessage(killerid, playerid, reason);
GetPlayerName(killerid,killedby,25);
TextDrawShowForPlayer(playerid,KILLEDINFORMER[playerid][1]);
format(string, sizeof(string), "Killed by: %s", killedby);
TextDrawShowForPlayer(playerid,KILLEDINFORMER[playerid][0]);
TextDrawShowForPlayer(playerid,KILLEDINFORMER[playerid][1]);
SetTimerEx("KilledInformerExit",2000,false,"i",playerid);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
return 1;
}

DeimoS
03.05.2014, 15:47
if(killerid != INVALID_PLAYER_ID && (captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0]))
{
killcapt[captplayer[killerid]] ++;
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}

Таки я до сих пор не понял в чём проблема. После окончания капта не обнуляется значение или что?

Kenny_Dalglish
03.05.2014, 15:49
if(killerid != INVALID_PLAYER_ID && (captplayer[killerid] == usebandaI[0] && captplayer[playerid] == usebandaI[1] || captplayer[killerid] == usebandaI[1] && captplayer[playerid] == usebandaI[0]))
{
killcapt[captplayer[killerid]] ++;
new sgdsgsv[15];
format(sgdsgsv, sizeof(sgdsgsv), "%d", killcapt[captplayer[killerid]]);
if(captplayer[killerid] == usebandaI[0]) TextDrawSetString(ScoreCapt1a, sgdsgsv);
else TextDrawSetString(ScoreCapt2a, sgdsgsv);
}

Таки я до сих пор не понял в чём проблема. После окончания капта не обнуляется значение или что?

Как я понял то да, но сама проблема была в том что Могло + 7 или 8 или 3 килла за одно убийство дать но по логам я понял что не обнуляться после капта

DeimoS
03.05.2014, 16:02
Как я понял то да, но сама проблема была в том что Могло + 7 или 8 или 3 килла за одно убийство дать но по логам я понял что не обнуляться после капта

Ну так нужен код, отвечающий за окончание/старт капта, а не обновление текстдрава

Kenny_Dalglish
03.05.2014, 16:19
if(vremyadokonca){
vremyadokonca --;
new sgdsgsv[15];
Convert(vremyadokonca, sgdsgsv);
TextDrawSetString(CaptTime, sgdsgsv);
if(!vremyadokonca) {
skolkoMyasa[0] = 0;skolkoMyasa[1] = 0;
GangZoneStopFlashForAll(GangZones[kvadratik][idz]);
if(killcapt[usebandaI[0]] > killcapt[usebandaI[1]]) {
new str[100];
format(str, 100, "Банда %s захватила новую территорию у %s",GetGangName(usebandaI[0]), GetGangName(usebandaI[1]));
SendClientMessageToAll(COLOR_REDIK, str);
GangZoneHideForAll(GangZones[kvadratik][idz]);
GangZoneShowForAll(GangZones[kvadratik][idz], GZColor(usebandaI[0]));
for(new i; i < MAX_PLAYERS; i++) {
if(captplayer[i] == usebandaI[0]) {
format(str, 100, "Лучший игрок на капте %s",pNick(i));
SendClientMessageToAll(COLOR_RESTART, str);
break;
}
}
GangZones[kvadratik][frak] = usebandaI[0];
SaveGZ();
}
else if(killcapt[usebandaI[0]] == killcapt[usebandaI[1]])
{
new string[128];
format(string,90,"Попытка %s захватить территорию у %s провалилась",GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
SendClientMessageToAll(COLOR_REDIK,string);
}
else
{
new str[100];
format(str, 100, "Банда %s захватила новую территорию у %s",GetGangName(usebandaI[1]), GetGangName(usebandaI[0]));
SendClientMessageToAll(COLOR_REDIK, str);
GangZoneHideForAll(GangZones[kvadratik][idz]);
GangZoneShowForAll(GangZones[kvadratik][idz], GZColor(usebandaI[1]));
for(new i; i < MAX_PLAYERS; i++)
{
if(captplayer[i] == usebandaI[1])
{
format(str, 100, "Лучший игрок на капте %s",pNick(i));
SendClientMessageToAll(COLOR_REDIK, str);
break;
}
}
GangZones[kvadratik][frak] = usebandaI[1];
SaveGZ();
}
for(new i; i < MAX_PLAYERS; i++) {
if(captplayer[i]) {
captplayer[i] = 0;
killcapt[i] = 0;
TextDrawHideForPlayer(i, BandaCapt1a);
TextDrawHideForPlayer(i, BandaCapt2a);
TextDrawHideForPlayer(i, ScoreCapt1a);
TextDrawHideForPlayer(i, ScoreCapt2a);
TextDrawHideForPlayer(i, CaptTime);
TextDrawHideForPlayer(i, ScoreCapt);
TextDrawHideForPlayer(i, Textdraw4);
SetPlayerColor(i, asas[i][0]);
SpawnPlayer(i);
}
}

}
}


- - - Добавлено - - -


Ну так нужен код, отвечающий за окончание/старт капта, а не обновление текстдрава

Ну дак что?

DeimoS
03.05.2014, 16:45
Хмм, не знаю... Как я понимаю, за нужное нам значение отвечает killcapt и оно обнуляется. Я до сих пор так и не понял до конца суть всей проблемы (то ли выдаётся сразу по несколько убийств, то ли убийства не обнуляются после капта, то ли что-то ещё). Вот некоторые дополнения к вашим циклам

if(vremyadokonca)
{
vremyadokonca --;
new sgdsgsv[15];
Convert(vremyadokonca, sgdsgsv);
TextDrawSetString(CaptTime, sgdsgsv);
if(!vremyadokonca)
{
skolkoMyasa[0] = 0;
skolkoMyasa[1] = 0;
GangZoneStopFlashForAll(GangZones[kvadratik][idz]);
if(killcapt[usebandaI[0]] > killcapt[usebandaI[1]])
{
new str[100];
format(str, 100, "Банда %s захватила новую территорию у %s",GetGangName(usebandaI[0]), GetGangName(usebandaI[1]));
SendClientMessageToAll(COLOR_REDIK, str);
GangZoneHideForAll(GangZones[kvadratik][idz]);
GangZoneShowForAll(GangZones[kvadratik][idz], GZColor(usebandaI[0]));
for(new i; i < MAX_PLAYERS; i++)
{
if(captplayer[i] == usebandaI[0])
{
format(str, 100, "Лучший игрок на капте %s",pNick(i));
SendClientMessageToAll(COLOR_RESTART, str);
break;
}
}
GangZones[kvadratik][frak] = usebandaI[0];
SaveGZ();
}
else if(killcapt[usebandaI[0]] == killcapt[usebandaI[1]])
{
new string[128];
format(string,90,"Попытка %s захватить территорию у %s провалилась",GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
SendClientMessageToAll(COLOR_REDIK,string);
}
else
{
new str[100];
format(str, 100, "Банда %s захватила новую территорию у %s",GetGangName(usebandaI[1]), GetGangName(usebandaI[0]));
SendClientMessageToAll(COLOR_REDIK, str);
GangZoneHideForAll(GangZones[kvadratik][idz]);
GangZoneShowForAll(GangZones[kvadratik][idz], GZColor(usebandaI[1]));
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(captplayer[i] == usebandaI[1])
{
format(str, 100, "Лучший игрок на капте %s",pNick(i));
SendClientMessageToAll(COLOR_REDIK, str);
break;
}
}
GangZones[kvadratik][frak] = usebandaI[1];
SaveGZ();
}
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(captplayer[i])
{
captplayer[i] = 0;
killcapt[i] = 0;
TextDrawHideForPlayer(i, BandaCapt1a);
TextDrawHideForPlayer(i, BandaCapt2a);
TextDrawHideForPlayer(i, ScoreCapt1a);
TextDrawHideForPlayer(i, ScoreCapt2a);
TextDrawHideForPlayer(i, CaptTime);
TextDrawHideForPlayer(i, ScoreCapt);
TextDrawHideForPlayer(i, Textdraw4);
SetPlayerColor(i, asas[i][0]);
SpawnPlayer(i);
}
}
}
}

Kenny_Dalglish
03.05.2014, 16:52
Хмм, не знаю... Как я понимаю, за нужное нам значение отвечает killcapt и оно обнуляется. Я до сих пор так и не понял до конца суть всей проблемы (то ли выдаётся сразу по несколько убийств, то ли убийства не обнуляются после капта, то ли что-то ещё). Вот некоторые дополнения к вашим циклам

if(vremyadokonca)
{
vremyadokonca --;
new sgdsgsv[15];
Convert(vremyadokonca, sgdsgsv);
TextDrawSetString(CaptTime, sgdsgsv);
if(!vremyadokonca)
{
skolkoMyasa[0] = 0;
skolkoMyasa[1] = 0;
GangZoneStopFlashForAll(GangZones[kvadratik][idz]);
if(killcapt[usebandaI[0]] > killcapt[usebandaI[1]])
{
new str[100];
format(str, 100, "Банда %s захватила новую территорию у %s",GetGangName(usebandaI[0]), GetGangName(usebandaI[1]));
SendClientMessageToAll(COLOR_REDIK, str);
GangZoneHideForAll(GangZones[kvadratik][idz]);
GangZoneShowForAll(GangZones[kvadratik][idz], GZColor(usebandaI[0]));
for(new i; i < MAX_PLAYERS; i++)
{
if(captplayer[i] == usebandaI[0])
{
format(str, 100, "Лучший игрок на капте %s",pNick(i));
SendClientMessageToAll(COLOR_RESTART, str);
break;
}
}
GangZones[kvadratik][frak] = usebandaI[0];
SaveGZ();
}
else if(killcapt[usebandaI[0]] == killcapt[usebandaI[1]])
{
new string[128];
format(string,90,"Попытка %s захватить территорию у %s провалилась",GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
SendClientMessageToAll(COLOR_REDIK,string);
}
else
{
new str[100];
format(str, 100, "Банда %s захватила новую территорию у %s",GetGangName(usebandaI[1]), GetGangName(usebandaI[0]));
SendClientMessageToAll(COLOR_REDIK, str);
GangZoneHideForAll(GangZones[kvadratik][idz]);
GangZoneShowForAll(GangZones[kvadratik][idz], GZColor(usebandaI[1]));
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(captplayer[i] == usebandaI[1])
{
format(str, 100, "Лучший игрок на капте %s",pNick(i));
SendClientMessageToAll(COLOR_REDIK, str);
break;
}
}
GangZones[kvadratik][frak] = usebandaI[1];
SaveGZ();
}
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(captplayer[i])
{
captplayer[i] = 0;
killcapt[i] = 0;
TextDrawHideForPlayer(i, BandaCapt1a);
TextDrawHideForPlayer(i, BandaCapt2a);
TextDrawHideForPlayer(i, ScoreCapt1a);
TextDrawHideForPlayer(i, ScoreCapt2a);
TextDrawHideForPlayer(i, CaptTime);
TextDrawHideForPlayer(i, ScoreCapt);
TextDrawHideForPlayer(i, Textdraw4);
SetPlayerColor(i, asas[i][0]);
SpawnPlayer(i);
}
}
}
}
Токо проверку на конект поставили, Дак что не понятно то Начинаеться капт убиваешь человека должно на ТД обновиться на 1, но может и на 3 и 2 и больше 1 я не знаю я тут уже распинаюсь что бы объяснить..

DeimoS
03.05.2014, 16:54
Код, отвечающий за старт капта, покажите

Kenny_Dalglish
03.05.2014, 16:56
if(vremyadostarta) {
vremyadostarta --;
if(!vremyadostarta) {
if(skolkoMyasa[0] < 1 || skolkoMyasa[1] < 1) {
SendClientMessageToAll(COLOR_RESTART, "Капт отменен из-за нехватки игроков!");
for(new i; i < MAX_PLAYERS; i++) {
if(captplayer[i]) {
captplayer[i] = 0;
SpawnPlayer(i);
}
}
}
else {
kvadratik = random(130);
GangZoneFlashForAll(GangZones[kvadratik][idz],COLOR_RED);
vremyadokonca = 120;
for(new i; i < MAX_PLAYERS; i++) {
if(captplayer[i])
{
TextDrawShowForPlayer(i, BandaCapt1a);
TextDrawShowForPlayer(i, BandaCapt2a);
TextDrawShowForPlayer(i, ScoreCapt1a);
TextDrawShowForPlayer(i, ScoreCapt2a);
TextDrawShowForPlayer(i, CaptTime);
TextDrawShowForPlayer(i, ScoreCapt);
TextDrawShowForPlayer(i, Textdraw4);
new BANDAA[128], BANDAB[128], string228[128];
format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
SendClientMessage(i, COLOR_REDIK, string228);
format(BANDAA, sizeof(BANDAA), "%s", GetGangName(usebandaI[0]));
TextDrawSetString(BandaCapt1a, BANDAA);
format(BANDAB, sizeof(BANDAB), "%s", GetGangName(usebandaI[1]));
TextDrawSetString(BandaCapt2a, BANDAB);
TextDrawSetString(ScoreCapt1a, "0");
TextDrawSetString(ScoreCapt2a, "0");
}
}
}
}
}

DeimoS
03.05.2014, 16:59
А теперь код, в котором captplayer присваивается определённое значение

Kenny_Dalglish
03.05.2014, 17:01
А теперь код, в котором captplayer присваивается определённое значение



switch(dialogid)
{
case 22882: {
if(!response) return 1;
if(skolkoMyasa[0] < 1) {
captplayer[playerid] = usebandaI[0];
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
asas[playerid][0] = GetPlayerColor(playerid);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[0]++;
}
else if(skolkoMyasa[1] < 1) {
captplayer[playerid] = usebandaI[1];
asas[playerid][0] = GetPlayerColor(playerid);
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[1]++;
}
else SCM(playerid, 0xFF6347AA, "Еще дольше бы подумал ... Все места заняты!");
return 1;
}

DeimoS
03.05.2014, 17:05
Ход конём

switch(dialogid)
{
case 22882: {
if(!response) return 1;
if(skolkoMyasa[0] < 1) {
captplayer[playerid] = usebandaI[0];
killcapt[playerid] = 0;
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
asas[playerid][0] = GetPlayerColor(playerid);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[0]++;
}
else if(skolkoMyasa[1] < 1) {
captplayer[playerid] = usebandaI[1];
killcapt[playerid] = 0;
asas[playerid][0] = GetPlayerColor(playerid);
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[1]++;
}
else SCM(playerid, 0xFF6347AA, "Еще дольше бы подумал ... Все места заняты!");
return 1;
}

Kenny_Dalglish
03.05.2014, 17:13
Ход конём

switch(dialogid)
{
case 22882: {
if(!response) return 1;
if(skolkoMyasa[0] < 1) {
captplayer[playerid] = usebandaI[0];
killcapt[playerid] = 0;
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
asas[playerid][0] = GetPlayerColor(playerid);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[0]++;
}
else if(skolkoMyasa[1] < 1) {
captplayer[playerid] = usebandaI[1];
killcapt[playerid] = 0;
asas[playerid][0] = GetPlayerColor(playerid);
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[1]++;
}
else SCM(playerid, 0xFF6347AA, "Еще дольше бы подумал ... Все места заняты!");
return 1;
}

Не вижу изменения по коду. А все вижу.

- - - Добавлено - - -

Раз уж зашло то проверка в SetPlayerSpawn не срабатывает почему то:


if(captplayer[playerid]) teleportcapt(playerid);

DeimoS
03.05.2014, 17:36
Так, давайте сначала разберёмся с текстдравами, а потом уже всё остальное

Kenny_Dalglish
03.05.2014, 17:39
Ход конём

switch(dialogid)
{
case 22882: {
if(!response) return 1;
if(skolkoMyasa[0] < 1) {
captplayer[playerid] = usebandaI[0];
killcapt[playerid] = 0;
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
asas[playerid][0] = GetPlayerColor(playerid);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[0]++;
}
else if(skolkoMyasa[1] < 1) {
captplayer[playerid] = usebandaI[1];
killcapt[playerid] = 0;
asas[playerid][0] = GetPlayerColor(playerid);
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
GetGangColor(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[1]++;
}
else SCM(playerid, 0xFF6347AA, "Еще дольше бы подумал ... Все места заняты!");
return 1;
}



OnPlayerDeath (0/65535)
[16:28:57] [death] Kenny_Dalglish died 54
[16:29:18] [chat] [Kenny_Dalglish]: healme
[16:31:54] Incoming connection: 178.91.211.193:2651
[16:31:55] [join] Maximiliano_Veronio has joined the server (1:178.91.211.193)
[16:32:04] Время загрузки скрипта: 0 милисекунд.
[16:33:32]

OnPlayerDeath (0/1)
[16:33:32] -------[ До ]--------
[16:33:32] captplayer = 2
[16:33:32] killcapt = 0
[16:33:32] usebandaI[0] = 2
[16:33:32] usebandaI[1] = 3
[16:33:32] killcapt = 0
[16:33:32] ------[ После ]------
[16:33:32] captplayer = 2
[16:33:32] killcapt = 1
[16:33:32] ---------------------
[16:33:32] [kill] Maximiliano_Veronio killed Kenny_Dalglish Desert Eagle
[16:34:02]

OnPlayerDeath (0/1)
[16:34:02] -------[ До ]--------
[16:34:02] captplayer = 2
[16:34:02] killcapt = 1
[16:34:02] usebandaI[0] = 2
[16:34:02] usebandaI[1] = 3
[16:34:02] killcapt = 1
[16:34:02] ------[ После ]------
[16:34:02] captplayer = 2
[16:34:02] killcapt = 2
[16:34:02] ---------------------
[16:34:02] [kill] Maximiliano_Veronio killed Kenny_Dalglish Desert Eagle
[16:34:28]

OnPlayerDeath (0/1)
[16:34:28] -------[ До ]--------
[16:34:28] captplayer = 2
[16:34:28] killcapt = 2
[16:34:28] usebandaI[0] = 2
[16:34:28] usebandaI[1] = 3
[16:34:28] killcapt = 2
[16:34:28] ------[ После ]------
[16:34:28] captplayer = 2
[16:34:28] killcapt = 3
[16:34:28] ---------------------
[16:34:28] [kill] Maximiliano_Veronio killed Kenny_Dalglish Shotgun
[16:34:49]

OnPlayerDeath (1/0)
[16:34:49] -------[ До ]--------
[16:34:49] captplayer = 3
[16:34:49] killcapt = 0
[16:34:49] usebandaI[0] = 2
[16:34:49] usebandaI[1] = 3
[16:34:49] killcapt = 0
[16:34:49] ------[ После ]------
[16:34:49] captplayer = 3
[16:34:49] killcapt = 1
[16:34:49] ---------------------
[16:34:49] [kill] Kenny_Dalglish killed Maximiliano_Veronio M4
[16:34:51] [chat] [Maximiliano_Veronio]: suka
[16:35:09]

OnPlayerDeath (0/1)
[16:35:09] -------[ До ]--------
[16:35:09] captplayer = 2
[16:35:09] killcapt = 3
[16:35:09] usebandaI[0] = 2
[16:35:09] usebandaI[1] = 3
[16:35:09] killcapt = 3
[16:35:09] ------[ После ]------
[16:35:09] captplayer = 2
[16:35:09] killcapt = 4
[16:35:09] ---------------------
[16:35:09] [kill] Maximiliano_Veronio killed Kenny_Dalglish Shotgun
[16:35:53] [chat] [Maximiliano_Veronio]: adm
[16:35:54] [chat] [Maximiliano_Veronio]: day
[16:36:11]

OnPlayerDeath (1/65535)
[16:36:11] [death] Maximiliano_Veronio died 54
[16:36:40]

OnPlayerDeath (0/1)
[16:36:40] -------[ До ]--------
[16:36:40] captplayer = 2
[16:36:40] killcapt = 4
[16:36:40] usebandaI[0] = 2
[16:36:40] usebandaI[1] = 1
[16:36:40] killcapt = 4
[16:36:40] ------[ После ]------
[16:36:40] captplayer = 2
[16:36:40] killcapt = 5
[16:36:40] ---------------------
[16:36:40] [kill] Maximiliano_Veronio killed Kenny_Dalglish M4

Смотри что происходит с ноля только в самом первом логи идет а тут 2 капта сыграно. Похоже легчее показать чем на словах объяснить я не поэт что бы тут расписывать каждое слово.

DeimoS
03.05.2014, 17:57
Ну так всё чётко по коду же работает, как я вижу. Каждая смерть игрока с ID 1 давала игроку с ID 0 одно очко в killcapt. Если я что-то не так понял, поставьте после

format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
printf
То бишь

format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
printf("%s",string228);

Kenny_Dalglish
03.05.2014, 18:01
Ну так всё чётко по коду же работает, как я вижу. Каждая смерть игрока с ID 1 давала игроку с ID 0 одно очко в killcapt. Если я что-то не так понял, поставьте после

format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
printf
То бишь

format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
printf("%s",string228);
Там 2 капта, вот в чем дело 2 капт пошел и уже 6 очков было...

DeimoS
03.05.2014, 18:05
Так у вас вообще не индивидуальные текстдравы же... Как эта система вообще работает?

TextDrawSetString(ScoreCapt1a, sgdsgsv);
Переносите всё на индивидуальные текстдравы, если я правильно уловил цель вашего кода

Kenny_Dalglish
03.05.2014, 18:12
Так у вас вообще не индивидуальные текстдравы же... Как эта система вообще работает?

TextDrawSetString(ScoreCapt1a, sgdsgsv);
Переносите всё на индивидуальные текстдравы, если я правильно уловил цель вашего кода

Он показываеться всему серверу, зачем его в OnPlayerConnect?


[17:05:03] The Ballas начали захват территорий против Grove Street
[17:05:03] The Ballas начали захват территорий против Grove Street
[17:05:04] [chat] [Maximiliano_Veronio]: ZHMOT
[17:05:20]

OnPlayerDeath (1/0)
[17:05:20] -------[ До ]--------
[17:05:20] captplayer = 1
[17:05:20] killcapt = 0
[17:05:20] usebandaI[0] = 2
[17:05:20] usebandaI[1] = 1
[17:05:20] killcapt = 0
[17:05:20] ------[ После ]------
[17:05:20] captplayer = 1
[17:05:20] killcapt = 1
[17:05:20] ---------------------
[17:05:20] [kill] Kenny_Dalglish killed Maximiliano_Veronio Shotgun
[17:05:53]

OnPlayerDeath (0/1)
[17:05:53] -------[ До ]--------
[17:05:53] captplayer = 2
[17:05:53] killcapt = 0
[17:05:53] usebandaI[0] = 2
[17:05:53] usebandaI[1] = 1
[17:05:53] killcapt = 0
[17:05:53] ------[ После ]------
[17:05:53] captplayer = 2
[17:05:53] killcapt = 1
[17:05:53] ---------------------
[17:05:53] [kill] Maximiliano_Veronio killed Kenny_Dalglish Shotgun
[17:05:55] [chat] [Maximiliano_Veronio]: ;'C
[17:06:36]

OnPlayerDeath (0/1)
[17:06:36] -------[ До ]--------
[17:06:36] captplayer = 2
[17:06:36] killcapt = 1
[17:06:36] usebandaI[0] = 2
[17:06:36] usebandaI[1] = 1
[17:06:36] killcapt = 1
[17:06:36] ------[ После ]------
[17:06:36] captplayer = 2
[17:06:36] killcapt = 2
[17:06:36] ---------------------
[17:06:36] [kill] Maximiliano_Veronio killed Kenny_Dalglish Shotgun
[17:06:52]

OnPlayerDeath (1/0)
[17:06:52] -------[ До ]--------
[17:06:52] captplayer = 1
[17:06:52] killcapt = 1
[17:06:52] usebandaI[0] = 2
[17:06:52] usebandaI[1] = 1
[17:06:52] killcapt = 1
[17:06:52] ------[ После ]------
[17:06:52] captplayer = 1
[17:06:52] killcapt = 2
[17:06:52] ---------------------
[17:06:52] [kill] Kenny_Dalglish killed Maximiliano_Veronio Desert Eagle
[17:06:58] [chat] [Kenny_Dalglish]: Слевай
[17:07:00] [chat] [Kenny_Dalglish]: фатосм
[17:07:00]

OnPlayerDeath (0/1)
[17:07:00] -------[ До ]--------
[17:07:00] captplayer = 2
[17:07:00] killcapt = 2
[17:07:00] usebandaI[0] = 2
[17:07:00] usebandaI[1] = 1
[17:07:00] killcapt = 2
[17:07:00] ------[ После ]------
[17:07:00] captplayer = 2
[17:07:00] killcapt = 3
[17:07:00] ---------------------
[17:07:00] [kill] Maximiliano_Veronio killed Kenny_Dalglish Desert Eagle
[17:07:05]

OnPlayerDeath (0/65535)
[17:07:05] [death] Kenny_Dalglish died 255
[17:07:42] [chat] [Maximiliano_Veronio]: 30 АЗЫ
[17:07:44] [chat] [Maximiliano_Veronio]: 30 FPS
[17:07:49] [chat] [Kenny_Dalglish]: 60/
[17:07:55] [chat] [Maximiliano_Veronio]: ЗАЕБАЛ В АФК НЕ ЗАХОДИ
[17:07:58] [chat] [Maximiliano_Veronio]: ЗАЕБАЛ В АФК НЕ ЗАХОДИ
[17:08:11] Varios Los Aztecas начали захват территорий против The Ballas
[17:08:11] Varios Los Aztecas начали захват территорий против The Ballas
[17:08:35]

OnPlayerDeath (0/1)
[17:08:35] -------[ До ]--------
[17:08:35] captplayer = 4
[17:08:35] killcapt = 0
[17:08:35] usebandaI[0] = 4
[17:08:35] usebandaI[1] = 2
[17:08:35] killcapt = 0
[17:08:35] ------[ После ]------
[17:08:35] captplayer = 4
[17:08:35] killcapt = 1
[17:08:35] ---------------------
[17:08:35] [kill] Maximiliano_Veronio killed Kenny_Dalglish Desert Eagle
[17:08:58] [chat] [Kenny_Dalglish]: слейся
[17:09:03]

OnPlayerDeath (0/1)
[17:09:03] -------[ До ]--------
[17:09:03] captplayer = 4
[17:09:03] killcapt = 1
[17:09:03] usebandaI[0] = 4
[17:09:03] usebandaI[1] = 2
[17:09:03] killcapt = 1
[17:09:03] ------[ После ]------
[17:09:03] captplayer = 4
[17:09:03] killcapt = 2
[17:09:03] ---------------------
[17:09:03] [kill] Maximiliano_Veronio killed Kenny_Dalglish Shotgun
[17:09:05] [chat] [Kenny_Dalglish]: ТУПОЙ
[17:09:06] [chat] [Maximiliano_Veronio]: ЩЗЫ
[17:09:06] [chat] [Kenny_Dalglish]: ЕБЛАН
[17:09:06] [chat] [Maximiliano_Veronio]: ОПС
[17:09:17]

OnPlayerDeath (1/0)
[17:09:17] -------[ До ]--------
[17:09:17] captplayer = 2
[17:09:17] killcapt = 3
[17:09:17] usebandaI[0] = 4
[17:09:17] usebandaI[1] = 2
[17:09:17] killcapt = 3
[17:09:17] ------[ После ]------
[17:09:17] captplayer = 2
[17:09:17] killcapt = 4
[17:09:17] ---------------------
[17:09:17] [kill] Kenny_Dalglish killed Maximiliano_Veronio Desert Eagle
[17:09:21] [chat] [Kenny_Dalglish]: dj


- - - Добавлено - - -


Так у вас вообще не индивидуальные текстдравы же... Как эта система вообще работает?

TextDrawSetString(ScoreCapt1a, sgdsgsv);
Переносите всё на индивидуальные текстдравы, если я правильно уловил цель вашего кода
И ещё причем тут ТД? Если сам капт так считает хоть ТД буду не будет так будет... Что +6 может за 1 убийство может и + 10 и т.д Может я лучшее покажу мне уже надоелось забивать Вам голову, что и как наглядней будет лучшее.

DeimoS
03.05.2014, 18:16
Он показываеться всему серверу, зачем его в OnPlayerConnect?
Эмм, показываются индивидуальные данные игроков всему серверу?
Понял. Вот:

if(vremyadostarta)
{
vremyadostarta --;
if(!vremyadostarta)
{
if(skolkoMyasa[0] < 1 || skolkoMyasa[1] < 1)
{
SendClientMessageToAll(COLOR_RESTART, "Капт отменен из-за нехватки игроков!");
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || !captplayer[i]) continue;
captplayer[i] = 0;
SpawnPlayer(i);
}
}
else
{
kvadratik = random(130);
GangZoneFlashForAll(GangZones[kvadratik][idz],COLOR_RED);
vremyadokonca = 120;
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || !captplayer[i]) continue;
TextDrawShowForPlayer(i, BandaCapt1a);
TextDrawShowForPlayer(i, BandaCapt2a);
TextDrawShowForPlayer(i, ScoreCapt1a);
TextDrawShowForPlayer(i, ScoreCapt2a);
TextDrawShowForPlayer(i, CaptTime);
TextDrawShowForPlayer(i, ScoreCapt);
TextDrawShowForPlayer(i, Textdraw4);
new BANDAA[128], BANDAB[128], string228[128];
format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
SendClientMessage(i, COLOR_REDIK, string228);

}
format(BANDAA, sizeof(BANDAA), "%s", GetGangName(usebandaI[0]));
TextDrawSetString(BandaCapt1a, BANDAA);
format(BANDAB, sizeof(BANDAB), "%s", GetGangName(usebandaI[1]));
TextDrawSetString(BandaCapt2a, BANDAB);
TextDrawSetString(ScoreCapt1a, "0");
TextDrawSetString(ScoreCapt2a, "0");
killcapt[usebandaI[0]] = 0;
killcapt[usebandaI[1]] = 0;
}
}

Kenny_Dalglish
03.05.2014, 18:37
Эмм, показываются индивидуальные данные игроков всему серверу?
Понял. Вот:

if(vremyadostarta)
{
vremyadostarta --;
if(!vremyadostarta)
{
if(skolkoMyasa[0] < 1 || skolkoMyasa[1] < 1)
{
SendClientMessageToAll(COLOR_RESTART, "Капт отменен из-за нехватки игроков!");
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || !captplayer[i]) continue;
captplayer[i] = 0;
SpawnPlayer(i);
}
}
else
{
kvadratik = random(130);
GangZoneFlashForAll(GangZones[kvadratik][idz],COLOR_RED);
vremyadokonca = 120;
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || !captplayer[i]) continue;
TextDrawShowForPlayer(i, BandaCapt1a);
TextDrawShowForPlayer(i, BandaCapt2a);
TextDrawShowForPlayer(i, ScoreCapt1a);
TextDrawShowForPlayer(i, ScoreCapt2a);
TextDrawShowForPlayer(i, CaptTime);
TextDrawShowForPlayer(i, ScoreCapt);
TextDrawShowForPlayer(i, Textdraw4);
new BANDAA[128], BANDAB[128], string228[128];
format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(usebandaI[0]),GetGangName(usebandaI[1]));
SendClientMessage(i, COLOR_REDIK, string228);

}
format(BANDAA, sizeof(BANDAA), "%s", GetGangName(usebandaI[0]));
TextDrawSetString(BandaCapt1a, BANDAA);
format(BANDAB, sizeof(BANDAB), "%s", GetGangName(usebandaI[1]));
TextDrawSetString(BandaCapt2a, BANDAB);
TextDrawSetString(ScoreCapt1a, "0");
TextDrawSetString(ScoreCapt2a, "0");
killcapt[usebandaI[0]] = 0;
killcapt[usebandaI[1]] = 0;
}
}

Мда, код весь избогнали. Флудит теперь что капт отменен и т.д + не лесенкой код. Зачем его было изменять? Я кидал тот и надо было + не закрытая скобка

- - - Добавлено - - -

Ладно суть не в этом


killcapt[usebandaI[0]] = 0;
killcapt[usebandaI[1]] = 0;
поставил в начало капта себе в старый код щяс проверю.

DeimoS
03.05.2014, 18:40
Эмм, все изменения кода только в том, что я перенёс открытие скобки на отдельную строку, дабы читаемость повысить для себя, добавил проверку на онлайн в циклы для игроков и убрал из цикла изменение общего текстдрава, который достаточно один раз заменить. Больше я ничего там не трогал -_- Так что не знаю что у вас там флудит. Можете сравнить старую версию с новой. Строки до сообщения о окончании капта вообще никак не изменены.
А скобка не закрыта только потому, что скопировался так код. Но это разве проблема, скобку закрыть в оттабулированном коде?
Не оттабулирован код? Читаем (http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%81%D1%82%D1%83%D0%BF_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)) =\

Kenny_Dalglish
03.05.2014, 18:50
Эмм, все изменения кода только в том, что я перенёс открытие скобки на отдельную строку, дабы читаемость повысить для себя, добавил проверку на онлайн в циклы для игроков и убрал из цикла изменение общего текстдрава, который достаточно один раз заменить. Больше я ничего там не трогал -_- Так что не знаю что у вас там флудит. Можете сравнить старую версию с новой. Строки до сообщения о окончании капта вообще никак не изменены.
А скобка не закрыта только потому, что скопировался так код. Но это разве проблема, скобку закрыть в оттабулированном коде?
Не оттабулирован код? Читаем (http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%81%D1%82%D1%83%D0%BF_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)) =\

Во вроде 3 капта прогнал все нормально, теперь со спавном помогите.

- - - Добавлено - - -



stock SetPlayerSpawn(playerid)
{
PlayAudioStreamForPlayer(playerid, "http://webcast.emg.fm:55655/europaplus128.mp3",2737.8091,-1760.2689,44.1474, 50.0,true);
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
if(PI[playerid][pAdmin] > 0) { Attach3DTextLabelToPlayer(AdminText3D, playerid, 0.0, 0.0, 2.0); }
SetPlayerSkin(playerid, Clothes[playerid]);
GetPlayerColor(playerid);
SetPlayerArmour(playerid, 0);
if(captplayer[playerid]) teleportcapt(playerid);
if(GetPVarInt(playerid, "ChoosingSkin"))
{
SetPlayerPos(playerid,2737.8091,-1760.2689,44.1474);
SetPlayerCameraPos(playerid,2740.924072, -1760.747924, 44.912471);
SetPlayerCameraLookAt(playerid, 2736.227539, -1759.936767, 43.401321);
SetPlayerVirtualWorld(playerid,playerid);
SetPlayerPos(playerid, 2737.8091,-1760.2689,44.1474);
return false;
}
if(PlayerInfo[playerid][pJailed])
{
switch(random(4))
{
case 0: SetPlayerPos(playerid, 321.0424,-224.3120,1002.8199);
case 1: SetPlayerPos(playerid, 320.5412,-218.8435,1002.8199);
case 2: SetPlayerPos(playerid, 309.9608,-223.5183,1002.8199);
case 3: SetPlayerPos(playerid, 309.5537,-218.3506,1002.8199);
}
TogglePlayerControllable(playerid, false);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
return 1;
}
else if(DMOn[playerid][0] == 1)
{
switch(random(12))
{
case 0: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781);
case 1: SetPlayerPos(playerid, 1764.1123,-2964.5984,230.5547);
case 2: SetPlayerPos(playerid, 1763.6570,-2942.5935,230.5547);
case 3: SetPlayerPos(playerid, 1830.8191,-2920.5156,224.7656);
case 4: SetPlayerPos(playerid, 1839.0192,-2969.3340,224.7656);
case 5: SetPlayerPos(playerid, 1822.2808,-2967.9675,232.8097);
case 6: SetPlayerPos(playerid, 1810.0104,-2967.8076,236.8097);
case 7: SetPlayerPos(playerid, 1734.9963,-2927.9241,224.7656);
case 8: SetPlayerPos(playerid, 1753.1602,-2901.4622,240.8781);
case 9: SetPlayerPos(playerid, 1698.3420,-2995.1155,224.7656);
case 10: SetPlayerPos(playerid, 1694.1543,-2973.1743,224.7656);
case 11: SetPlayerPos(playerid, 1711.1438,-2971.8328,233.0097);
case 12: SetPlayerPos(playerid, 1720.8956,-2972.9124,237.0097);
}
TogglePlayerControllable(playerid, false);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid,24,500), GivePlayerWeapon(playerid,31,500), GivePlayerWeapon(playerid,25,100);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
return 1;
}
else if(DMOn[playerid][1] == 1)
{
switch(random(5))
{
case 0: SetPlayerPos(playerid, 865.9217,-2360.8162,4.4036);
case 1: SetPlayerPos(playerid, 872.9335,-2309.1931,4.4036);
case 2: SetPlayerPos(playerid, 809.0793,-2308.3127,4.4036);
case 3: SetPlayerPos(playerid, 803.5790,-2344.8149,4.4036);
case 4: SetPlayerPos(playerid, 809.9431,-2388.2822,4.4036);
case 5: SetPlayerPos(playerid, 832.7509,-2385.2581,5.8954);
}
TogglePlayerControllable(playerid, false);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid,24,500), GivePlayerWeapon(playerid,31,500), GivePlayerWeapon(playerid,25,100);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
return 1;
}
else if(DeagleOn[playerid][0] == 1)
{
switch(random(11))
{
case 0: SetPlayerPos(playerid, 1134.3580,1124.2010,11.0000);
case 1: SetPlayerPos(playerid, 1146.1061,1108.9337,11.0023);
case 2: SetPlayerPos(playerid, 1155.8187,1085.4772,11.0000);
case 3: SetPlayerPos(playerid, 1158.1478,1065.3383,11.0000);
case 4: SetPlayerPos(playerid, 1146.7689,1035.8568,11.0000);
case 5: SetPlayerPos(playerid, 1114.8153,1012.7634,11.0000);
case 6: SetPlayerPos(playerid, 1080.5173,1008.8859,11.0000);
case 7: SetPlayerPos(playerid, 1034.0001,1038.7462,11.0000);
case 8: SetPlayerPos(playerid, 1039.4264,1116.5830,11.0000);
case 9: SetPlayerPos(playerid, 1053.5928,1135.1018,11.0000);
case 10: SetPlayerPos(playerid, 1087.7458,1076.8021,10.8382);
}
TogglePlayerControllable(playerid, false);
GivePlayerWeapon(playerid,24,500);
SetPlayerHealth(playerid,47);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
return 1;
}
else if(PlayerVariable[playerid][pSpectating])
{
x = GetPVarFloat(playerid,"oldx");
y = GetPVarFloat(playerid,"oldy");
z = GetPVarFloat(playerid,"oldz");
SetPlayerPos(playerid,x,y,z);
SetPlayerInterior(playerid,GetPVarInt(playerid,"oldint"));
SetPlayerVirtualWorld(playerid,GetPVarInt(playerid,"oldworld"));
PlayerVariable[playerid][pSpectating] = false;
PlayerVariable[playerid][pSpecOn] = 0;
return 1;
}
else if(ParcurOn[playerid][0] == 1)
{
TogglePlayerControllable(playerid, 0);
SetPlayerPos(playerid, 1498.4718,-1277.0830,113.7795);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
return 1;
}
if(GetPVarInt(playerid,"agm") == 1)
{
SetPlayerHealth(playerid, 0x7F800000);
}
else if(dmixed[playerid][0] == 1)
{
switch(random(15))
{
case 0: SetPlayerPos(playerid, 2294.1643,549.3293,4.8645);
case 1: SetPlayerPos(playerid, 2293.8699,530.4071,1.7944);
case 2: SetPlayerPos(playerid, 2319.4355,560.3575,7.7802);
case 3: SetPlayerPos(playerid, 2358.7114,549.1556,4.8645);
case 4: SetPlayerPos(playerid, 2360.6929,532.0748,1.7969);
case 5: SetPlayerPos(playerid, 2386.5920,579.9214,7.7813);
case 6: SetPlayerPos(playerid, 2394.1780,581.6389,10.8222);
case 7: SetPlayerPos(playerid, 2366.6177,601.5027,10.8225);
case 8: SetPlayerPos(playerid, 2312.8030,601.7551,10.8225);
case 9: SetPlayerPos(playerid, 2289.0715,615.2233,10.8203);
case 10: SetPlayerPos(playerid, 2272.1328,592.0123,20.9294);
case 11: SetPlayerPos(playerid, 2272.1328,592.0123,20.9294);
case 12: SetPlayerPos(playerid, 2239.0786,601.6517,9.9522);
case 13: SetPlayerPos(playerid, 2240.6836,573.1535,10.8222);
case 14: SetPlayerPos(playerid, 2240.8457,553.1723, 7.7802);
}
TogglePlayerControllable(playerid, false);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
return 1;
}
else
{
SetPlayerPos(playerid, 2737.8091,-1760.2689,44.1474);
SetPlayerHealth(playerid, 100);
SetPlayerSkin(playerid, Clothes[playerid]);
TogglePlayerControllable(playerid, false);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
return 1;
}
return true;
}

DeimoS
03.05.2014, 19:03
Со спавном то что не так?

Kenny_Dalglish
03.05.2014, 19:19
Со спавном то что не так?

Сначало то спавнит, при старте все норм а после убийства не спавнит там где надо..

DeimoS
03.05.2014, 19:57
Сначало то спавнит, при старте все норм а после убийства не спавнит там где надо..

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

if(captplayer[playerid]) return teleportcapt(playerid);
Но повторюсь, весь код не просматривал и, возможно, что-то станет работать не так.

Kenny_Dalglish
04.05.2014, 02:39
Потому что нет возврата при спавне на капте и срабатывает другой код. Весь код паблика не просматривал, но нужно, примерно, следующее:

if(captplayer[playerid]) return teleportcapt(playerid);
Но повторюсь, весь код не просматривал и, возможно, что-то станет работать не так.

Ещё сколько раз запускал капт не разу из рандома не выбирала Los Santos Vagos всего 5 банд.


usebandaI[0] = 1+random(4);
usebandaI[1] = 1+random(4);
if(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(4);
if(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(4);
if(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(4);
if(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(4);

DeimoS
04.05.2014, 06:51
Вот так будет лучше

usebandaI[0] = 1+random(5);
usebandaI[1] = 1+random(5);
while(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(5);
Цифра, указанная в функции, не включается в возможные варианты. Не знаю почему так вдруг стало, ведь в wiki описывается совсем иной принцип работы, но логирование показывает, что это так
А по поводу вариативности - таков уж псевдорандом в SA-MP. Можете попробовать написать свою функцию, основанную на функции random, которая вариативность увеличит.

Kenny_Dalglish
04.05.2014, 13:10
Вот так будет лучше

usebandaI[0] = 1+random(5);
usebandaI[1] = 1+random(5);
while(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(5);
Цифра, указанная в функции, не включается в возможные варианты. Не знаю почему так вдруг стало, ведь в wiki описывается совсем иной принцип работы, но логирование показывает, что это так
А по поводу вариативности - таков уж псевдорандом в SA-MP. Можете попробовать написать свою функцию, основанную на функции random, которая вариативность увеличит.
Ещё вопрос:



kvadratik = random(130);
GangZoneFlashForAll(GangZones[kvadratik][idz],COLOR_RED);

Вот так выбирает, рандомоно из 130 зон как сделать что бы 1банда (Которая нападает) vs 2банда (Которая отбивает) Что бы которая нападает выделяло зону которую отбивает 2 банда

Kenny_Dalglish
04.05.2014, 16:49
Вот так будет лучше

usebandaI[0] = 1+random(5);
usebandaI[1] = 1+random(5);
while(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(5);
Цифра, указанная в функции, не включается в возможные варианты. Не знаю почему так вдруг стало, ведь в wiki описывается совсем иной принцип работы, но логирование показывает, что это так
А по поводу вариативности - таков уж псевдорандом в SA-MP. Можете попробовать написать свою функцию, основанную на функции random, которая вариативность увеличит.
Влад дак что? с другой проблемой.

DeimoS
04.05.2014, 16:54
Ещё вопрос:



kvadratik = random(130);
GangZoneFlashForAll(GangZones[kvadratik][idz],COLOR_RED);

Вот так выбирает, рандомоно из 130 зон как сделать что бы 1банда (Которая нападает) vs 2банда (Которая отбивает) Что бы которая нападает выделяло зону которую отбивает 2 банда
Эмм, я не понимат... :(

Kenny_Dalglish
04.05.2014, 17:17
Эмм, я не понимат... :(

Ну смотри по карте, банда которая нападает мигает цвет на которую они напали как сделать что бы имеено на ихнею территорию напали.

DeimoS
04.05.2014, 18:55
Ну смотри по карте, банда которая нападает мигает цвет на которую они напали как сделать что бы имеено на ихнею территорию напали.

Эмм, я не понимат... :( [2]
Какая банда? Какая напали? О чём вы вообще? И где запятые?

Kenny_Dalglish
04.05.2014, 20:13
Эмм, я не понимат... :( [2]
Какая банда? Какая напали? О чём вы вообще? И где запятые?
КР4



kvadratik = random(130);
GangZoneFlashForAll(GangZones[kvadratik][idz],COLOR_RED);

тут выбирает из 130 пофиг какую банду по карте а надо только на которую нападает что бы мигало красным...

DeimoS
04.05.2014, 20:51
КР4



kvadratik = random(130);
GangZoneFlashForAll(GangZones[kvadratik][idz],COLOR_RED);

тут выбирает из 130 пофиг какую банду по карте а надо только на которую нападает что бы мигало красным...

Ну так установите вместо kvadratik в GangZones[kvadratik][idz], переменную, которая хранит ID банды, на которую напали.

Kenny_Dalglish
04.05.2014, 21:43
Ну так установите вместо kvadratik в GangZones[kvadratik][idz], переменную, которая хранит ID банды, на которую напали.

Дак вот, рандомом надо из территорий на кого нападают выбирало рандомно. А квадратик хранит рандом. // usebandaI[1] - хранит на кого нападаем.

DeimoS
04.05.2014, 21:57
Что вам надо? Я не пойму... Надо чтоб начинала мигать гангзона, на которую напали? Или рандомно выбранная? Вы как-то невнятно объясняете...

Kenny_Dalglish
04.05.2014, 23:29
Что вам надо? Я не пойму... Надо чтоб начинала мигать гангзона, на которую напали? Или рандомно выбранная? Вы как-то невнятно объясняете...

Рандомно выбраная из территорий который есть на кого напали....

DeimoS
05.05.2014, 10:01
Если тут есть те, кто работал с гангзонами и понимают что хотел автор темы - расшифруйте его желание, пожалуйста. Ибо я не понимат

iEmilio
05.05.2014, 15:09
Как я понял закаптили там Баллас респу Грува Грува 4 человека и Балласа 5 идет терра таймер там 10 минут и терра кончается если на терре по окончанию 10 минут остается только грув терра Грува если Баллас то Баллоса если там от теры прошло не 10 минут а например 5 а Баллас за это время убил всех 4 грувов Баллас заберает терру.
З.ы понял только так.

DeimoS
05.05.2014, 15:22
Так причём тут рандом, о котором идёт речь?

Kenny_Dalglish
05.05.2014, 16:18
Как я понял закаптили там Баллас респу Грува Грува 4 человека и Балласа 5 идет терра таймер там 10 минут и терра кончается если на терре по окончанию 10 минут остается только грув терра Грува если Баллас то Баллоса если там от теры прошло не 10 минут а например 5 а Баллас за это время убил всех 4 грувов Баллас заберает терру.
З.ы понял только так.

Facepalm.

- - - Добавлено - - -


Так причём тут рандом, о котором идёт речь?

Смотри вот тебе 2 банды ты понимаешь что по карте рандомон каптить? Дак вот она может закаптить из 130 терреторий даже не ту территорий 2 банды на которую напали...


Влад кинул заявку в скайпе авторизуй лучшее там объясню

Ну я уже не знаю я что не по русски пишу что ли?... ВОТ У тебя 130 территорий, территория принадлежит Grove St и они нападают на The Ballas тоесть из рандома может выбраться территория которая не принадлежит The Ballas может выбраться и Varios Los Aztecas и т.д

Kenny_Dalglish
05.05.2014, 18:02
Так причём тут рандом, о котором идёт речь?

Дак что поможете?

DeimoS
05.05.2014, 18:06
Смотри вот тебе 2 банды ты понимаешь что по карте рандомон каптить? Дак вот она может закаптить из 130 терреторий даже не ту территорий 2 банды на которую напали...

Влад кинул заявку в скайпе авторизуй лучшее там объясню

Ну я уже не знаю я что не по русски пишу что ли?... ВОТ У тебя 130 территорий, территория принадлежит Grove St и они нападают на The Ballas тоесть из рандома может выбраться территория которая не принадлежит The Ballas может выбраться и Varios Los Aztecas и т.д
Я никогда не любил все эти говноRLS с каптами и прочей псевдо-RP чушью, поэтому угадать ваши желания, написанные без всяких знаков препинания, мне трудно. Теперь понял.
Ну так какие проблемы? Запускаем цикл и смотрим на какой территории находится банда (соответствующие переменные с координатами имеются). Получаем ID гангзоны (путём сверки координат с помощью функции PlayerToKvadrat) и проверяем чья эта зона. Ну а далее проверка на то, не нападают ли они на свою зону + находятся ли они вообще на чьей-то зоне. Ну и потом, когда определили владельца, отправляем им сообщение, мол совершено нападение + делаем различные нужные проверки, типа проверки на онлайн. Всё.

И тему поднимать можно раз в 24 часа =\ Перепрочтите правила

Kenny_Dalglish
05.05.2014, 22:29
Я никогда не любил все эти говноRLS с каптами и прочей псевдо-RP чушью, поэтому угадать ваши желания, написанные без всяких знаков препинания, мне трудно. Теперь понял.
Ну так какие проблемы? Запускаем цикл и смотрим на какой территории находится банда (соответствующие переменные с координатами имеются). Получаем ID гангзоны (путём сверки координат с помощью функции PlayerToKvadrat) и проверяем чья эта зона. Ну а далее проверка на то, не нападают ли они на свою зону + находятся ли они вообще на чьей-то зоне. Ну и потом, когда определили владельца, отправляем им сообщение, мол совершено нападение + делаем различные нужные проверки, типа проверки на онлайн. Всё.

И тему поднимать можно раз в 24 часа =\ Перепрочтите правила

Я не такой профи :\. PlayerToKvadrat то ладно.... Кр4 почти не чего не понял.

A N D R E Y
05.05.2014, 22:38
Я не такой профи :\. PlayerToKvadrat то ладно.... Кр4 почти не чего не понял.
Тык а зачем тогда спрашиваете раз не понимаете? все-равно готовый код вы не получите...

Kenny_Dalglish
05.05.2014, 22:49
Тык а зачем тогда спрашиваете раз не понимаете? все-равно готовый код вы не получите...

http://pro-pawn.ru/showthread.php?6763-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA-%D0%91%D0%94
воу профи "я Вас только и ждал в теме"

underwoker
05.05.2014, 23:37
Что за бред ТС вы пишете?
Во-первых, почему вы требуете помощи? Ваши сообщения "Ну так вы поможете или нет?" - вообще отвергают желание помогать.
Во-вторых, ваш отвратительный тон: "Мда, код весь избогнали" - раз боганят, то делайте сами.
В-третьих, вы и правда ждете готового решения, не вникаясь в то что вам дают. Тысячу раз писали уже об этом. Вы и пишете без запятых, что сам черт ногу сломит и не прочтет вашу писанину. Так еще и требуете помощи.

Ну, а это "воу профи "я Вас только и ждал в теме"" - вообще выход за грани адекватного общения.

Вывод, разговаривайте адекватнее, и люди потянутся.

Kenny_Dalglish
05.05.2014, 23:40
Что за бред ТС вы пишете?
Во-первых, почему вы требуете помощи? Ваши сообщения "Ну так вы поможете или нет?" - вообще отвергают желание помогать.
Во-вторых, ваш отвратительный тон: "Мда, код весь избогнали" - раз боганят, то делайте сами.
В-третьих, вы и правда ждете готового решения, не вникаясь в то что вам дают.

Ну, а это "воу профи "я Вас только и ждал в теме"" - вообще выход за грани адекватного общения.

Вывод, разговаривайте адекватнее, и люди потянутся.

Ты зачем сюда заходшь? набить свой нубо посты? или помочь? Жду ответа Влада. Больше если не хотите не помогайте.

underwoker
05.05.2014, 23:42
Да, набить сво"Й" нубо пост. Пытаясь донести до вас суть.
И на "ТЫ" еще рано переходить.

Kenny_Dalglish
05.05.2014, 23:43
Да, набить сво"Й" нубо пост. Пытаясь донести до вас суть.
И на "ТЫ" еще рано переходить.

Пора уже спать. Кыш с темы же.

DeimoS
06.05.2014, 05:43
Я не такой профи :\. PlayerToKvadrat то ладно.... Кр4 почти не чего не понял.

Как уже сказали выше, готового кода не будет. Как минимум, потому, что я не знаю ваших переменных и всё же вам код нужен, а не мне.
Делается всё просто.
1) Создаём таймер, который прокрутит все гангзоны
2) С помощью PlayerToKvadrat проверяем, находится ли игрок, который ввёл команду захвата, на территории врага.
3) В зависимости от результата проверки выше, делаем различные выводы (сообщения/начало захвата и прочее)
4) ...
5) PROFIT!

Ну и напоследок. Пока вы "не такой профи", вы не станете этим самым "профи". Знания сами по себе не придут, их нужно получить. А так как тут не учебное заведение, а лишь форум, который ПОМОГАЕТ в ИЗУЧЕНИИ языка, учить вам нужно самостоятельно (либо платить желающим обучить вас. Но не факт, что они научат вас правильно). В общем, макет системы я вам дал. Дальше придётся писать самостоятельно. А уже если зайдёте в тупик и система работать не будет, получившийся код сюда и подскажем что делать

Kenny_Dalglish
06.05.2014, 12:48
Как уже сказали выше, готового кода не будет. Как минимум, потому, что я не знаю ваших переменных и всё же вам код нужен, а не мне.
Делается всё просто.
1) Создаём таймер, который прокрутит все гангзоны
2) С помощью PlayerToKvadrat проверяем, находится ли игрок, который ввёл команду захвата, на территории врага.
3) В зависимости от результата проверки выше, делаем различные выводы (сообщения/начало захвата и прочее)
4) ...
5) PROFIT!

Ну и напоследок. Пока вы "не такой профи", вы не станете этим самым "профи". Знания сами по себе не придут, их нужно получить. А так как тут не учебное заведение, а лишь форум, который ПОМОГАЕТ в ИЗУЧЕНИИ языка, учить вам нужно самостоятельно (либо платить желающим обучить вас. Но не факт, что они научат вас правильно). В общем, макет системы я вам дал. Дальше придётся писать самостоятельно. А уже если зайдёте в тупик и система работать не будет, получившийся код сюда и подскажем что делать

А если он запускаться по врмени в xx:00 xx :20 xx:40 то как мне проверку ?

DeimoS
06.05.2014, 13:29
А если он запускаться по врмени в xx:00 xx :20 xx:40 то как мне проверку ?

То есть? Кто запускается? И что должно происходить?

Kenny_Dalglish
06.05.2014, 14:12
То есть? Кто запускается? И что должно происходить?



if((m == 20 || m == 40 || m == 0) && s == 0)
{
vremyadostarta = 60;
usebandaI[0] = 1+random(5);
usebandaI[1] = 1+random(5);
while(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(5);
foreach(new i: Player)
{
ShowPlayerDialog(i, 22882, DIALOG_STYLE_MSGBOX, "{FFAA00}Капт", "Хочешь на капт?", "Да", "Нет");
}
}

Без участия человека происходит

DeimoS
06.05.2014, 14:33
Я не понимаю что вы от меня хотите... То вам нужно убрать рандомный выбор гангзоны, на которую будут нападать, то теперь уже совершенно другая система. Вы либо описывайте всё сразу, либо делайте самостоятельно. Но мысли тут никто ваши читать не умеет

Kenny_Dalglish
06.05.2014, 14:38
Я не понимаю что вы от меня хотите... То вам нужно убрать рандомный выбор гангзоны, на которую будут нападать, то теперь уже совершенно другая система. Вы либо описывайте всё сразу, либо делайте самостоятельно. Но мысли тут никто ваши читать не умеет

Это все и относиться к этому. Какой убрать рандомной выбор гангзон? Мне нужно но что бы на отбивающию банду территорий нападали.
Просто как мы сделаем проверку на PlayerKvadrat? Если там происходить все автоматичиски.

DeimoS
06.05.2014, 15:28
Мне нужно но что бы на отбивающию банду территорий нападали.

Вот это предложение расшифруйте, пожалуйста

Kenny_Dalglish
06.05.2014, 15:38
Вот это предложение расшифруйте, пожалуйста

Блин, как трудно объяснять когда не играли на серверах где есть эти капты.... Во общем 130 территорий их выбирает рандомно оно может выбрать и Los Santos Vagos и т.д. А вот если например The Ballas напали на Varios Los Aztecas тоесть что я написал в том предложений может и выбрать не ту банду на которую нападают. Я уже задолбался если честно объяснять.
P.S: С русским у меня не оч ;(. Хотя и родился в Россий :)

DeimoS
06.05.2014, 15:46
Блин, как трудно объяснять когда не играли на серверах где есть эти капты.... Во общем 130 территорий их выбирает рандомно оно может выбрать и Los Santos Vagos и т.д. А вот если например The Ballas напали на Varios Los Aztecas тоесть что я написал в том предложений может и выбрать не ту банду на которую нападают. Я уже задолбался если честно объяснять.
P.S: С русским у меня не оч ;(. Хотя и родился в Россий :)

То есть, система выбрала две банды: "Groove Street" и "The Ballas Gang". Первые нападают на вторых. Вам надо, чтоб система выбирала именно территории "The Ballas Gang", так?

Kenny_Dalglish
06.05.2014, 15:49
То есть, система выбрала две банды: "Groove Street" и "The Ballas Gang". Первые нападают на вторых. Вам надо, чтоб система выбирала именно территории "The Ballas Gang", так?

Верно :).
Ещё вопрос Вы же видили выбор банды из рандома? Вот начал делать пикапы в интерьер и проверку на банды поставить хочу а хз как на каждую. Там же usebandaI[0], usebandaI[1] 2 банды всего а вот как на 5 проверки сделать...

DeimoS
06.05.2014, 15:59
Верно :).

Хмм, ну можно сделать как-нибудь так

for(new i; i < sizeof(GangZones); i++)
{
if(GangZones[i][frak] != usebandaI[1]) continue;
kvadratik = i;
GangZoneFlashForAll(GangZones[i][idz],COLOR_RED);
break;
}
Если я правильно понял предназначение ваших переменных


Ещё вопрос Вы же видили выбор банды из рандома? Вот начал делать пикапы в интерьер и проверку на банды поставить хочу а хз как на каждую. Там же usebandaI[0], usebandaI[1] 2 банды всего а вот как на 5 проверки сделать...

Ну так делайте проверку не на usebandaI, а на переменную игрока. То бишь, если он состоит в банде - использовать пикап можно. ID банд у вас есть.

Kenny_Dalglish
06.05.2014, 16:09
Хмм, ну можно сделать как-нибудь так

for(new i; i < sizeof(GangZones); i++)
{
if(GangZones[i][frak] != usebandaI[1]) continue;
kvadratik = i;
GangZoneFlashForAll(GangZones[i][idz],COLOR_RED);
break;
}
Если я правильно понял предназначение ваших переменных



Ну так делайте проверку не на usebandaI, а на переменную игрока. То бишь, если он состоит в банде - использовать пикап можно. ID банд у вас есть.

ID банд же нету. Конкретных на счёт выше кода... Это при начале капта что ли?

DeimoS
06.05.2014, 16:25
ID банд же нету. Конкретных на счёт выше кода... Это при начале капта что ли?

Лол. А как тогда вы определяете, что игрок состоит в банде? -_-
Это замена того кода, что дали вы. С рандомом который

Kenny_Dalglish
06.05.2014, 16:33
Ой Влад я не знаю... Как тебя отблагодарить цены тебе нету :)
На счёт пикапов вот ещё бы :)

- - - Добавлено - - -

Дак, даже сохрана то нету банд этот капт как динамический. Нету они просто объявлены через переменую


new usebandaI[2];

DeimoS
06.05.2014, 16:34
Ой Влад я не знаю... Как тебя отблагодарить цены тебе нету :)
На счёт пикапов вот ещё бы :)

Ну блин, нужна переменная, типа pMember. Именно она и хранит ID фракции, в которой находится игрок. А кто ещё, кроме игрока, может использовать пикап? Правильно, никто. Вот на основе значения этой переменной и делайте проверки

Kenny_Dalglish
06.05.2014, 16:48
Ну блин, нужна переменная, типа pMember. Именно она и хранит ID фракции, в которой находится игрок. А кто ещё, кроме игрока, может использовать пикап? Правильно, никто. Вот на основе значения этой переменной и делайте проверки

Нету переменой.... pMember и подобного. У меня ДМ мод....

- - - Добавлено - - -

Возможно как то по другому?

DeimoS
06.05.2014, 16:51
Нету переменой.... pMember и подобного. У меня ДМ мод....

- - - Добавлено - - -

Возможно как то по другому?

Ну как-то же должно определять то, что игрок выбрал одну из банд. Для тех же спавнов.

Kenny_Dalglish
06.05.2014, 16:58
Ну как-то же должно определять то, что игрок выбрал одну из банд. Для тех же спавнов.

Вот выбирает тем что выдаеться банда.



switch(dialogid)
{
case 22882:
{
if(!response) return SCM(playerid, 0xFF6347AA, "Вы отказались от капта!");
if(skolkoMyasa[0] < 1)
{
captplayer[playerid] = usebandaI[0];
killcapt[playerid] = 0;
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
asas[playerid][0] = GetPlayerColor(playerid);
GetGangColor(playerid, captplayer[playerid]);
SetPlayerTeam(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[0]++;
}
else if(skolkoMyasa[1] < 1)
{
captplayer[playerid] = usebandaI[1];
killcapt[playerid] = 0;
asas[playerid][0] = GetPlayerColor(playerid);
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
GetGangColor(playerid, captplayer[playerid]);
SetPlayerTeam(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[1]++;
}
else SCM(playerid, 0xFF6347AA, "Еще дольше бы подумал ... Все места заняты!");
return 1;
}



stock teleportcapt(playerid) // телепорт на капт
{
switch(captplayer[playerid])
{
case 1: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Grove
case 2: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Ballas
case 3: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Rifa
case 4: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Aztecas
case 5: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Vagos
}
TogglePlayerControllable(playerid, false);
SetTimerEx("UNFREEZBYKENNY", 1500, false, "i", playerid);
PlayerVariable[playerid][pHealing] = 0;
PlayerVariable[playerid][pMasked] = 0;
SetPlayerSkin(playerid, fskin[playerid]);
GetGangColor(playerid, captplayer[playerid]);
}


- - - Добавлено - - -

Ну ладно тут я поставлю только на 2 банды это да а вот как на 5 ибо только при выдаче на 2 банды можно поставить проверку через usebandaI

DeimoS
06.05.2014, 17:18
Эмм, так какие пикапы то нужны? На капте которые будут использоваться?

Kenny_Dalglish
06.05.2014, 17:39
Эмм, так какие пикапы то нужны? На капте которые будут использоваться?

Не не. Для входа с проверкой на банду. Если бы была переменая pMember можно было бы сделать а так я хз.

DeimoS
06.05.2014, 17:48
Не не. Для входа с проверкой на банду. Если бы была переменая pMember можно было бы сделать а так я хз.

Ну так если банды есть только в виде капта, о каких входах идёт речь?

Kenny_Dalglish
06.05.2014, 17:58
Ну так если банды есть только в виде капта, о каких входах идёт речь?

Для интерьеров, там выбор оружие и т.д... Дак как то можно?

- - - Добавлено - - -

Да и на машины, на склад пикапа хочеться поставить проверку на банду...

DeimoS
06.05.2014, 19:29
Для интерьеров, там выбор оружие и т.д... Дак как то можно?

- - - Добавлено - - -

Да и на машины, на склад пикапа хочеться поставить проверку на банду...
OnPlayerConnect и OnPlayerRequestClass полностью покажите

Kenny_Dalglish
06.05.2014, 20:20
OnPlayerConnect и OnPlayerRequestClass полностью покажите

Зачем? 0_o
Ну ладно:


public OnPlayerConnect(playerid)
{
PlayerTimerID[playerid] = SetTimerEx("PlayerUpdate", 250, 1, "d", playerid);
//TextDrawShowForPlayer(playerid,gState99Text);
ckills[playerid] = 0;
PI[playerid][pLogged] = 0, PI[playerid][pBanned] = 0, PI[playerid][pKill] = 0, PI[playerid][pSmerti] = 0, PI[playerid][pAdmin] = 0, PI[playerid][pMuted] = 0, PI[playerid][pJailed] = 0, PI[playerid][pBonusParkour] = 0;
GetPlayerName(playerid, PI[playerid][pName], 24);//Узнаём ник игрока и записываем в переменную PI[playerid][pName]
mysql_format(MYSQL_ARG, asd, 90, "SELECT `Name` FROM `"Baza"` WHERE `Name` = '%e'", PI[playerid][pName]);//Форматируем строку и записываем логин
mysql_function_query(MYSQL_ARG, asd, true, "Start_R_A","d", playerid);//Отправляем запрос и узнаём есть ли в бд ник игрока

for(new i = 0; i < 47; i++)
{
WeaponInfo[playerid][i] = false;
AmmoInfo[playerid][i] = 0;
}
for(new i = 0; i < 13; i++) AmmoSlot[playerid][i] = 0;

AdminText3D = Create3DTextLabel("Администратор",0xFFFFFF, 30.0, 40.0, 50.0, 40.0, 0);
damange[playerid][0] = TextDrawCreate(636.399963, 298.175537, "usebox");
TextDrawLetterSize(damange[playerid][0], 0.000000, 2.448768);
TextDrawTextSize(damange[playerid][0], 504.000000, 0.000000);
TextDrawAlignment(damange[playerid][0], 1);
TextDrawColor(damange[playerid][0], 0);
TextDrawUseBox(damange[playerid][0], true);
TextDrawBoxColor(damange[playerid][0], COLOR_BOX);
TextDrawSetShadow(damange[playerid][0], 0);
TextDrawSetOutline(damange[playerid][0], 0);
TextDrawFont(damange[playerid][0], 0);



Textdraw0[playerid] = TextDrawCreate(626.399963, 257.357757, "usebox");
TextDrawLetterSize(Textdraw0[playerid], 0.000000, 10.523828);
TextDrawTextSize(Textdraw0[playerid], 460.000000, 0.000000);
TextDrawAlignment(Textdraw0[playerid], 1);
TextDrawColor(Textdraw0[playerid], 0);
TextDrawUseBox(Textdraw0[playerid], true);
TextDrawBoxColor(Textdraw0[playerid], 102);
TextDrawSetShadow(Textdraw0[playerid], 0);
TextDrawSetOutline(Textdraw0[playerid], 0);
TextDrawFont(Textdraw0[playerid], 1);

Textdraw1[playerid] = TextDrawCreate(485.199981, 266.808868, "New Textdraw");
TextDrawLetterSize(Textdraw1[playerid], 0.449999, 1.600000);
TextDrawAlignment(Textdraw1[playerid], 1);
TextDrawColor(Textdraw1[playerid], -1);
TextDrawSetShadow(Textdraw1[playerid], 0);
TextDrawSetOutline(Textdraw1[playerid], 1);
TextDrawBackgroundColor(Textdraw1[playerid], 51);
TextDrawFont(Textdraw1[playerid], 1);
TextDrawSetProportional(Textdraw1[playerid], 1);
TextDrawSetSelectable(Textdraw1[playerid], true);

Textdraw2[playerid] = TextDrawCreate(487.200012, 299.662109, "New Textdraw");
TextDrawLetterSize(Textdraw2[playerid], 0.449999, 1.600000);
TextDrawAlignment(Textdraw2[playerid], 1);
TextDrawColor(Textdraw2[playerid], -1);
TextDrawSetShadow(Textdraw2[playerid], 0);
TextDrawSetOutline(Textdraw2[playerid], 1);
TextDrawBackgroundColor(Textdraw2[playerid], 51);
TextDrawFont(Textdraw2[playerid], 1);
TextDrawSetProportional(Textdraw2[playerid], 1);
TextDrawSetSelectable(Textdraw2[playerid], true);


damange[playerid][1] = TextDrawCreate(511.999969, 301.155639, "DAMAGE:");
TextDrawLetterSize(damange[playerid][1], 0.449999, 1.600000);
TextDrawAlignment(damange[playerid][1], 1);
TextDrawColor(damange[playerid][1], -5963521);
TextDrawSetShadow(damange[playerid][1], 0);
TextDrawSetOutline(damange[playerid][1], 1);
TextDrawBackgroundColor(damange[playerid][1], 51);
TextDrawFont(damange[playerid][1], 3);
TextDrawSetProportional(damange[playerid][1], 1);

damange[playerid][2] = TextDrawCreate(579.200256, 301.155578, "%d HP");
TextDrawLetterSize(damange[playerid][2], 0.449999, 1.600000);
TextDrawAlignment(damange[playerid][2], 1);
TextDrawColor(damange[playerid][2], -5963521);
TextDrawSetShadow(damange[playerid][2], 0);
TextDrawSetOutline(damange[playerid][2], 1);
TextDrawBackgroundColor(damange[playerid][2], 51);
TextDrawFont(damange[playerid][2], 3);
TextDrawSetProportional(damange[playerid][2], 1);

KILLEDINFORMER[playerid][0] = TextDrawCreate(641.599975, 123.953338, "usebox");
TextDrawLetterSize(KILLEDINFORMER[playerid][0], 0.000000, 5.048270);
TextDrawTextSize(KILLEDINFORMER[playerid][0], -2.000000, 0.000000);
TextDrawAlignment(KILLEDINFORMER[playerid][0], 1);
TextDrawColor(KILLEDINFORMER[playerid][0], 0);
TextDrawUseBox(KILLEDINFORMER[playerid][0], true);
TextDrawBoxColor(KILLEDINFORMER[playerid][0], COLOR_BOX);
TextDrawSetShadow(KILLEDINFORMER[playerid][0], 0);
TextDrawSetOutline(KILLEDINFORMER[playerid][0], 0);
TextDrawFont(KILLEDINFORMER[playerid][0], 0);

KILLEDINFORMER[playerid][1] = TextDrawCreate(393.200012, 139.377746, "KILLED BY");
TextDrawLetterSize(KILLEDINFORMER[playerid][1], 0.929997, 1.759289);
TextDrawTextSize(KILLEDINFORMER[playerid][1], 10635.597656, 2726.330810);
TextDrawAlignment(KILLEDINFORMER[playerid][1], 3);
TextDrawColor(KILLEDINFORMER[playerid][1], -5963521);
TextDrawSetShadow(KILLEDINFORMER[playerid][1], 0);
TextDrawSetOutline(KILLEDINFORMER[playerid][1], 0);
TextDrawBackgroundColor(KILLEDINFORMER[playerid][1], 51);
TextDrawFont(KILLEDINFORMER[playerid][1], 1);
TextDrawSetProportional(KILLEDINFORMER[playerid][1], 1);


KILLEDINFORMER[playerid][2] = TextDrawCreate(402.800048, 140.871170, "%s");
TextDrawLetterSize(KILLEDINFORMER[playerid][2], 0.449999, 1.600000);
TextDrawAlignment(KILLEDINFORMER[playerid][2], 1);
TextDrawColor(KILLEDINFORMER[playerid][2], -5963521);
TextDrawSetShadow(KILLEDINFORMER[playerid][2], 1);
TextDrawSetOutline(KILLEDINFORMER[playerid][2], 0);
TextDrawBackgroundColor(KILLEDINFORMER[playerid][2], 51);
TextDrawFont(KILLEDINFORMER[playerid][2], 3);
TextDrawSetProportional(KILLEDINFORMER[playerid][2], 1);

killssmerti[playerid][0] = TextDrawCreate(137.199966, 192.646667, "usebox");
TextDrawLetterSize(killssmerti[playerid][0], 0.000000, 5.435430);
TextDrawTextSize(killssmerti[playerid][0], 5.200000, 0.000000);
TextDrawAlignment(killssmerti[playerid][0], 1);
TextDrawColor(killssmerti[playerid][0], 0);
TextDrawUseBox(killssmerti[playerid][0], true);
TextDrawBoxColor(killssmerti[playerid][0], 102);
TextDrawSetShadow(killssmerti[playerid][0], 0);
TextDrawSetOutline(killssmerti[playerid][0], 0);
TextDrawFont(killssmerti[playerid][0], 0);

killssmerti[playerid][1] = TextDrawCreate(9.600003, 198.115554, "Kills:");
TextDrawLetterSize(killssmerti[playerid][1], 0.586800, 1.639821);
TextDrawAlignment(killssmerti[playerid][1], 1);
TextDrawColor(killssmerti[playerid][1], 16777215);
TextDrawSetShadow(killssmerti[playerid][1], 0);
TextDrawSetOutline(killssmerti[playerid][1], 1);
TextDrawBackgroundColor(killssmerti[playerid][1], 51);
TextDrawFont(killssmerti[playerid][1], 2);
TextDrawSetProportional(killssmerti[playerid][1], 1);

killssmerti[playerid][2] = TextDrawCreate(9.600032, 223.004425, "DEATH:");
TextDrawLetterSize(killssmerti[playerid][2], 0.491200, 1.689600);
TextDrawAlignment(killssmerti[playerid][2], 1);
TextDrawColor(killssmerti[playerid][2], 16777215);
TextDrawSetShadow(killssmerti[playerid][2], 0);
TextDrawSetOutline(killssmerti[playerid][2], 1);
TextDrawBackgroundColor(killssmerti[playerid][2], 51);
TextDrawFont(killssmerti[playerid][2], 2);
TextDrawSetProportional(killssmerti[playerid][2], 1);

killssmerti[playerid][3] = TextDrawCreate(90.000015, 199.608901, "%d");
TextDrawLetterSize(killssmerti[playerid][3], 0.449999, 1.600000);
TextDrawAlignment(killssmerti[playerid][3], 1);
TextDrawColor(killssmerti[playerid][3], -16711681);
TextDrawSetShadow(killssmerti[playerid][3], 0);
TextDrawSetOutline(killssmerti[playerid][3], 1);
TextDrawBackgroundColor(killssmerti[playerid][3], 51);
TextDrawFont(killssmerti[playerid][3], 2);
TextDrawSetProportional(killssmerti[playerid][3], 1);


killssmerti[playerid][4] = TextDrawCreate(89.200035, 224.000061, "%D");
TextDrawLetterSize(killssmerti[playerid][4], 0.449999, 1.600000);
TextDrawAlignment(killssmerti[playerid][4], 1);
TextDrawColor(killssmerti[playerid][4], -16711681);
TextDrawSetShadow(killssmerti[playerid][4], 0);
TextDrawSetOutline(killssmerti[playerid][4], 1);
TextDrawBackgroundColor(killssmerti[playerid][4], 51);
TextDrawFont(killssmerti[playerid][4], 2);
TextDrawSetProportional(killssmerti[playerid][4], 1);


SPECEPT[playerid][0] = TextDrawCreate(638.799987, 162.779998, "usebox");
TextDrawLetterSize(SPECEPT[playerid][0], 0.000000, 1.176666);
TextDrawTextSize(SPECEPT[playerid][0], 462.000000, 0.000000);
TextDrawAlignment(SPECEPT[playerid][0], 1);
TextDrawColor(SPECEPT[playerid][0], 0);
TextDrawUseBox(SPECEPT[playerid][0], true);
TextDrawBoxColor(SPECEPT[playerid][0], 102);
TextDrawSetShadow(SPECEPT[playerid][0], 0);
TextDrawSetOutline(SPECEPT[playerid][0], 0);
TextDrawFont(SPECEPT[playerid][0], 0);

SPECEPT[playerid][1] = TextDrawCreate(465.200195, 159.786727, "Name:");
TextDrawLetterSize(SPECEPT[playerid][1], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][1], 1);
TextDrawColor(SPECEPT[playerid][1], -5963521);
TextDrawSetShadow(SPECEPT[playerid][1], 0);
TextDrawSetOutline(SPECEPT[playerid][1], 1);
TextDrawBackgroundColor(SPECEPT[playerid][1], 51);
TextDrawFont(SPECEPT[playerid][1], 1);
TextDrawSetProportional(SPECEPT[playerid][1], 1);

SPECEPT[playerid][2] = TextDrawCreate(638.799987, 183.686691, "usebox");
TextDrawLetterSize(SPECEPT[playerid][2], 0.000000, 1.066049);
TextDrawTextSize(SPECEPT[playerid][2], 462.399902, 0.000000);
TextDrawAlignment(SPECEPT[playerid][2], 1);
TextDrawColor(SPECEPT[playerid][2], 0);
TextDrawUseBox(SPECEPT[playerid][2], true);
TextDrawBoxColor(SPECEPT[playerid][2], 102);
TextDrawSetShadow(SPECEPT[playerid][2], 0);
TextDrawSetOutline(SPECEPT[playerid][2], 0);
TextDrawFont(SPECEPT[playerid][2], 0);

SPECEPT[playerid][3] = TextDrawCreate(464.800018, 180.693344, "IP:");
TextDrawLetterSize(SPECEPT[playerid][3], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][3], 1);
TextDrawColor(SPECEPT[playerid][3], -5963521);
TextDrawSetShadow(SPECEPT[playerid][3], 0);
TextDrawSetOutline(SPECEPT[playerid][3], 1);
TextDrawBackgroundColor(SPECEPT[playerid][3], 51);
TextDrawFont(SPECEPT[playerid][3], 1);
TextDrawSetProportional(SPECEPT[playerid][3], 1);

SPECEPT[playerid][4] = TextDrawCreate(638.799987, 203.099990, "usebox");
TextDrawLetterSize(SPECEPT[playerid][4], 0.000000, 1.066049);
TextDrawTextSize(SPECEPT[playerid][4], 462.399993, 0.000000);
TextDrawAlignment(SPECEPT[playerid][4], 1);
TextDrawColor(SPECEPT[playerid][4], 0);
TextDrawUseBox(SPECEPT[playerid][4], true);
TextDrawBoxColor(SPECEPT[playerid][4], 102);
TextDrawSetShadow(SPECEPT[playerid][4], 0);
TextDrawSetOutline(SPECEPT[playerid][4], 0);
TextDrawFont(SPECEPT[playerid][4], 0);

SPECEPT[playerid][5] = TextDrawCreate(464.400085, 200.106719, "ID:");
TextDrawLetterSize(SPECEPT[playerid][5], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][5], 1);
TextDrawColor(SPECEPT[playerid][5], -5963521);
TextDrawSetShadow(SPECEPT[playerid][5], 0);
TextDrawSetOutline(SPECEPT[playerid][5], 1);
TextDrawBackgroundColor(SPECEPT[playerid][5], 51);
TextDrawFont(SPECEPT[playerid][5], 1);
TextDrawSetProportional(SPECEPT[playerid][5], 1);

SPECEPT[playerid][6] = TextDrawCreate(638.400085, 223.011108, "usebox");
TextDrawLetterSize(SPECEPT[playerid][6], 0.000000, 1.121360);
TextDrawTextSize(SPECEPT[playerid][6], 462.799987, 0.000000);
TextDrawAlignment(SPECEPT[playerid][6], 1);
TextDrawColor(SPECEPT[playerid][6], 0);
TextDrawUseBox(SPECEPT[playerid][6], true);
TextDrawBoxColor(SPECEPT[playerid][6], 102);
TextDrawSetShadow(SPECEPT[playerid][6], 0);
TextDrawSetOutline(SPECEPT[playerid][6], 0);
TextDrawFont(SPECEPT[playerid][6], 0);

SPECEPT[playerid][7] = TextDrawCreate(466.000030, 220.017791, "Ping:");
TextDrawLetterSize(SPECEPT[playerid][7], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][7], 1);
TextDrawColor(SPECEPT[playerid][7], -5963521);
TextDrawSetShadow(SPECEPT[playerid][7], 0);
TextDrawSetOutline(SPECEPT[playerid][7], 1);
TextDrawBackgroundColor(SPECEPT[playerid][7], 51);
TextDrawFont(SPECEPT[playerid][7], 1);
TextDrawSetProportional(SPECEPT[playerid][7], 1);

SPECEPT[playerid][8] = TextDrawCreate(637.599792, 243.420028, "usebox");
TextDrawLetterSize(SPECEPT[playerid][8], 0.000000, 1.355431);
TextDrawTextSize(SPECEPT[playerid][8], 462.399993, 0.000000);
TextDrawAlignment(SPECEPT[playerid][8], 1);
TextDrawColor(SPECEPT[playerid][8], 0);
TextDrawUseBox(SPECEPT[playerid][8], true);
TextDrawBoxColor(SPECEPT[playerid][8], 102);
TextDrawSetShadow(SPECEPT[playerid][8], 0);
TextDrawSetOutline(SPECEPT[playerid][8], 0);
TextDrawFont(SPECEPT[playerid][8], 0);

SPECEPT[playerid][9] = TextDrawCreate(466.000061, 240.924453, "Kills:");
TextDrawLetterSize(SPECEPT[playerid][9], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][9], 1);
TextDrawColor(SPECEPT[playerid][9], -5963521);
TextDrawSetShadow(SPECEPT[playerid][9], 0);
TextDrawSetOutline(SPECEPT[playerid][9], 1);
TextDrawBackgroundColor(SPECEPT[playerid][9], 51);
TextDrawFont(SPECEPT[playerid][9], 1);
TextDrawSetProportional(SPECEPT[playerid][9], 1);

SPECEPT[playerid][10] = TextDrawCreate(638.400024, 265.819976, "usebox");
TextDrawLetterSize(SPECEPT[playerid][10], 0.000000, 1.231978);
TextDrawTextSize(SPECEPT[playerid][10], 462.399993, 0.000000);
TextDrawAlignment(SPECEPT[playerid][10], 1);
TextDrawColor(SPECEPT[playerid][10], 0);
TextDrawUseBox(SPECEPT[playerid][10], true);
TextDrawBoxColor(SPECEPT[playerid][10], 102);
TextDrawSetShadow(SPECEPT[playerid][10], 0);
TextDrawSetOutline(SPECEPT[playerid][10], 0);
TextDrawFont(SPECEPT[playerid][10], 0);

SPECEPT[playerid][11] = TextDrawCreate(466.800079, 263.324493, "DEATH:");
TextDrawLetterSize(SPECEPT[playerid][11], 0.449999, 1.600000);
//TextDrawTextSize(SPECEPT[playerid][11], -1.999999, 3.484444);
TextDrawAlignment(SPECEPT[playerid][11], 1);
TextDrawColor(SPECEPT[playerid][11], -5963521);
TextDrawSetShadow(SPECEPT[playerid][11], 0);
TextDrawSetOutline(SPECEPT[playerid][11], 1);
TextDrawBackgroundColor(SPECEPT[playerid][11], 51);
TextDrawFont(SPECEPT[playerid][11], 1);
TextDrawSetProportional(SPECEPT[playerid][11], 1);

SPECEPT[playerid][12] = TextDrawCreate(638.400329, 284.735565, "usebox");
TextDrawLetterSize(SPECEPT[playerid][12], 0.000000, 14.767766);
TextDrawTextSize(SPECEPT[playerid][12], 462.800018, 0.000000);
TextDrawAlignment(SPECEPT[playerid][12], 1);
TextDrawColor(SPECEPT[playerid][12], 0);
TextDrawUseBox(SPECEPT[playerid][12], true);
TextDrawBoxColor(SPECEPT[playerid][12], 102);
TextDrawSetShadow(SPECEPT[playerid][12], 0);
TextDrawSetOutline(SPECEPT[playerid][12], 0);
TextDrawFont(SPECEPT[playerid][12], 0);

SPECEPT[playerid][13] = TextDrawCreate(519.200073, 284.729034, "UPDATE");
TextDrawLetterSize(SPECEPT[playerid][13], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][13], 1);
TextDrawColor(SPECEPT[playerid][13], -16711681);
TextDrawSetShadow(SPECEPT[playerid][13], 0);
TextDrawSetOutline(SPECEPT[playerid][13], 0);
TextDrawBackgroundColor(SPECEPT[playerid][13], 51);
TextDrawFont(SPECEPT[playerid][13], 1);
TextDrawSetProportional(SPECEPT[playerid][13], 1);
TextDrawSetSelectable(SPECEPT[playerid][13], true);

SPECEPT[playerid][14] = TextDrawCreate(516.400207, 301.653350, "GM TEST");
TextDrawLetterSize(SPECEPT[playerid][14], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][14], 1);
TextDrawColor(SPECEPT[playerid][14], 16711935);
TextDrawSetShadow(SPECEPT[playerid][14], 0);
TextDrawSetOutline(SPECEPT[playerid][14], 0);
TextDrawBackgroundColor(SPECEPT[playerid][14], 51);
TextDrawFont(SPECEPT[playerid][14], 1);
TextDrawSetProportional(SPECEPT[playerid][14], 1);
TextDrawSetSelectable(SPECEPT[playerid][14], true);

SPECEPT[playerid][15] = TextDrawCreate(529.600097, 318.080139, "Kick");
TextDrawLetterSize(SPECEPT[playerid][15], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][15], 1);
TextDrawColor(SPECEPT[playerid][15], 16711935);
TextDrawSetShadow(SPECEPT[playerid][15], 0);
TextDrawSetOutline(SPECEPT[playerid][15], 0);
TextDrawBackgroundColor(SPECEPT[playerid][15], 51);
TextDrawFont(SPECEPT[playerid][15], 1);
TextDrawSetProportional(SPECEPT[playerid][15], 1);
TextDrawSetSelectable(SPECEPT[playerid][15], true);

SPECEPT[playerid][16] = TextDrawCreate(531.199829, 335.004394, "BAN");
TextDrawLetterSize(SPECEPT[playerid][16], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][16], 1);
TextDrawColor(SPECEPT[playerid][16], 16711935);
TextDrawSetShadow(SPECEPT[playerid][16], 0);
TextDrawSetOutline(SPECEPT[playerid][16], 0);
TextDrawBackgroundColor(SPECEPT[playerid][16], 51);
TextDrawFont(SPECEPT[playerid][16], 1);
TextDrawSetProportional(SPECEPT[playerid][16], 1);
TextDrawSetSelectable(SPECEPT[playerid][16], true);

SPECEPT[playerid][17] = TextDrawCreate(524.799987, 350.435577, "MUTE");
TextDrawLetterSize(SPECEPT[playerid][17], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][17], 1);
TextDrawColor(SPECEPT[playerid][17], 16711935);
TextDrawSetShadow(SPECEPT[playerid][17], 0);
TextDrawSetOutline(SPECEPT[playerid][17], 0);
TextDrawBackgroundColor(SPECEPT[playerid][17], 51);
TextDrawFont(SPECEPT[playerid][17], 1);
TextDrawSetProportional(SPECEPT[playerid][17], 1);
TextDrawSetSelectable(SPECEPT[playerid][17], true);

SPECEPT[playerid][18] = TextDrawCreate(528.400146, 366.862243, "SLAP");
TextDrawLetterSize(SPECEPT[playerid][18], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][18], 1);
TextDrawColor(SPECEPT[playerid][18], 16711935);
TextDrawSetShadow(SPECEPT[playerid][18], 0);
TextDrawSetOutline(SPECEPT[playerid][18], 0);
TextDrawBackgroundColor(SPECEPT[playerid][18], 51);
TextDrawFont(SPECEPT[playerid][18], 1);
TextDrawSetProportional(SPECEPT[playerid][18], 1);
TextDrawSetSelectable(SPECEPT[playerid][18], true);

SPECEPT[playerid][19] = TextDrawCreate(529.600036, 384.284515, "EXIT");
TextDrawLetterSize(SPECEPT[playerid][19], 0.449999, 1.600000);
TextDrawAlignment(SPECEPT[playerid][19], 1);
TextDrawColor(SPECEPT[playerid][19], -16711681);
TextDrawSetShadow(SPECEPT[playerid][19], 0);
TextDrawSetOutline(SPECEPT[playerid][19], 0);
TextDrawBackgroundColor(SPECEPT[playerid][19], 51);
TextDrawFont(SPECEPT[playerid][19], 1);
TextDrawSetProportional(SPECEPT[playerid][19], 1);
TextDrawSetSelectable(SPECEPT[playerid][19], true);

TD_BADGE[playerid] = TextDrawCreate(34.799976, 308.124755, "BADGE ON");
TextDrawLetterSize(TD_BADGE[playerid], 0.468000, 2.316802);
TextDrawTextSize(TD_BADGE[playerid], 608.399963, 2063.291259);
TextDrawAlignment(TD_BADGE[playerid], 1);
TextDrawColor(TD_BADGE[playerid], -5963521);
TextDrawSetShadow(TD_BADGE[playerid], 0);
TextDrawSetOutline(TD_BADGE[playerid], 1);
TextDrawBackgroundColor(TD_BADGE[playerid], 51);
TextDrawFont(TD_BADGE[playerid], 0);
TextDrawSetProportional(TD_BADGE[playerid], 1);

DMOn[playerid][0] = 0, DMOn[playerid][1] = 0,DeagleOn[playerid][0] = 0,ParcurOn[playerid][0] = 0,
dmixed[playerid][0] = 0;
//bejik[playerid] = 0;
SelectSkin[playerid] = 0;
ChoseSkin[playerid] = false;
captplayer[playerid] = 0;
GetPlayerOption[playerid] = false;
gPlayerLogTries[playerid] = 0;
captonoff[playerid] = 0;
PlayerInfo[playerid][pUdachiTime] = 0;
PlayerInfo[playerid][pOTime] = 0;
GetPlayerTransfer[playerid] = INVALID_PLAYER_ID;
PI[playerid][pAFK] = 0;
PI[playerid][pAFKText] = Text3D:INVALID_3DTEXT_ID;
PI[playerid][pIsAFK] = false;
new playername[MAX_PLAYER_NAME];
SetPlayerScore(playerid,PI[playerid][pKill]);
GetPlayerName(playerid,playername,sizeof(playername));
TextDrawShowForPlayer(playerid,Logotip[0]);
TextDrawShowForPlayer(playerid,Logotip[1]);
return 1;
}

А OnPlayerRequestClass не использую.

DeimoS
06.05.2014, 20:42
Тогда я до сих пор не понимаю чего вы хотите... Как у вас вообще идёт выбор команды, за которую играть будет игрок?

Kenny_Dalglish
06.05.2014, 20:59
Тогда я до сих пор не понимаю чего вы хотите... Как у вас вообще идёт выбор команды, за которую играть будет игрок?
Проверку на пикап что не ясного то? :D Что бы если не Los Santos Vagos то не мог войти в интерьер Los Santos Vagos.


CMD:sc(playerid, params[])
{
vremyadostarta = 60;
usebandaI[0] = 1+random(5);
usebandaI[1] = 1+random(5);
while(usebandaI[0] == usebandaI[1]) usebandaI[1] = 1+random(5);
foreach(new i: Player)
{
ShowPlayerDialog(i, d_predl, DIALOG_STYLE_MSGBOX, "{FFAA00}Êàïò", "Õî÷åøü íà êàïò?", "Äà", "Íåò");
}
return 1;
}



case d_predl:
{
if(!response) return SCM(playerid, 0xFF6347AA, "Вы отказались от капта!");
if(skolkoMyasa[0] < 1)
{
captplayer[playerid] = usebandaI[0];
killcapt[playerid] = 0;
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
asas[playerid][0] = GetPlayerColor(playerid);
GetGangColor(playerid, captplayer[playerid]);
SetPlayerTeam(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[0]++;
}
else if(skolkoMyasa[1] < 1)
{
captplayer[playerid] = usebandaI[1];
killcapt[playerid] = 0;
asas[playerid][0] = GetPlayerColor(playerid);
SetTeamSkinForPlayer(playerid, captplayer[playerid]);
GetGangColor(playerid, captplayer[playerid]);
SetPlayerTeam(playerid, captplayer[playerid]);
teleportcapt(playerid);
skolkoMyasa[1]++;
}
else SCM(playerid, 0xFF6347AA, "Еще дольше бы подумал ... Все места заняты!");
return 1;
}

Тут вроде понятно откуда банда выбираеться.... А ВОТ как сделать на 5 банд проверку я хз

DeimoS
06.05.2014, 21:09
ТАК А ВНЕ КАПТА НА БАНДЫ КАК ДЕЛИТЬСЯ КОМАНДА?

Kenny_Dalglish
06.05.2014, 21:11
ТАК А ВНЕ КАПТА НА БАНДЫ КАК ДЕЛИТЬСЯ КОМАНДА?

В не капта не делиться не как...

DeimoS
06.05.2014, 21:26
В не капта не делиться не как...

Охх, я пару постов выше спрашивал по поводу пикапов и вы сказали, что они не только для капта...
Во время капта ID банды храниться тут

captplayer[playerid]
А вот тут у вас уже подписаны значения, которые обозначают нужную банду

switch(captplayer[playerid])
{
case 1: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Grove
case 2: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Ballas
case 3: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Rifa
case 4: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Aztecas
case 5: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Vagos
}

Kenny_Dalglish
06.05.2014, 21:28
Охх, я пару постов выше спрашивал по поводу пикапов и вы сказали, что они не только для капта...
Во время капта ID банды храниться тут

captplayer[playerid]
А вот тут у вас уже подписаны значения, которые обозначают нужную банду

switch(captplayer[playerid])
{
case 1: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Grove
case 2: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Ballas
case 3: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Rifa
case 4: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Aztecas
case 5: SetPlayerPos(playerid, 1754.4575,-2993.6404,240.8781); // Vagos
}

Тут captplayer[playerid] = 1 тоесть это будет Grove?

DeimoS
06.05.2014, 21:37
Тут captplayer[playerid] = 1 тоесть это будет Grove?

Если captplayer будет равна 1 - да.

Kenny_Dalglish
12.05.2014, 00:26
Хмм, ну можно сделать как-нибудь так

for(new i; i < sizeof(GangZones); i++)
{
if(GangZones[i][frak] != usebandaI[1]) continue;
kvadratik = i;
GangZoneFlashForAll(GangZones[i][idz],COLOR_RED);
break;
}
Если я правильно понял предназначение ваших переменных



Ну так делайте проверку не на usebandaI, а на переменную игрока. То бишь, если он состоит в банде - использовать пикап можно. ID банд у вас есть.
Теперь ещё и наверное последний вопрос


for(new i; i < sizeof(GangZones); i++)
{
if(GangZones[i][frak] != usebandaI[1] && IsATerra(playerid)) continue;
kvadratik = i;
GangZoneFlashForAll(GangZones[i][idz],COLOR_RED);
break;
}

IsATerra(playerid)) проверка на респаун банды, верно что бы не могло захватывать респавны?

DeimoS
12.05.2014, 06:05
Нет, неверно. Для начала покажите сам код IsATerra. И напишите ID гангзон, которые являются спавнами

Kenny_Dalglish
13.05.2014, 10:35
Нет, неверно. Для начала покажите сам код IsATerra. И напишите ID гангзон, которые являются спавнами


stock IsATerra(playerid)
{
if(PlayerToPoint(50.0,playerid,2651.4746,-2004.3387,13.3828)// баллас
|| PlayerToPoint(50.0,playerid,2774.2703,-1622.6263,10.9219) // вагос
||PlayerToPoint(50.0,playerid,2492.7532,-1676.3687,13.3380) // грув
||PlayerToPoint(50.0,playerid,1713.9735,-2114.5122,13.3828) // ацтек
||PlayerToPoint(50.0,playerid,2184.1218,-1803.6334,13.3693) // рифа
{
return 1;
}
return 0;
}

DeimoS
13.05.2014, 14:24
Данная функция не подойдёт. Узнайте ID гангзон, на которых располагаются спавны банд, и уже от этих данных нужно будет плясать

Kenny_Dalglish
13.05.2014, 14:37
Данная функция не подойдёт. Узнайте ID гангзон, на которых располагаются спавны банд, и уже от этих данных нужно будет плясать

Как мне узнать ID гангзоны? просто в игре /save?

DeimoS
13.05.2014, 15:02
Как мне узнать ID гангзоны? просто в игре /save?

Ну да. И сопоставить сохранённые координаты тем, на которых созданы гангзоны.

underwoker
13.05.2014, 17:02
Ну или же сделать команду с циклом и условием IsPlayerToKvadrat.

CMD:getgzid(playerid, params[])
{
new string[128];
if(PINFO[playerid][pAdmin] < 4)return SendMe(playerid, CGRADD, YouCanNot);
for(new i; i != TOTALGZ; i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
format(string,sizeof(string),"Вы находитесь в зоне: %d",i);
SendMe(playerid,-1,string);
return true;
}
}
return true;
}
Поправь под себя. Но я думаю лучше сделать с взятием значения из БД.

Kenny_Dalglish
14.05.2014, 03:14
Ну да. И сопоставить сохранённые координаты тем, на которых созданы гангзоны.

Ну вот например 2250.060546, -1083.657470, 2370.060546, -983.657470 Баллас дальше какие действия?

DeimoS
14.05.2014, 04:44
Ну вот например 2250.060546, -1083.657470, 2370.060546, -983.657470 Баллас дальше какие действия?

Нужно узнать ID гангзоны, а не координаты.

Kenny_Dalglish
14.05.2014, 11:25
Нужно узнать ID гангзоны, а не координаты.

127 зона.

DeimoS
14.05.2014, 11:43
Ну циклом мы что прогоняем? Каждую зону. Значит что? Переменная "i" хранит ID гангзоны. Вот и пляшем от этого

for(new i; i < sizeof(GangZones); i++)
{
if(GangZones[i][frak] != usebandaI[1]) continue;
switch(i)
{
case 12, 33, 127, 144, 152: continue;//"12, 33, 127, 144, 152" ID гангзон-спавнов.
}
kvadratik = i;
GangZoneFlashForAll(GangZones[i][idz],COLOR_RED);
break;
}

Kenny_Dalglish
14.05.2014, 11:45
Ну циклом мы что прогоняем? Каждую зону. Значит что? Переменная "i" хранит ID гангзоны. Вот и пляшем от этого

for(new i; i < sizeof(GangZones); i++)
{
if(GangZones[i][frak] != usebandaI[1]) continue;
switch(i)
{
case 12, 33, 127, 144, 152: continue;//"12, 33, 127, 144, 152" ID гангзон-спавнов.
}
kvadratik = i;
GangZoneFlashForAll(GangZones[i][idz],COLOR_RED);
break;
}

Спасибо..