Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Контр атака ножом - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (4 Страниц) +
  • 1
  • 2
  • 3
  • 4
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Контр атака ножом Оценка: -----

#21
Пользователь офлайн   lama developer 

  • Гадаю по вашему коду!
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Умничка :3
0

#22
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Как думаете, оставить на IsPlayerInRangeOfPoint или сделать через GetDistanceBetweenPlayers? Или суть не поменяется?

Сообщение отредактировал m1n1vv: 16 Июнь 2015 - 12:22

0

#23
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Или вообще через GetClosestPlayer сделать?
0

#24
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
0.4 После контр удара возвращается оружие

Ко всем new:
new weapons[13][2];

Ко всем forward:
forward Knife100HP(playerid);
forward Knife100HPDO(playerid);

В OnPlayerKeyStateChange:
if(((newkeys & 16) && GetPlayerState(playerid)==PLAYER_STATE_ONFOOT)){
    new weap = GetPlayerWeapon(playerid);
    if(weap == 4) SetTimerEx("Knife100HP", 0, false, "i", playerid);
    return 1;
}

В конец мода:
Контр атака:
public Knife100HP(playerid){
    new Float: health;
    GetPlayerHealth(playerid, health);
    if(health <= 10) return 1;
    new vehid = GetClosestCar(playerid, 5.0);
    for(new i = 0; i < MAX_VEHICLES; i++) if(i == vehid) return 1;
    for(new w = 0; w < 13; w++) GetPlayerWeaponData(playerid, w, weapons[w][0], weapons[w][1]);
    ResetPlayerWeapons(playerid);
    ApplyAnimation(playerid, "ped", "FightA_1",4.0,0,0,0,0,0,1);
    SetPlayerAttachedObject(playerid, 6, 335, 5, 0.17, 0.0, 0.0, 0.0, 180.0, 0.0);
    SetTimerEx("Knife100HPDO", 650, false, "i", playerid);
    new Float:p[3];
    GetPlayerPos(playerid,p[0],p[1],p[2]);
    foreach(Player, i){
        if(IsPlayerInRangeOfPoint(i,3.0,p[0],p[1],p[2])){
            PlayAudioStreamForPlayer(i, "http://m1n1vv.narod.ru/phrases/knife1.mp3",p[0],p[1],p[2], 5.0,true);
            if(!IsPlayerConnected(i) || i == playerid) continue;
            return SetPlayerHealth(i, random(-65 - -99) + -99); 
        }
    }
    return 1;
}

Удаление ножа:
public Knife100HPDO(playerid){
    RemovePlayerAttachedObject(playerid,6);
    for (new w = 0; w < 13; w++) GivePlayerWeapon(playerid, weapons[w][0], weapons[w][1]);
    return 1;
}

Обнаружение авто:
stock GetClosestCar(playerid, Float:dist){ 
    new Float:x,Float:y,Float:z; 
    for(new i = 0; i < MAX_VEHICLES; i++){ 
        if(GetVehicleModel(i) == 0) continue;
        GetVehiclePos(i,x,y,z); 
        if(IsPlayerInRangeOfPoint(playerid,dist,x,y,z)) 
        return i;
    }
    return -1; 
}

Сообщение отредактировал m1n1vv: 07 Октябрь 2015 - 16:23

0

#25
Пользователь офлайн   Sound 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияSnoopDy (30 Апрель 2015 - 17:15) писал:

Как я думаю ударить ножом может и игрока в которого не требывалось,просто стоящего рядом


