Понедельник, 25 Ноября 2024, 19:22

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
harmoxyneДата: Суббота, 12 Мая 2012, 18:59 | Сообщение # 401 | Тема: Делать русский сайт?
заслуженный участник
Сейчас нет на сайте
DasTem, хорошо знаю Еклипс, хорошо знаю английский, более-менее знаю VB6.
Если что, спроси скайп в личке.
harmoxyneДата: Пятница, 11 Мая 2012, 21:40 | Сообщение # 402 | Тема: Какую музыку вы слушаете?
заслуженный участник
Сейчас нет на сайте
Рок не умрет, ребята smile
harmoxyneДата: Среда, 09 Мая 2012, 21:38 | Сообщение # 403 | Тема: .
заслуженный участник
Сейчас нет на сайте
Очень хороший человек. Помог со сценарием за "Спасибо" happy
harmoxyneДата: Вторник, 08 Мая 2012, 21:27 | Сообщение # 404 | Тема: [VB6] Случайный заголовок
заслуженный участник
Сейчас нет на сайте
shizofren, спасибо, отлично работает, то что нужно happy
harmoxyneДата: Воскресенье, 06 Мая 2012, 11:02 | Сообщение # 405 | Тема: [VB6] Случайный заголовок
заслуженный участник
Сейчас нет на сайте
Quote (reyzor)
радомом выбираешь один из них

Вот это меня интересует. Допустим, назовем массив Sovety, и как сделать рандомный выбор этого?
harmoxyneДата: Воскресенье, 06 Мая 2012, 10:07 | Сообщение # 406 | Тема: [VB6] Случайный заголовок
заслуженный участник
Сейчас нет на сайте
Добрый день, программеры. Мне нужна небольшая помощь. Дописывая EO, я столкнулся с идеей... Что-то типа случайных советов. То есть, пока игра загружается, ты видишь на экране совет, который каждый раз выбирается случайно из заданных.
И решил я реализовать это так.
Создаем Label, пускай это будет lblSovet, размещаем его в нужном нам месте, и... дальше я не придумал.
В чем сам вопрос, как сделать, что бы lblSovet.caption каждый раз при запуске программы выбирался случайным образом из заданного списка возможных? wacko
Если что-то не понятно, я могу рассказать подробнее smile
harmoxyneДата: Воскресенье, 06 Мая 2012, 09:26 | Сообщение # 407 | Тема: Конструктор онлайн игр
заслуженный участник
Сейчас нет на сайте
Quote (Radjerson)
онлайн игру

и
Quote (Radjerson)
конструктор

Это не очень совместимые вещи... Да и я так понял, что ты хочешь создать игру с разрушением, крафтом, и т.д.
Тут два пути.
1. Учить язык программирования, брать сложный движок, кодить, кодить, кодить...
2. Создать свой сервер Minecraft biggrin
harmoxyneДата: Суббота, 05 Мая 2012, 10:00 | Сообщение # 408 | Тема: ДеОбломай-ка
заслуженный участник
Сейчас нет на сайте
Потом проснулся, и понял, что это страшный сон.
Услышал песню Бибера cry
harmoxyneДата: Суббота, 05 Мая 2012, 09:12 | Сообщение # 409 | Тема: Школьники бросают кирпичами в машины
заслуженный участник
Сейчас нет на сайте
Quote (Bazket)
они герои страны! не то что вы, комнатные герои. самим выйти и так слабо?

Нет, не слабо. Вот только скажи, зачем? Что мне это даст? А если человек долгое время копил на эту машину, утром просыпается, а она разбита малолетней школотой... Поставь себя на его место
Quote (MyACT)
Вообще не понимаю что с моими сверстниками происходят...

Да сам в шоке...
harmoxyneДата: Пятница, 04 Мая 2012, 20:22 | Сообщение # 410 | Тема: Школьники бросают кирпичами в машины
заслуженный участник
Сейчас нет на сайте
Они просто не понимают, что машина - это не такое дешевое удовольствие... dry
harmoxyneДата: Пятница, 04 Мая 2012, 17:39 | Сообщение # 411 | Тема: Как сделать русский текст в EO
заслуженный участник
Сейчас нет на сайте
Многие из вас собираются сделать убийцу WoW на Eclipse... Но видят проблему со шрифтом, и выкидывают его к чертям...
Так вот, есть решение этой проблемы. Начнем...
1. Скачиваем Visual Basic 6, устанавливаем.
2. Скачиваем исходный код движка, открываем.
3. Открываем вкладки как показано на рисунках, и выставляем шрифт как на рисунке.
4. Пользуемся русским языком в EO.




