Перейти к содержанию
Авторизация  
Marvellous

Умер/очнулся дома или в центре

Рекомендуемые сообщения

Marvellous

Всем добрый вечер!

У меня такой вопрос! А именно по убийству...

Т.е когда человека убивают,он если есть дом появляется дома,если нет дома то во фракции или же на вокзале,а как сделать так что бы он появился в Больнице и у него было не сразу 100 хп как сейчас,а было 1хп и по 1сек по 1хп прибовлялось? Это всю систему придется переписывать или что то изменить и все?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Rici

@Marvellous,это система больницы 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MYSTERYMAN

В колбэке OnPlayerDeath отлавливаем факт смерти юзера и присваиваем 1 переменной отведённой для этого случая, в OnPlayerSpawn заносим проверку на значение данное перменной, в случае истинности - отправляем в больницу, нет - обычный спавн. В ежесекундный таймер заносим листинг отвечающий за наращивание переменной здоровья. Когда здоровье будет соответствовать какому-либо, обнуляем переменную отвечающую за факт смерти и наш юзер может двигаться на все четыре стороны. 

 

Минимальный вид системы основываясь на описанном вами, но ход мыслей думаю вы поняли. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

@MYSTERYMAN,Ход мысли я понял! Я не понял как имеено все создать!

 

Это вообще долго и сложно делать?

P.S если кто то платно сделает то в ЛС напишите,если там для скриптера работы на 5-10 минут то может и просто.это уже на ваше усмотрение! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Rips

Создай в PlayerInfo - pHospital

 

 

В OnPlayerSpawn

if(PlayerInfo[playerid][pHospital])
{
SetPlayerPos(playerid, свои координаты);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
SetPlayerHealth(playerid, 10.0);
return 1;
}

В OnPlayerDeatch:

PlayerInfo[playerid][pHospital] = 1;

А при лечении обнуляй переменную

PlayerInfo[playerid][pHospital] = 0;
Изменено пользователем #Salev
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

 

 


В OnPlayerDeatch: PlayerInfo[playerid][pHospital] = 1; А при лечении обнуляй переменную PlayerInfo[playerid][pHospital] = 0;

А вот это куда именно? OnPlayerDeatch:  у меня нет такого и переменую куда именно не подскажешь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

И еще,добавил пока что столбец

if(PlayerInfo[playerid][pHospital])
{
SetPlayerPos(playerid, свои координаты);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
SetPlayerHealth(playerid, 10.0);
return 1;
}

Это:

PlayerInfo[playerid][pHospital] = 1;

и

PlayerInfo[playerid][pHospital] = 1;

не добавлял пока что,так как пока не знаю куда именно,чуть выше вопрос задал!

И у меня стали ерроры

C:\Users\Admin\Desktop\Мод\gamemodes\evolve.pwn(16233) : error 017: undefined symbol "pHospital"
C:\Users\Admin\Desktop\Мод\gamemodes\evolve.pwn(16235) : warning 202: number of arguments does not match definition
C:\Users\Admin\Desktop\Мод\gamemodes\evolve.pwn(16235) : warning 202: number of arguments does not match definition
C:\Users\Admin\Desktop\Мод\gamemodes\evolve.pwn(16235) : warning 202: number of arguments does not match definition
C:\Users\Admin\Desktop\Мод\gamemodes\evolve.pwn(16239) : warning 217: loose indentation
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Rips

Покажите строку: 16233

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

 

 


if(PlayerInfo[playerid][pHospital])

Вот она

if(PlayerInfo[playerid][pHospital])

Но у меня так 

if(PTEMP[playerid][pHospital])

У меня PlayerInfo  нет,у меня PTEMP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Rips

Покажите еще строку 16235

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

,

if(PTEMP[playerid][pHospital]) // строка 16233
    { // строка 16234
		SetPlayerPos(playerid, 1991.0389,543.7807,13.1636); // строка 16235
		SetPlayerVirtualWorld(playerid, 0); // строка 16236
		SetPlayerInterior(playerid, 0); // строка 16237
		SetPlayerHealth(playerid, 10.0); // строка 16238
    return 1; // строка 16239
    } // строка 16240 

,Все с pHospital  решил проблему,в enum pInfo добавил pHospital  теперь по поводу этих,что и куда,так как такого паблика у меня нет

PlayerInfo[playerid][pHospital] = 0;
PlayerInfo[playerid][pHospital] = 1;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Rips

Это ты добавляешь, в пикап из, которого выходят игроки

PlayerInfo[playerid][pHospital] = 0;

А Вот эту переменную ты приравниваешь, когда игрока убили 

В этот паблик public OnPlayerDeath(playerid, killerid, reason)

PlayerInfo[playerid][pHospital] = 1;
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

,

 

 

Это ты добавляешь, в пикап из, которого выходят игроки

 

Ссори вот это так и не понял!

 

И после появления у игрока будет пополняться автоматом хп или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MYSTERYMAN

@Marvellous, я вам описал, что необходимо сделать, сейчас тема выглядит как: Напишите за меня, а я просто вставлю к себе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

 

 


А Вот эту переменную ты приравниваешь, когда игрока убили  В этот паблик public OnPlayerDeath(playerid, killerid, reason) PlayerInfo[playerid][pHospital] = 1;

Вот это я сделал,меня убили и я опять на вокзале заспавнился! Не помогло!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MYSTERYMAN

@Marvellous, вам не стоит заниматься программирование до тех пор, пока вы не научитесь воспринимать информацию и нтерпретировать её в код, вам даже предоставили то что необходимо, но воз и ныне там. Какой смысл вам заниматься этим делом, если вы просите написать за вас и не понимаете, что следует писать?

В топике даны исчерпывающие ответы и вам остаётся связать это всё в единое целое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

@MYSTERYMAN,Для чего ты пишешь не пойму? Не можешь помочь не пиши,закрой тему и все! Те кто может помочь и кому не трудно те пишут и помогают! Я не заставляю писать за меня код,я прошу...

 

И еще раз повторюсь,если что то не нравиться в какой либо теме,закрой ее и все!

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

 

Так что думаю не стоит тебе тогда в мои темы заглядывать,раз тебе в них не нравиться что я пишу!

Следующии сообщение твои просто буду отправлять жалобы и все... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

Создаёшь переменную в Enum

pHospital

Дальше в SpawnPlayer(вроде он у тебя так) вставляешь это:

if(Player[playerid][pHospital] != 0)
{
    SetPlayerPos(playerid, x, y, z координаты);
    SetPlayerInterior(playerid, ид интерьера);
    SetPlayerVirtualWorld(playerid, ид вирт. мира);
    SetPlayerHealth(playerid, 10.0);
    Player[playerid][pHospital] = 0;
    return true;
} 

Теперь в пикап, который у тебя при выходе из больницы вставь:

if(Player[playerid][pHealth] != 100.0) return SCM(playerid, цвет, "Вы должны пройти курс лечения!");

А в паблик смерти, OnPlayerDeath(как-то так) вставь это:

Player[playerid][pHospital] = 1;

Массивы замени на свои.

Вроде всё)

Изменено пользователем Shapik
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.