Если еще не доработал то вот:
new Float: positionX, positionY, positionZ;
GetPlayerTurn(i, position X,positionY,positionZ, 0.5, 180);(функция на форуме лежит, с телефона пишу, копировать не смогу)
if(IsPlayerInRangeOfPoint(i,1.0, positionX, positionY, positionZ);

Теперь игрок ударит противника, который только перед ним

Сообщение отредактировал Sound: 08 Октябрь 2015 - 18:03

0

#26
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияSound (08 Октябрь 2015 - 18:02) писал:

Если еще не доработал то вот:
new Float: positionX, positionY, positionZ;
GetPlayerTurn(i, position X,positionY,positionZ, 0.5, 180);(функция на форуме лежит, с телефона пишу, копировать не смогу)
if(IsPlayerInRangeOfPoint(i,1.0, positionX, positionY, positionZ);

Теперь игрок ударит противника, который только перед ним

Я подобное делал в функции радиуса. Буду за своим компом, скину. Но работало на 50%. Этот вариант попробую. Спс.
0

#27
Пользователь офлайн   XVII 

  • Говнокодить - искусство
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияm1n1vv (09 Октябрь 2015 - 05:02) писал:

Я подобное делал в функции радиуса. Буду за своим компом, скину. Но работало на 50%. Этот вариант попробую. Спс.


Можно еще с GetPlayerTargetPlayer попробовать, тогда будет 100% работать только на нужного игрока
1

#28
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщения2ol (09 Октябрь 2015 - 13:27) писал:

Можно еще с GetPlayerTargetPlayer попробовать, тогда будет 100% работать только на нужного игрока

С этим были проблемы. Работало так же на 50%.
0

#29
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
0.5 Урон наносится перед игроком, а не в радиусе

Ко всем new:
new weapons[13][2];

Ко всем forward:
forward Knife100HP(playerid);
forward Knife100HPDO(playerid);

В OnPlayerKeyStateChange:
if(((newkeys & 16) && GetPlayerState(playerid)==PLAYER_STATE_ONFOOT)){
    new weap = GetPlayerWeapon(playerid);
    if(weap == 4) SetTimerEx("Knife100HP", 0, false, "i", playerid);
    return 1;
}

В конец мода:
Контр атака:
public Knife100HP(playerid){
    new Float: health;
    GetPlayerHealth(playerid, health);
    if(health <= 10) return 1;
    new vehid = GetClosestCar(playerid, 5.0);
    for(new i = 0; i < MAX_VEHICLES; i++) if(i == vehid) return 1;
    for(new w = 0; w < 13; w++) GetPlayerWeaponData(playerid, w, weapons[w][0], weapons[w][1]);
    ResetPlayerWeapons(playerid);
    ApplyAnimation(playerid, "ped", "FightA_1",4.0,0,0,0,0,0,1);
    SetPlayerAttachedObject(playerid, 6, 335, 5, 0.17, 0.0, 0.0, 0.0, 180.0, 0.0);
    SetTimerEx("Knife100HPDO", 650, false, "i", playerid);
    new Float:p[3];
    GetPlayerPos(playerid,p[0],p[1],p[2]);
    foreach(Player, i){
        if(IsPlayerInRangeOfPoint(i,3.0,p[0],p[1],p[2]))
            PlayAudioStreamForPlayer(i, "http://m1n1vv.narod.ru/phrases/knife1.mp3",p[0],p[1],p[2], 5.0,true);
        GetPlayerTurn(playerid, p[0],p[1],p[2],1.0,180);
        if(!IsPlayerConnected(i) || i == playerid) continue;
        return SetPlayerHealth(i, random(-65 - -99));
    }
    return 1;
}

Удаление ножа:
public Knife100HPDO(playerid){
    RemovePlayerAttachedObject(playerid,6);
    for (new w = 0; w < 13; w++) GivePlayerWeapon(playerid, weapons[w][0], weapons[w][1]);
    return 1;
}

stock GetClosestCar(playerid, Float:dist){ 
    new Float:x,Float:y,Float:z; 
    for(new i = 0; i < MAX_VEHICLES; i++){ 
        if(GetVehicleModel(i) == 0) continue;
        GetVehiclePos(i,x,y,z); 
        if(IsPlayerInRangeOfPoint(playerid,dist,x,y,z)) 
        return i;
    }
    return -1; 
}
stock GetPlayerTurn(playerid, &Float:x, &Float:y, &Float:z, Float:distance,turn){
    new Float:angle,Float:dis;
    dis = dis/2 - distance;
    GetPlayerPos(playerid, x, y, z),GetPlayerFacingAngle(playerid, angle);
    x += (dis * floatsin(-angle+turn, degrees)),y += (dis * floatcos(-angle+turn, degrees));
    return 1;
}

Сообщение отредактировал m1n1vv: 13 Декабрь 2015 - 14:27

0

#30
Пользователь офлайн   Eko 

  • Новичок
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Норм себе возьму.
0

Поделиться темой:


  • (4 Страниц) +
  • 1
  • 2
  • 3
  • 4
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей