Уроки по коддингу от (AddonMeiker) - Игровые Форумы


Игровые Форумы > Проекты BestGamer > Корсары III: Тайны Дальних Морей > Ваше творчество
-- Уроки по коддингу от (AddonMeiker)
Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2010, 14:15   #1
Геймер Новичок

 
Отсутствует :(

Регистрация: 05.06.2010
Сообщения: 30

Репутация: 133   Добавить отзыв для AddonMeiker

Хорошо Уроки по коддингу от (AddonMeiker)

Здравствуйте Урок по коддингу (проверка имени перса и действия всё собрано в функцию)

Код:
void CheckMyPcharName(pchar.name){

   if(pchar.name == MyNameIsTEST) {
         //Если имя нашего перса МуНамеИсТЕСТ то действие
    }
    else {
         //Если нет то действие
    }
}
To bee Continued...

Последний раз редактировалось dima12, 06.06.2010 в 15:39.
    Ответить с цитированием
Старый 06.06.2010, 14:28   #2
Геймер Новичок

 
Отсутствует :(

Регистрация: 05.06.2010
Сообщения: 30

Репутация: 133   Добавить отзыв для AddonMeiker

По умолчанию

Урок по коддингу (проверка сколько денег заделано в функцию)

//> БОЛЬШЕ
//< МЕНШЕ

Код:
void CheckMyMoney(pchar.money) {

    if(pchar.money >= 1000) { //Действие } 
    else { //Действие }

    if(pchar.money <= 1000) { //Действие }
    else { //Действие } 
}
//Вызов
CheckMyMoney();

Последний раз редактировалось dima12, 06.06.2010 в 15:41.
    Ответить с цитированием
Старый 06.06.2010, 14:35   #3
Геймер Новичок

 
Отсутствует :(

Регистрация: 05.06.2010
Сообщения: 30

Репутация: 133   Добавить отзыв для AddonMeiker

По умолчанию

Урок по коддингу (вызвать функцию из файла)

создадим 2 файла
test12345.c and testruner.c

в test12345.c запишем
Код:
void TestCharacter(CharacterFromId()) {
    CharacterFromID();
}
а в testruner.c
Код:
include "test12345.c";
TestCharacter();
всё функция вызвана

Последний раз редактировалось dima12, 06.06.2010 в 15:42.
    Ответить с цитированием
Старый 12.06.2010, 20:51   #4
Геймер Новичок

 
Отсутствует :(

Регистрация: 05.06.2010
Сообщения: 30

Репутация: 133   Добавить отзыв для AddonMeiker

Лампочка Программа просмотра моделий к К3

Здравствуйте решил написать вам исходник моих тестов загрузки
3D Моделий из игры К3 нет нет нет вам ненужно качать С++ компилятора и прочие штуки ненужно уметь кодить на С++ нужно всего знать основы К3 Скриптинга и уметь скомпилить мой код на ШТОРМЕ (как скомпилить писал в теме Уроки по коддингу от AddonMeiker) и так начнём всем известно что при загрузке мира игры и конечно моделий скриптинг чирпаит функцию загрузки у двига то йсть что мешает нам написать загрузку моделий формата К3? На скриптах движка да нечего не мешате значит напишем сийчяс.

//создали функцию и так по параметрам можно узнать что первая строка черпает название модели для загрузки из переменной или дефиниты а остальные кординаты отображения модели.
//&& || and = Логические (И)

Код:
#define ModelName "ModelName";
void Load3DK3Model(string ModelName,int posx,int posy, int posz)
{
if(!ModelName && posx || posy and posz) { ExitProgram(); //ERROR IF DON'T CORRECT } else { //ALL OK CONTINUE
float x;
float y;
float z;
if('FLOAT' == posx) { //CONTINUE 
#extern_program "ModelName" } else { ExitProgram(); //ERROR IF DON'T CORRECT }
if('FLOAT' == posy) { //CONTINUE
#extern_program "ModelName" } else { ExitProgram(); //ERROR IF DON'T CORRECT }
IF('FLOAT' == posz) { //Если все проверки пройдены то грузим модель
SendMessage(&&iiiii, "loadmodel", ". RESOURCE/Models/ModelName .");
} else { //Если непройдены выходим из проги
ExitProgram(); }
}
теперь компилим на ШТОРМЕ впишим название модели в дефиниту т,е сотрём то что в стрингах и вставим имя модели для загрузки код дальше понятен я думаю а скомпилить очь просто сохраним код как 3dloag.c заходим в енгине конфиг и меняем выполняем файл с seadogs.c на 3dload.c и незабудьте потом когда захотите поиграть обратно изменить а то будете гадать чё нетак ГЫ ГЫ. а забыл написать как запустить просто запускаем игру и вместо игры наш код
С уважением АддонМейкер Удачи вам

Последний раз редактировалось AddonMeiker, 12.06.2010 в 20:54.
   
__________________
C/C++ Good


Ответить с цитированием
Старый 18.06.2010, 21:17   #5
Геймер Новичок

 
Отсутствует :(

Регистрация: 05.06.2010
Сообщения: 30

Репутация: 133   Добавить отзыв для AddonMeiker

По умолчанию

Приветствутю скоро уроки со всеми из данных функций



Код:
//открываем квест в судовом журнале
SetQuestHeader(string idQuest)

//делаем запись в судовом журнале....
AddQuestRecord(string idQuest,string idText)

//закрываем квест в суд. журнале
CloseQuestHeader(string idQuest)

//проверить флаг состояние квеста...
CheckQuestAttribute(string attributeName, string attributeValue)

//удалить флаг состояния квеста
DeleteQuestAttribute(string attributeName)

//установить персонажа в ближайший локатор группы goto (но не ближе минимальной дистанции)
SetCharacterToNearLocatorFromMe(string characterID, float minDistance)

//получить ссылку на персонаж через его ID-шник
CharacterFromID(string characterID)

//пропустить некоторое время с фэйдом экрана
WaitDate(string postName,int year, int month, int day, int hour, int minute)

//установить камеру на просмотр корабля персонажа и вызвать квест через заданное число секунд
SetCameraToShipView(string characterName, string questCheckName, float viewTimeInSec)

//Закрыть все выходы на море в районе расположения своего корабля
QuestCloseSeaExit()

//Открыть все выходы на море в районе расположения своего корабля
QuestOpenSeaExit()

//найти локатор в локации по имени
FindLocator(string locationName, string locatorName, ref locatorRef, bool fromRealLoadedLocators)

//проверить попадает ли координата в заданный локатор в текущей локации
CheckCurLocator(string group,string locator,float x,float y,float z)

//заменить один локатор на новый адрес перегрузкии
ChangeReloadData(string locationName,string locatorName, string toLocationName,string toLocatorName)

//вернуть локатору старый адрес перегрузки
ChangeBackReloadData(string locationName,string locatorName)

//вызвать проверку квеста через заданное число секунд
DoQuestCheckDelay(string questCheckName, float delayInSecond)

//хм... выход наверное
DoQuestDelayExit()

//Временно сохранить все данные о нашем корабле в памяти
ShipTempRemove(ref _refCharacter)

//Восстановить данные о нашем старом корабле из памяти
RestoreTempRemovedShip(ref _refCharacter)

//Обменять двух персонажей кораблями
ExchangeCharacterShip(ref oneCharacter, ref twoCharacter)

//Задать квест, выполняемый после выхода из диалога
AddDialogExitQuest(string questName)

//Перегрузить главного персонажа в другую локацию и по завершению вызвать квест
DoQuestReloadToLocation(string idLocation, string idGroup, string idLocator, string questName)

//Перегрузить главного персонажа в другую локацию
DoReloadCharacterToLocation(string idLocation, string idGroup, string idLocator)

//Перегрузить главного персонажа в другую локацию из карты мира
DoReloadFromWorldMapToLocation(string idLocation, string idGroup, string idLocator)

//назад наверное перезагрузка....
ReloadFromWMtoL_complete()

//Перегрузить главного персонажа в другую локацию из моря
DoReloadFromSeaToLocation(string idLocation, string idGroup, string idLocator)

//назад в море
EndReloadToLocation()

//Удалить квест из списка проверяемых квестов
DeleteQuestCheck(string sQuestName)

//Получить полное имя персонажа
GetCharacterFullName(string idCharacter)

//Сохранить состояние о пассажирах во временной переменной и временно удалить их всех
StorePassengers(string idCharacter)

//Восстановить запомненных ранее пассажиров и по возможности офицеров
RestorePassengers(string idCharacter)

//Смотрим на какого нибудь персонажа
StartLookAftepchararacter(string idCharacter)

//Прекратили смотреть на персонаж
EndLookAftepchararacter()

//восстановить персонаж (на случай, если он был до этого убит)
ReanimateCharacter(string characterID)

//установить случайное имя для персонажа
SetCharacterRandomName(string characterID)

//обработка события об уничтожении форта
QuestFortDestroyed()

//обработка события об захвате форта
QuestFortCaptured()

//о захвате корабля....
QuestShipCaptured()

//хм... о смерти группы видимо
QuestGroupDeath()

//подготовиться к выгрузке в море по квесту
QuestToSeaLogin_PrepareLoc(string islandID, string locGroup, string locName, bool sailUP)

//подготовить персонажа для выгрузки в море по квесту
QuestToSeaLogin_Add(string groupName)

//запустить квестовую выгрузку в море
QuestToSeaLogin_Launch()

//убрать из локации всех персов указанного типа
RemoveCharactersFromLocation(string idLocation, string modelName, string type)



//------------------------------------------------------------------------------------------
//Character types
//------------------------------------------------------------------------------------------

//Установить персонажу тип игрока
void LAi_SetPlayerType(aref chr);

//Установить персонажу тип офицера
void LAi_SetOfficerType(aref chr);

//Установить персонажу тип горожанина
void LAi_SetCitizenType(aref chr);
//Установить персонажу тип горожанина, без перемещения в группу
void LAi_SetCitizenTypeNoGroup(aref chr);

//Установить персонажу тип стражника
void LAi_SetGuardianType(aref chr);
//Установить персонажу тип стражника, без перемещения в группу
void LAi_SetGuardianTypeNoGroup(aref chr)

//Установить персонажу тип патруля
void LAi_SetPatrolType(aref chr);
//Установить персонажу тип патруля, без перемещения в группу
void LAi_SetPatrolTypeNoGroup(aref chr);

//Установить персонажу тип война
void LAi_SetWarriorType(aref chr);
//Установить персонажу тип война, без перемещения в группу
void LAi_SetWarriorTypeNoGroup(aref chr);
//Установить войну командира
void LAi_warrior_SetCommander(aref chr, aref commander);
//Разрешить или запретить диалоги для война
void LAi_warrior_DialogEnable(aref chr, bool isEnable);
//Сказать войну стоять при отсутствие целей
void LAi_warrior_SetStay(aref chr, bool isStay);

//Установить персонажу тип уличного торговца
void LAi_SetMerchantType(aref chr);
//Установить персонажу тип торговца, без перемещения в группу
void LAi_SetMerchantTypeNoGroup(aref chr);

//Установить персонажу тип стоячего
void LAi_SetStayType(aref chr);
//Установить персонажу тип стоячего, без перемещения в группу
void LAi_SetStayTypeNoGroup(aref chr);

//Установить персонажу тип сидячего
void LAi_SetSitType(aref chr);
//Установить персонажу тип сидячего, без перемещения в группу
void LAi_SetSitTypeNoGroup(aref chr);

//Установить персонажу тип бармена (only man)
void LAi_SetBarmanType(aref chr);
//Установить персонажу тип официантки, без перемещения в группу (only man)
void LAi_SetBarmanTypeNoGroup(aref chr);

//Установить персонажу тип официантки (only woman)
void LAi_SetWaitressType(aref chr);
//Установить персонажу тип официантки, без перемещения в группу (only woman)
void LAi_SetWaitressTypeNoGroup(aref chr);

//Установить персонажу тип бедника
void LAi_SetPoorType(aref chr);
//Установить персонажу тип бедника, без перемещения в группу
void LAi_SetPoorTypeNoGroup(aref chr);

//Установить персонажу тип губернатора
void LAi_SetHuberType(aref chr);
//Установить персонажу тип губернатора, без перемещения в группу
void LAi_SetHuberTypeNoGroup(aref chr);

//Установить персонажу тип губернатора, ходячего по комнате
void LAi_SetHuberStayType(aref chr);
//Установить персонажу тип губернатора, ходячего по комнате, без перемещения в группу
void LAi_SetHuberStayTypeNoGroup(aref chr);
//Указать губернатору точку возле карты
void LAi_SetStayHuberPointMap(aref chr, string group, string locator);
//Указать губернатору точку возле окна
void LAi_SetStayHuberPointWindow(aref chr, string group, string locator);

//Установить персонажу тип священика
void LAi_SetPriestType(aref chr);
//Установить персонажу тип священика, без перемещения в группу
void LAi_SetPriestTypeNoGroup(aref chr);

//Установить персонажу тип актёра
void LAi_SetActorType(aref chr);
//Установить персонажу тип актёра, без перемещения в группу
void LAi_SetActorTypeNoGroup(aref chr);


//------------------------------------------------------------------------------------------
//Actor
//------------------------------------------------------------------------------------------
//
// параметр quest:
//           если "" то никакой реакции по окончанию действия не будет
//           если "questName" то по окончанию действия сработает указанный квест
// параметр timeout:
//           если -1 то задание будет выполняться, пока не выполниться
//           если >= 0 то по истечении заданного времени просимулируется выполнение задания в секундах
//
//
// команды актёру можно отдавать только когда он загружен в локацию
//
//
//------------------------------------------------------------------------------------------

//Указать актёру стоять, нелочиться
void LAi_ActorStay(aref chr);

//Указать актёру идти в заданный локатор, лочиться
void LAi_ActorGoToLocator(aref chr, string group, string locator, string quest, float timeout);
//Указать актёру бежать в заданный локатор, лочиться
void LAi_ActorRunToLocator(aref chr, string group, string locator, string quest, float timeout);

//Указать актёру идти в заданную локацию, лочиться
void LAi_ActorGoToLocation(aref chr, string groupExit, string locatorExit, string locID, string groupEnter, string locatorEnter, string quest, float timeout);
//Указать актёру бежать в заданную локацию, лочиться
void LAi_ActorRunToLocation(aref chr, string groupExit, string locatorExit, string locID, string groupEnter, string locatorEnter, string quest, float timeout);

//Указать актёру cледовать за персонажем в пределах локации, лочиться до подхода
//При первом подходе или истечении времени сработает квест
void LAi_ActorFollow(aref chr, aref follow, string quest, float timeout);

//Указать актёру cледовать за персонажем по всем локациям, нелочиться
//При первом подходе или истечении времени сработает квест
void LAi_ActorFollowEverywhere(aref chr, string quest, float timeout);

//Указать актёру на кого напасть, лочиться
void LAi_ActorAttack(aref chr, aref enemy, string quest);

//Указать актёру бояться другого персонажа, нелочиться
void LAi_ActorAfraid(aref chr, aref by, bool canMove);

//Активировать диалог между актёром и другим персонажем с подходом друг к другу, лочиться
void LAi_ActorDialog(aref chr, aref to, string quest, float timeout, float dlgTime);
//Активировать диалог между актёром и другим персонажем немедленно, лочиться
void LAi_ActorDialogNow(aref chr, aref to, string quest, float dlgTime);
//Активировать диалог с самим собой, лочиться
void LAi_ActorSelfDialog(aref chr, string quest);
//Указать актёру стоять и ждать диалог, лочиться
void LAi_ActorWaitDialog(aref chr, aref by);

//Проиграть анимацию для актёра, по окончанию вызвать квест, лочиться
//Если анимация зацикленна, то квест вызовется по истечению времени
void LAi_ActorAnimation(aref chr, string animation, string quest, float timeout);

//Ориентировать актёра на персонажа (одноразово), нелочиться
void LAi_ActorTurnToCharacter(aref chr, aref to);
//Ориентировать актёра по локатору, нелочиться
void LAi_ActorTurnByLocator(aref chr, string group, string locator);
//Ориентировать актёра на локатор, нелочиться
void LAi_ActorTurnToLocator(aref chr, string group, string locator);

//Установить анимацию стоячего персонажа, модификатор idle-анимации
void LAi_ActorSetStayMode(aref chr);
//Установить анимацию сидячего персонажа, модификатор idle-анимации
void LAi_ActorSetSitMode(aref chr);
//Установить анимацию лежачего персонажа
void LAi_ActorSetLayMode(aref chr);

//Перейти в состояние ожидания новой команды, пользоваться этой функцией не рекомендуется
void LAi_type_actor_Reset(aref chr)

//------------------------------------------------------------------------------------------
//Characters control
//------------------------------------------------------------------------------------------

//Установить время загрузки персонажа
void LAi_SetLoginTime(aref chr, float start, float end);
//Удалить время загрузки персонажа
void LAi_RemoveLoginTime(aref chr);
//Данный персонаж является верующим, и в определённое время находиться в церкви
void LAi_SetFanatic(aref chr, string churchID, strung group, string locator, float start, float end);
//Сделать обычным персонаж
void LAi_RemoveFanatic(aref chr);
//Запретить перерождение персонажа после убийства
void LAi_NoRebirthEnable(aref chr);
//Разрешить перерождение персонажа после убийства
void LAi_NoRebirthDisable(aref chr);
//Разрешить/запретить персонажу загружаться в захваченную локацию
void LAi_LoginInCaptureTown(aref chr, bool isEnable);

//Установить хитпойнты
void LAi_SetHP(aref chr, float cur, float max);
//Установить текущии хитпойнты
void LAi_SetCurHP(aref chr, float cur);
//Установить текущии хитпойнты максимальными
void LAi_SetCurHPMax(aref chr);
//Скорость изменения хп в секунду
void LAi_SetDltHealth(aref chr, float healthPerSec);
//Использовать бутылочку
void LAi_UseHealthBottle(aref chr, float healthInBottle);
//Сделать персонажа бессмертным
void LAi_SetImmortal(aref chr, bool isImmortal);
//Получить хп персонажа
float LAi_GetCharacterHP(aref chr);
//Получить максимальные хп персонажа
float LAi_GetCharacterMaxHP(aref chr);
//Получить относительные хп персонажа 0..1
float LAi_GetCharacterRelHP(aref chr);
//Получить относительную энергию персонажа 0..1
float LAi_GetCharacterRelEneggy(aref chr);

//Установить проверяльщик хп, если их становиться меньше чем, вызвать квест
void LAi_SetCheckMinHP(aref chr, float min, bool immortal, string quest);
//Удалить проверяльщик хп
void LAi_RemoveCheckMinHP(aref chr);

//Убить персонажа
void LAi_KillCharacter(aref chr);
//Убит ли персонаж
bool LAi_IsDead(aref chr);

//Получить относительный заряд пистолета
float LAi_GetCharacterRelCharge(aref chr);

//Запретить диалог с персонажем
void LAi_CharacterDisableDialog(aref chr);
//Разрешить диалог с персонажем
void LAi_CharacterEnableDialog(aref chr);

//Разрешить при смерти порождить фантома
void LAi_CharacterReincarnation(aref chr, bool isEnable, bool isUseCurModel);

//Скил fencing для персонажа при логине выставляется относительно игрока
void LAi_SetAdjustFencingSkill(aref chr, float min, float max);
//Удалить выставлялку скила
void LAi_DelAdjustFencingSkill(aref chr);


//Проиграть звук
void LAi_CharacterPlaySound(aref chr, string soundname);

//Переключиться в режим боя и обратно
void LAi_SetFightMode(aref chr, bool isFightMode);
//Заблокировать текущий режим (!!! сбрасывается при смене шаблона !!!)
void LAi_LockFightMode(aref chr, bool isLockFightMode);
   
__________________
C/C++ Good


Ответить с цитированием
Старый 24.06.2010, 00:21   #6
Геймер Новичок

 
Отсутствует :(

Регистрация: 05.06.2010
Сообщения: 30

Репутация: 133   Добавить отзыв для AddonMeiker

Лампочка

Здравствуйте урок как сделать ГГ или перса неуязвимым и обратно на самом деле очень просто
Код:
LAi_SetImmortal(Pchar, true);
вот и всё ГГ неуязвим а если хотите обратно уязвимым зделать то вместо true пишем false теперь расмотрем пример работы с персами по ID
Код:
LAi_SetImmortal(CharacterFromID("TestCharacter"), true);
вместо ТестЧхарацтер пишем ID Перса всё остальное как у ГГ вот и всё.

Последний раз редактировалось AddonMeiker, 24.06.2010 в 00:23.
   
__________________
C/C++ Good


Ответить с цитированием
Старый 24.06.2010, 00:41   #7
BGTeam
 
 Аватар для dima12
 
Отсутствует :(

Регистрация: 13.06.2007
Адрес: Йошкар-Ола
Сообщения: 2,134

Репутация: 2079   Добавить отзыв для dima12

По умолчанию

В чём смысл уроков если они не приследуют конкретную цель?
Описание изменения входных атрибутов функций - это не урок.
   
__________________
Я бунтую, следовательно, я живу!!
cерия: "Тайны Дальних Морей"


Ответить с цитированием
Старый 24.06.2010, 00:43   #8
Геймер Новичок

 
Отсутствует :(

Регистрация: 05.06.2010
Сообщения: 30

Репутация: 133   Добавить отзыв для AddonMeiker

По умолчанию

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

Здравствуйте по замечанию что в моих уроках нету целы что я уже и сам понял решил написать урок по созданию простого квеста.

Код:
case "TestQuest":
Pchar.quest.TestQuest.win_condition.l1 = "ExitFromLocation";
Pchar.quest.TestQuest.location.l1 = "Pchar.location";
Pchar.quest.TestQuest.win_condition = "nextquest";
break;
сохраним в PROGRAM/quest/story_line.c а вызвать можно очень просто
Код:
AddDialogExitQuest("TestQuest");
тойсть после выхода из диалога вызвать квест под именем которое указано в переменной string.
и так в данном квесте мы удачно завершаем квест если ГГ выйдет из той локации где он находиться сейчяс и после чего будет переход на квест(кейс) nextquest.
Скоро продолжение уроков по созданию квестов.

Последний раз редактировалось dima12, 25.06.2010 в 11:34.
   
__________________
C/C++ Good


Ответить с цитированием
Старый 24.06.2010, 10:09   #9
BGTeam
 
 Аватар для Kopcap
 
Отсутствует :(

Регистрация: 17.10.2006
Адрес: Пермь
Сообщения: 3,808

Репутация: 2512   Добавить отзыв для Kopcap

По умолчанию

Цитата:
Сообщение от AddonMeiker
Здравствуйте по замечанию что в моих уроках нету целы что я уже и сам понял решил написать урок по созданию простого квеста.

этот "урок" тоже ни о чем.
К тому же я несколько лет назад это все у нас на форуме уже описывал. Можно без труда найти=) + можно найти список фунций с комменатариями небольшими по их работе.

Последний раз редактировалось dima12, 25.06.2010 в 11:33.
   
__________________
Нужный человек не в том месте может перевернуть мир!


Ответить с цитированием
Старый 19.08.2010, 23:40   #10
Геймер
 
 Аватар для VladAtamanUa
 
Отсутствует :(

Регистрация: 13.02.2010
Сообщения: 61

Репутация: 99   Добавить отзыв для VladAtamanUa

По умолчанию

Не ругайте AddonMeikerа, он выложил список ООООЧень полездных функций ! Пусть продолжает
    Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уроки Fallout 3 BestGamer.Ru 2009 0 31.01.2009 17:09
НЕсерьезные уроки. Английский. Сборник BestGamer.Ru 2007 0 02.12.2007 18:53
Уроки по коддингу. Flint Ваше творчество 5 24.03.2007 11:55


Часовой пояс GMT +4, время: 18:42

Архив  


Рейтинг@Mail.ru Rambler's Top100

© Copyright 2007-2015 BestGamer.Ru

vBulletin, Copyright © Jelsoft Enterprises Ltd.