xstyle
Компетентный
Здравствуйте. Решил вырезать Paint Ball из мода Samp-Rp v10. Вырезал я.
Добавьте в enum:
В public Float:GetDistanceBetweenPlayers(p1,p2):
В OnPlayerDisconnect:
В SetPlayerSpawn:
В OnPlayerDeath:
В OnPlayerPickUpDynamicPickup:
В public Fresh: Если нету паблика, то создайте: public Fresh()
Опять же в public Fresh() добавьте:
В public OnGameModeInit():
Теперь в OnPlayerCommand:
Это для YCMD, далее для простых:
В моде были объекты для завода, если кому-то нужны, то вот они:
Вроде все расписал, если будут ошибки/недоработки, то пишите в тему, буду исправлять.
Добавьте в enum:
PHP:
enum painfo
{
Name[32],
Kills,
Deaths,
};
new PaintInfo[15][painfo], PaintList = 0;
PHP:
new PaintGun[] = {24,31};
new Float:PaintballSpawns[6][3] = {
{2563.6877,2807.0288,10.8203},
{2554.0505,2837.7419,10.8203},
{2585.6748,2848.5283,10.8203},
{2598.7083,2843.5200,10.8203},
{2546.7622,2830.9004,14.2559},
{2575.9900,2839.3103,19.9922}
};
new paintt[3];
PHP:
if(GetPVarInt(playerid, "napeinte") == 1 && paintt[1] == 1) paintt[2]--;
SetPVarInt(playerid,"Register",0);
PHP:
if(GetPVarInt(playerid, "napeinte") == 2 && paintt[1] == 2)
{
GiveWeapon(playerid, PaintGun[random(sizeof(PaintGun))], 300);
new rand = random(sizeof(PaintballSpawns));
SetPlayerPos(playerid, PaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2]);
SetPlayerInterior(playerid,0);
return true;
}
PHP:
if(GetPVarInt(playerid,"napeinte") == 2)
{
SetPVarInt(playerid,"paintdeaths",GetPVarInt(playerid,"paintdeaths")+1);
if(killerid != INVALID_PLAYER_ID)
{
GameTextForPlayer(killerid, "~w~Kills +1", 5000, 1);
if(playerid != killerid){ SetPVarInt(killerid,"paintkills",GetPVarInt(killerid,"paintkills")+1); }
}
}
PHP:
else if(pickupid == paint)
{
if(paintt[1] == 0) return SendClientMessage(playerid,COLOR_GREY,"В данное время регистрация недоступна");
//if(PlayerInfo[playerid][pLevel] < 3 )return SendClientMessage(playerid,COLOR_GRAD1,"Участвовать можно с 3 lvl!");
if(GetPVarInt(playerid, "napeinte") == 1)return SendClientMessage(playerid, COLOR_GREY, "Ты уже зарегистрировался на матч!");
SetPVarInt(playerid, "napeinte", 1);
paintt[2]++;
format(string,sizeof(string), "Вы зарегистрировались на матч под номером: %d", paintt[2]);
SendClientMessage(playerid,0x6495EDFF,string);
return true;
}
PHP:
if(paintt[0] > 0)
{
paintt[0]--;
if(paintt[1] == 1 && paintt[0] == 120){ SendClientMessageToAll(0xFFAAFFAA,"Внимание! Начало Paint Balla через 2 минуты. Место проведения военный завод K.A.C.C"); }
if(paintt[1] == 1 && paintt[0] == 1)
{
if(paintt[2] > 2)
{
for(new i = 0; i < PaintList; i++)
{
strmid(PaintInfo[i][Name],"None", 0, strlen("None"), 32);
PaintInfo[i][Kills] = 0;
PaintInfo[i][Deaths] = 0;
}
PaintList = 0;
SendClientMessageToAll(0xFFAAFFAA,"Внимание! Матч по Paint Ball начался.");
paintt[1] = 2; paintt[0] = 300;
for(new idx=0, x=0; idx<cvector_size(players); idx++)
{
x = cvector_get(players, idx); if(GetPVarInt(x, "napeinte") == 1){ SetPVarInt(x, "napeinte", 2); SpawnPlayer(x); }
}
}
else { SendClientMessageToAll(0xFFAAFFAA,"Матч по пейнтболу отменен из-за не достаточного количества участников"); paintt[1] = 0; paintt[0] = 0; }
}
if(paintt[1] == 2 && paintt[0] == 1)
{
SendClientMessageToAll(0xFFAAFFAA,"Матч по пейнтболу завершен (( Список победителей: /paintlist ))");
paintt[1] = 0; paintt[0] = 0;
for(new idx=0, x=0; idx<cvector_size(players); idx++)
{
x = cvector_get(players, idx);
new v = GetPVarInt(x,"paintkills");
if(GetPVarInt(x, "napeinte") == 2)
{
PaintInfo[PaintList][Kills] = GetPVarInt(x,"paintkills");
PaintInfo[PaintList][Deaths] = GetPVarInt(x,"paintdeaths");
strmid(PaintInfo[PaintList][Name],Name(x), 0, strlen(Name(x)), 32);
PaintList++;
if(v > maxs) { maxs = v; id = x; }
DelGun(x);
guncheat[x] = 0;
SetPlayerPos(x, 2490.5623,2773.2583,10.7950);
SetPlayerFacingAngle(x, 91.0485);
}
}
if(id != -1) { PlayerInfo[id][pCash]+=50000; SendClientMessage(id, TEAM_AZTECAS_COLOR, "Поздравляю Вы заняли 1-ое место."); }
}
}
PHP:
if(paintt[1] == 0)
{
if(hour == 16 && minute == 10 || hour == 13 && minute == 10 || hour == 14 && minute == 10 || hour == 22 && minute == 10 || hour == 01 && minute == 30 || hour == 03 && minute == 15 )
{
SendClientMessageToAll(0xFFAAFFAA,"Внимание! Начало Paint Balla через 5 минут. Место проведения военный завод K.A.C.C");
paintt[0] = 300;
paintt[1] = 1;
for(new i = 0; i < GetMaxPlayers(); i++){ DeletePVar(i, "napeinte"); }
}
}
PHP:
paint = CreatePickup(353, 23, 2495.7253,2773.2148,10.8190);
PHP:
YCMD:paintlist(playerid,params[],help)
{
if(PlayerInfo[playerid][pLogin] == 0) return true;
new strrr[700];
for(new i = 0; i < PaintList; i++) format(YCMDstr, sizeof(YCMDstr), "%s\t\tУбийств: %d\t\tСмертей: %d\n",PaintInfo[i][Name],PaintInfo[i][Kills],PaintInfo[i][Deaths]), strcat(strrr, YCMDstr);
if (strlen(strrr) > 1) ShowPlayerDialogEx(playerid, 11349, DIALOG_STYLE_MSGBOX, "Список игроков", strrr, "Закрыть", "");
else SendClientMessage(playerid,-1,"Список пуст");
return true;
}
PHP:
else if(strcmp(cmd, "/paintlist", true) == 0)
{
if(IsPlayerConnected(playerid)) return true;
new strrr[700];
new str[256];
for(new i = 0; i < PaintList; i++) format(str, sizeof(str), "%s\t\tУбийств: %d\t\tСмертей: %d\n",PaintInfo[i][Namee],PaintInfo[i][Kills],PaintInfo[i][Deaths]), strcat(strrr, str);
if (strlen(strrr) > 1) SPD(playerid, 11349, DIALOG_STYLE_MSGBOX, "Список игроков", strrr, "Закрыть", "");
else SendClientMessage(playerid,-1,"Список пуст");
return true;
}
PHP:
//========================== Paint Ball ============================
CreateDynamicObject(5170,2552.87597656,2766.25659180,13.66572475,0.00000000,0.00000000,0.00000000); //object(imnrmpy2_las2) (1)
CreateDynamicObject(5170,2551.80981445,2744.61572266,13.66572475,0.00000000,0.00000000,0.00000000); //object(imnrmpy2_las2) (2)
CreateDynamicObject(5170,2551.49316406,2794.50073242,13.66572475,0.00000000,0.00000000,0.00000000); //object(imnrmpy2_las2) (3)
CreateDynamicObject(3043,2582.46679688,2807.37036133,11.27223206,0.00000000,0.00000000,0.00000000); //object(kmb_container_open) (1)
CreateDynamicObject(3043,2613.61181641,2807.70214844,11.27223206,0.00000000,0.00000000,0.00000000); //object(kmb_container_open) (2)
CreateDynamicObject(18260,2579.22485352,2842.20605469,11.39350510,0.00000000,0.00000000,0.00000000); //object(crates01) (1)
CreateDynamicObject(1431,2614.69287109,2832.97265625,10.36792564,0.00000000,0.00000000,80.00000000); //object(dyn_box_pile) (1)
CreateDynamicObject(3565,2598.67114258,2808.57958984,14.60387421,0.00000000,0.00000000,90.00000000); //object(lasdkrt1_la01) (1)
CreateDynamicObject(3573,2601.66772461,2827.66430664,12.51200390,0.00000000,0.00000000,90.00000000); //object(lasdkrtgrp1) (1)
CreateDynamicObject(3575,2577.66162109,2823.56713867,12.51200294,0.00000000,0.00000000,0.00000000); //object(lasdkrt05) (1)
CreateDynamicObject(3576,2603.48193359,2831.21386719,16.70763397,0.00000000,0.00000000,178.00000000); //object(dockcrates2_la) (1)
CreateDynamicObject(3800,2581.90380859,2829.22216797,12.51763725,0.00000000,0.00000000,0.00000000); //object(acbox4_sfs) (1)
CreateDynamicObject(3800,2575.81030273,2830.46435547,12.51763725,0.00000000,0.00000000,0.00000000); //object(acbox4_sfs) (2)
CreateDynamicObject(3800,2581.20703125,2824.35351562,15.21496201,0.00000000,0.00000000,0.00000000); //object(acbox4_sfs) (3)
CreateDynamicObject(3800,2546.06030273,2831.63256836,13.25593376,0.00000000,0.00000000,0.00000000); //object(acbox4_sfs) (4)
CreateDynamicObject(3800,2569.89770508,2829.42382812,9.82031250,0.00000000,0.00000000,0.00000000); //object(acbox4_sfs) (5)
CreateDynamicObject(7040,2562.93725586,2821.91650391,13.24809265,0.00000000,0.00000000,0.00000000); //object(vgnplcehldbox01) (1)
CreateDynamicObject(8885,2587.69555664,2808.10986328,13.24809265,0.00000000,0.00000000,90.00000000); //object(vgsefrght03) (1)
CreateDynamicObject(2048,2583.01025391,2824.90185547,13.54934692,0.00000000,0.00000000,90.00000000); //object(cj_flag2) (1)
CreateDynamicObject(2048,2567.04467773,2820.36108398,15.18964386,0.00000000,0.00000000,90.00000000); //object(cj_flag2) (2)
CreateDynamicObject(2048,2550.66284180,2839.76000977,12.33377647,0.00000000,0.00000000,90.00000000); //object(cj_flag2) (3)
CreateDynamicObject(2765,2539.72045898,2829.25317383,14.70967579,0.00000000,0.00000000,60.00000000); //object(cj_cb_list1) (1)
CreateDynamicObject(2745,2595.37207031,2794.51879883,11.02893162,0.00000000,0.00000000,270.00000000); //object(cj_stat_3) (1)
CreateDynamicObject(2745,2595.49951172,2786.80615234,11.02893162,0.00000000,0.00000000,270.00000000); //object(cj_stat_3) (2)
CreateDynamicObject(4515,2896.34228516,476.26184082,-64.61634827,0.00000000,0.00000000,0.00000000); //object(cn2_roadblock02ld) (1)
CreateDynamicObject(991,2539.09375000,2823.83276367,11.03555298,0.00000000,0.00000000,90.00000000); //object(bar_barriergate1) (1)
CreateDynamicObject(991,2616.11010742,2830.99316406,11.03555298,0.00000000,0.00000000,90.00000000); //object(bar_barriergate1) (2)
CreateDynamicObject(18200,1853.96386719,3129.90771484,-73.40789032,0.00000000,0.00000000,0.00000000); //object(w_town_11) (1)
CreateDynamicObject(12839,2579.71850586,2819.52880859,16.23694229,0.00000000,0.00000000,88.50000000); //object(cos_sbanksteps02) (1)
CreateDynamicObject(12958,2503.84667969,2820.36157227,12.91957855,0.00000000,0.00000000,180.00000000); //object(cos_sbanksteps01) (1)
CreateDynamicObject(12985,2547.93603516,2811.11743164,17.09434509,0.00000000,0.00000000,0.00000000); //object(cos_sbanksteps05) (1)
CreateDynamicObject(5822,2822.91430664,2972.92187500,-0.44067764,0.00000000,0.00000000,100.00000000); //object(lhroofst14) (1)
CreateDynamicObject(12839,2567.61547852,2827.19677734,16.97333145,0.00000000,0.00000000,180.00000000); //object(cos_sbanksteps02) (2)