Сообщение отредактировал QNicolya - Пятница, 05 Октября 2012, 22:42
harmoxyneДата: Суббота, 28 Апреля 2012, 18:42 | Сообщение # 412 | Тема: [2D] Fire of the War
заслуженный участник
Сейчас нет на сайте
Будь мужиком, выпусти игру про танк 9 мая biggrin
Мне нравится.
harmoxyneДата: Воскресенье, 22 Апреля 2012, 11:51 | Сообщение # 413 | Тема: Ошибка в Xtreme Worlds
заслуженный участник
Сейчас нет на сайте
pelmenka, знаю, что тема стара, но если кому-то понадобится.
Ошибка №9 возникает, если заданного объекта в проекте нету.
То есть, к примеру, что-то обращается к структуре InitServer, но самого InitServer в проекте нету.
Как-то так)
harmoxyneДата: Воскресенье, 22 Апреля 2012, 11:26 | Сообщение # 414 | Тема: Квестовая система для EO 2.0
заслуженный участник
Сейчас нет на сайте
issiddima, может вам и готовую игру скинуть? dry
Во-первых, это не патч.
Во-вторых, не пишите капсом.
Во-третьих, я использую не эту систему квестом, а собственноручно написанную, и клиента с этой версией у меня нет.

Добавлено (22.04.2012, 11:26)
---------------------------------------------
Но все же, решил вас помиловать, в шапку выложил готовый клиент.

harmoxyneДата: Воскресенье, 22 Апреля 2012, 11:21 | Сообщение # 415 | Тема: Вопросы по созданию ММОГ
заслуженный участник
Сейчас нет на сайте
stalker5889, а это идея, создать ММО Тетрис biggrin
Вообще, я тоже думал, что все вокруг криворукие, у которых ничего не получается, а я возьму какой-то конструктор, и заработаю миллиарды...
Увы и ах, это не так... С обычными конструкторами можно заработать только геморой sad
Я вот например, взял скелет Eclipse (тот который для 2д мморпг), и вот, по-тихоньку переписываю его под свои нужды.
Нужно искать не готовое, а найти сырое, и сделать его готовым.
harmoxyneДата: Понедельник, 09 Апреля 2012, 20:31 | Сообщение # 416 | Тема: У кого Radeon-ы, потестите экзешник.
заслуженный участник
Сейчас нет на сайте
Quote (Serg1971)
ЗЫ. В принципе, владельцы других видеокарт - можете качать и отписывать как у вас дело пошло.

NVidia GeForce 9500 GT dry
harmoxyneДата: Воскресенье, 08 Апреля 2012, 21:40 | Сообщение # 417 | Тема: Угадай, кто ответит?
заслуженный участник
Сейчас нет на сайте
vasua99, нет я не следующий нуб
Следующий ответит кот, замаскированный под собаку, которая замаскированна под человека. dry
harmoxyneДата: Пятница, 06 Апреля 2012, 13:33 | Сообщение # 418 | Тема: Ищу мануалы по RPG Studio
заслуженный участник
Сейчас нет на сайте
Eraser, а своими силами переделать никак? Исходный код есть, изображения есть, граф. редакторов полно happy
harmoxyneДата: Четверг, 05 Апреля 2012, 10:20 | Сообщение # 419 | Тема: Android и мощность процессора
заслуженный участник
Сейчас нет на сайте
Купил себе в декабре LG P690, 800 МГц на нем стоит, и Арм6... Идут игры почти все (на одном сайте есть много разных игр для арм6 конвертированых с арм7, обращайтесь в ЛС). Глючит очень редко, вчера например по ошибке, запустил Яндекс.Шелл(лаунчер), скайп, оперу, гугл+, и еще какую-то игру. Подвис конкретно, пришлось перезагружать. Но вообще телефон хороший, мне нравится. happy
harmoxyneДата: Пятница, 30 Марта 2012, 21:00 | Сообщение # 420 | Тема: Квестовая система для EO 2.0
заслуженный участник
Сейчас нет на сайте
И так, пока делаю свою игрулину, нашел на форуме эклипса квестовую систему... Очень проста в использовании (хоть я и пользуюсь другой), и не слишком багнутая.
И так, начнем.
- Вот так она будет выглядеть в конце нашего урока.
Code
Как это работает?
В чате нужно написать /editquest, и откроется окно редактирования

Сторона сервера
1. Добавьте modSvQuest в ваш проект.
2. В modCombat найдите
Code
If Len(Trim$(NPC(npcNum).AttackSay)) > 0 Then
, и после Else вставьте
Code
                        If NPC(npcNum).Behaviour = NPC_BEHAVIOUR_FRIENDLY Then
                     Call CheckTasks(attacker, QUEST_TYPE_GOTALK, npcNum)
                     Call CheckTasks(attacker, QUEST_TYPE_GOGIVE, npcNum)
                     Call CheckTasks(attacker, QUEST_TYPE_GOGET, npcNum)
                        
                     If NPC(npcNum).Quest = YES Then
                      If CanStartQuest(attacker, NPC(npcNum).QuestNum) Then
                      'if can start show the request message (chat1)
                      QuestMessage attacker, NPC(npcNum).QuestNum, Trim$(Quest(NPC(npcNum).QuestNum).Chat(1)), NPC(npcNum).QuestNum
                      Exit Function
                      End If
                      If QuestInProgress(attacker, NPC(npcNum).QuestNum) Then
                      'if the quest is in progress show the meanwhile message (chat2)
                      PlayerMsg attacker, Trim$(NPC(npcNum).Name) + ": " + Trim$(Quest(NPC(npcNum).QuestNum).Chat(2)), BrightGreen
                      'QuestMessage attacker, NPC(npcNum).QuestNum, Trim$(Quest(NPC(npcNum).QuestNum).Chat(2)), 0
                      Exit Function
                      End If
                     End If
                           End If

3. Там же найдите Sub PlayerAttackNpc, в ней
Code
' send death to the map
и сразу за ним вставьте
Code
Call CheckTasks(attacker, QUEST_TYPE_GOSLAY, npcNum)

В той же Sub PlayerAttackNPC найдите
Code
Call OnDeath(victim)
и вставьте после него
Code
Call CheckTasks(attacker, QUEST_TYPE_GOKILL, victim)

4.Заходим в modGeneral.
5. Ищем InitServer, и после
Code
ChkDir App.Path & "\Data\", "spells"
вставляем
Code
ChkDir App.Path & "\Data\", "quests"

6. Ищем ClearGameData, находим
Code
Call ClearAnimations
, и за ним ставим
Code
Call SetStatus("Clearing quests...")
Call ClearQuests

7. Находим LoadGameData, ищем
Code
Call LoadAnimations
и за ним вставляем
Code
Call SetStatus("Loading quests...")
Call LoadQuests

8.Заходим в modHandleData
9. Ищем
Code
HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave)
, и за ним вставляем
Code
HandleDataSub(CRequestEditQuest) = GetAddress(AddressOf HandleRequestEditQuest)
       HandleDataSub(CSaveQuest) = GetAddress(AddressOf HandleSaveQuest)
       HandleDataSub(CRequestQuests) = GetAddress(AddressOf HandleRequestQuests)
       HandleDataSub(CPlayerHandleQuest) = GetAddress(AddressOf HandlePlayerHandleQuest)
       HandleDataSub(CQuestLogUpdate) = GetAddress(AddressOf HandleQuestLogUpdate)

10. В самый конец модуля добавляем
Code
Sub HandleRequestEditQuest(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       Dim Buffer As clsBuffer

       ' Prevent hacking
       If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
           Exit Sub
       End If

       Set Buffer = New clsBuffer
       Buffer.WriteLong SQuestEditor
       SendDataTo Index, Buffer.ToArray()
       Set Buffer = Nothing
End Sub

Sub HandleSaveQuest(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       Dim n As Long
       Dim Buffer As clsBuffer
       Dim QuestSize As Long
       Dim QuestData() As Byte
       Set Buffer = New clsBuffer
       Buffer.WriteBytes Data()

       ' Prevent hacking
       If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
           Exit Sub
       End If

       n = Buffer.ReadLong 'CLng(Parse(1))

       If n < 0 Or n > MAX_QUESTS Then
           Exit Sub
       End If
          
       ' Update the Quest
       QuestSize = LenB(Quest(n))
       ReDim QuestData(QuestSize - 1)
       QuestData = Buffer.ReadBytes(QuestSize)
       CopyMemory ByVal VarPtr(Quest(n)), ByVal VarPtr(QuestData(0)), QuestSize
       Set Buffer = Nothing
          
       ' Save it
       Call SendUpdateQuestToAll(n)
       Call SaveQuest(n)
       Call AddLog(GetPlayerName(Index) & " saved Quest #" & n & ".", ADMIN_LOG)
End Sub

Sub HandleRequestQuests(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       SendQuests Index
End Sub

Sub HandlePlayerHandleQuest(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       Dim Buffer As clsBuffer
       Dim QuestNum As Long, Order As Long, i As Long
          
       Set Buffer = New clsBuffer
       Buffer.WriteBytes Data()
       QuestNum = Buffer.ReadLong
       Order = Buffer.ReadLong '1 = accept, 2 = cancel
          
       If Order = 1 Then
           Player(Index).PlayerQuest(QuestNum).Status = QUEST_STARTED '1
           Player(Index).PlayerQuest(QuestNum).ActualTask = 1
           Player(Index).PlayerQuest(QuestNum).CurrentCount = 0
           PlayerMsg Index, "New quest accepted: " & Trim$(Quest(QuestNum).Name) & "!", BrightGreen
           'Add item on start
           If Quest(QuestNum).QuestGiveItem > 0 And Quest(QuestNum).QuestGiveItem < MAX_ITEMS Then
               If Quest(QuestNum).QuestGiveItemValue > 0 And Quest(QuestNum).QuestGiveItemValue < MAX_INV Then 'ToDo: stuff with currency
                   GiveInvItem Index, Quest(QuestNum).QuestGiveItem, Quest(QuestNum).QuestGiveItemValue
               End If
           End If
              
       ElseIf Order = 2 Then
           Player(Index).PlayerQuest(QuestNum).Status = QUEST_NOT_STARTED '2
           Player(Index).PlayerQuest(QuestNum).ActualTask = 1
           Player(Index).PlayerQuest(QuestNum).CurrentCount = 0
           PlayerMsg Index, Trim$(Quest(QuestNum).Name) & " has been canceled!", BrightGreen
       End If
          
       SavePlayer Index
       SendPlayerData Index
       SendPlayerQuests Index
          
       Set Buffer = Nothing
End Sub

Sub HandleQuestLogUpdate(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       SendPlayerQuests Index
End Sub

11.Заходим в modTypes
12.В Private Type PlayerRec ищем
Code
Dir As Byte
, и за ним вставляем
Code
PlayerQuest(1 To MAX_QUESTS) As PlayerQuestRec

13. В Private Type NpcRec найдем
Code
Level As Long
, и за ним вставим
Code
Quest As Byte
       QuestNum As Long

14. Заходим в modEnumerations
15. Ищем
Code
SPartyVitals
, и за ним вставляем
Code
    SQuestEditor
       SUpdateQuest
       SPlayerQuest
       SQuestMessage

16.Там же ищем
Code
CPartyLeave
, и за ним вставляем
Code
    CRequestEditQuest
       CSaveQuest
       CRequestQuests
       CPlayerHandleQuest
       CQuestLogUpdate

17. Заходим в modPlayer
18. Ищем
Code
Call SendHotbar(Index)
, вставляем
Code
Call SendQuests(Index)

19.Ищем
Code
PlayerWarp
, в нем ищем
Code
TempPlayer(Index).GettingMap = YES
, и вставляем
Code
Call CheckTasks(Index, QUEST_TYPE_GOREACH, mapNum)

20. Внутри PlayerMapGetItem ищем
Code
SendActionMsg GetPlayerMap(Index), Msg, White, 1, (GetPlayerX(Index) * 32), (GetPlayerY(Index) * 32)
и за ним ставим
Code
Call CheckTasks(Index, QUEST_TYPE_GOGATHER, GetItemNum(Trim$(Item(GetPlayerInvItemNum(Index, n)).Name)))

21. Внутри CheckResource ищем
Code
SendMapSound Index, rX, rY, SoundEntity.seResource, Resource_index
, и за ним вставляем
Code
Call CheckTasks(Index, QUEST_TYPE_GOTRAIN, Resource_index)

На этом работа с сервером окончена. Совсем скоро опубликую работу с клиентом. happy

Добавлено (30.03.2012, 21:00)
---------------------------------------------
Сторона клиента
Добавьте modQuests в свой проект.
Добавьте frmEditor_Quest в свой проект.
Замените frmEditor_NPC and frmMain на те, которые будут в конце сообщения.
1. Шуруем в modGameEditors.
2. Находим NpcEditorInit, в нем
Code
txtDamage.text = NPC(EditorIndex).Damage
, и после него вставляем
Code
.chkQuest.Value = NPC(EditorIndex).Quest
           .scrlQuest.Value = NPC(EditorIndex).QuestNum

3. Заходим в modEnumerations.
4. Ищем
Code
SPartyVitals
, и за ним вставляем
Code
    SQuestEditor
       SUpdateQuest
       SPlayerQuest
       SQuestMessage

5.Ищем
Code
CPartyLeave
, и за ним вставляем
Code
    CRequestEditQuest
       CSaveQuest
       CRequestQuests
       CPlayerHandleQuest
       CQuestLogUpdate

6. Открываем modHandleData.
7.Ищем
Code
HandleDataSub(SPartyVitals) = GetAddress(AddressOf HandlePartyVitals)
и за ним вставляем
Code
    HandleDataSub(SQuestEditor) = GetAddress(AddressOf HandleQuestEditor)
       HandleDataSub(SUpdateQuest) = GetAddress(AddressOf HandleUpdateQuest)
       HandleDataSub(SPlayerQuest) = GetAddress(AddressOf HandlePlayerQuest)
       HandleDataSub(SQuestMessage) = GetAddress(AddressOf HandleQuestMessage)

8. В конец модуля добавляем
Code
Private Sub HandleQuestEditor()
       Dim i As Long
          
       With frmEditor_Quest
           Editor = EDITOR_TASKS
           .lstIndex.Clear

           ' Add the names
           For i = 1 To MAX_QUESTS
               .lstIndex.AddItem i & ": " & Trim$(Quest(i).Name)
           Next

           .Show
           .lstIndex.ListIndex = 0
           QuestEditorInit
       End With

End Sub

Private Sub HandleUpdateQuest(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       Dim n As Long
       Dim Buffer As clsBuffer
       Dim QuestSize As Long
       Dim QuestData() As Byte
       Set Buffer = New clsBuffer
       Buffer.WriteBytes Data()
       n = Buffer.ReadLong
       ' Update the Quest
       QuestSize = LenB(Quest(n))
       ReDim QuestData(QuestSize - 1)
       QuestData = Buffer.ReadBytes(QuestSize)
       CopyMemory ByVal VarPtr(Quest(n)), ByVal VarPtr(QuestData(0)), QuestSize
       Set Buffer = Nothing
End Sub

Private Sub HandlePlayerQuest(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       Dim Buffer As clsBuffer
       Dim i As Long

       Set Buffer = New clsBuffer
       Buffer.WriteBytes Data()
              
       For i = 1 To MAX_QUESTS
           Player(MyIndex).PlayerQuest(i).Status = Buffer.ReadLong
           Player(MyIndex).PlayerQuest(i).ActualTask = Buffer.ReadLong
           Player(MyIndex).PlayerQuest(i).CurrentCount = Buffer.ReadLong
       Next
          
       RefreshQuestLog
          
       Set Buffer = Nothing
End Sub

Private Sub HandleQuestMessage(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
       Dim Buffer As clsBuffer
       Dim i As Long, QuestNum As Long, QuestNumForStart As Long
       Dim Message As String
          
       Set Buffer = New clsBuffer
       Buffer.WriteBytes Data()
       QuestNum = Buffer.ReadLong
       Message = Trim$(Buffer.ReadString)
       QuestNumForStart = Buffer.ReadLong
          
       frmMain.lblQuestName = Trim$(Quest(QuestNum).Name)
       frmMain.lblQuestSay = Message
       frmMain.picQuestDialogue.Visible = True
          
       If QuestNumForStart > 0 And QuestNumForStart <= MAX_QUESTS Then
           frmMain.lblQuestAccept.Visible = True
           frmMain.lblQuestAccept.Tag = QuestNumForStart
       End If
              
       Set Buffer = Nothing
End Sub

9. Заходим в modInput
10. Ищем
Code
SendRequestEditSpell
и за ним вставляем
Code
                Case "/editquest"
                       If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then GoTo Continue
                       SendRequestEditQuest

11. заходим в modTypes.
12.Ищем Private Type PlayerRec, в ней
Code
Step As Byte
и за ним вставляем
Code
PlayerQuest(1 To MAX_QUESTS) As PlayerQuestRec

13. В Private Type NpcRec ищем
Code
Level As Long
и за ним добавляем
Code
    Quest As Byte
       QuestNum As Long

На этом работа с кодом окончена.
Вот по этой ссылке вы можете скачать нужные формы, которые были упомянуты в начале сообщения.
Готовый клиент, за работоспособность не отвечаю.
©Alatar


Сообщение отредактировал QNicolya - Воскресенье, 22 Апреля 2012, 11:25
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг