MU MobSpot: Распределение мобов до 7-го уровня в MU Online

Автор Imp0ssible, 2010 Июнь 25, 09:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlinemu mobspotраспределение мобов

Imp0ssible

Здравствуйте Всем. Вчера , когда пришлось на сервер добавить споты, Пробежавшись по локациям, добавляя приблизительные местонахождения того или иного спота в итоге получилось что спотов будут много. Задача в том, что в каждой "точки" еще и распределить мобы до 7-ми. Можно конечно было создать "одноточие" ( это извращенный вариант 7 мобов из одной точки), но хотелось как бы грамотно, да и нашелся хороший человек который дал совет как это сделать (низкий поклон:).

Как то стало лень все это делать, уверенно что затянулось бы не на один часик)
Так что как сказал тот же хороший  человек "лень пораждает идеи", решил быстро набросать консоль которая облегчила бы задачу.  Вот собственно что и получилось))



ЧаВо:

SetSpot.ini

// ================================================== //
// # MU MobSpot - SetSpot.ini                # //
// # Freeware app, - © Imp0ssible              # //
// # X-MU.NET                                    # //
// ================================================== //

[GetConfigSpot]

XCoord      = 21            // Разумеется координат по Х
YCoord      = 46            // Координат по У
MapID        = 7              // Номер карты (АйДи)
MonsterID    = 45          // Номер монстра (АйДи)
MoveRadius  = 3          // Радиус
Direction    = -1            // Направление
MonsterName  = MonsterName  // Название моба, она поставит в коменте
MonsterCount = 8  // Количество мобов, максимальное количество [b]8[/b]
Distance    = 2    // Ну и длину
NOTE:Max Monster Count = 8;

Так же картинка, понять по какому принципу выставляет мобов.
## здесь был скриншот ##


Так как сам только учу С++, думаю и для других в опознавательных целях выкладываю сурс.




#include "stdafx.h"
#include "Windows.h"
#include <fstream>
#include <iostream>

using namespace std;
#define lpAppNameZ "GetConfigSpot"
#define lpFileNameZ ".\SetSpot.ini"

int main()
{

  int x = GetPrivateProfileIntA(lpAppNameZ,"XCoord",0,lpFileNameZ);
int y = GetPrivateProfileIntA(lpAppNameZ,"YCoord",0,lpFileNameZ);
int map = GetPrivateProfileIntA(lpAppNameZ,"MapID",0,lpFileNameZ);
int mob = GetPrivateProfileIntA(lpAppNameZ,"MonsterID",0,lpFileNameZ);
int xmod = GetPrivateProfileIntA(lpAppNameZ,"MoveRadius",0,lpFileNameZ);
int wher = GetPrivateProfileIntA(lpAppNameZ,"Direction",0,lpFileNameZ);
int mCount =  GetPrivateProfileIntA(lpAppNameZ,"MonsterCount",0,lpFileNameZ);
int dist = GetPrivateProfileIntA(lpAppNameZ,"Distance",0,lpFileNameZ);
char getMobName[256];
GetPrivateProfileStringA(lpAppNameZ,"MonsterName","MonsterNameDef",getMobName,sizeof(getMobName),lpFileNameZ);
int xCoord[] = {x, x, x - dist, x + dist, x + dist, x - dist, x - dist, x + dist};
int yCoord[] = {y - dist, y + dist, y, y, y - dist, y + dist, y - dist, y + dist};

fstream outfile;
outfile.open("SpotRelease.txt", fstream::in | fstream::out | fstream::app);
cout<<"Creating Spot from coordinates of X = "<<x<<" and Y = "<<y<<endl;
cout<<"MapID = "<<map<<", MonsterID = "<<mob<<", Radius = "<<xmod<<endl;

int j = 0;
do
{
 outfile<<mob<<" "<<map<<" "<<xmod<<" "<<xCoord[j]<<" "<<yCoord[j]<<" "<<wher<<"  //"<<getMobName<<endl;
 cout<<mob<<" "<<map<<" "<<xmod<<" "<<xCoord[j]<<" "<<yCoord[j]<<" "<<wher<<"  //"<<getMobName<<endl;
 j++;
}
while (j < mCount);
cout<<"DONE!"<<endl;
outfile.close();
Sleep(INFINITE);
return 0;
}




Спасибо за внимание, думаю кому то в хозяйстве пригодится)

ReaL

#1
Хорошый релиз  
искал такую прогу и некак не мог найти ...а ставить в ручную лень  
10x

InsurgenT

мм прог для добавления спотов полно )

и зачем конфиг о_О, чистое изощрение..
ради другого моба открывать конфиг и перезапускать консоль..

прога ставит споты по 2 системе(монстерсетбаза), а в основном юзаются споты по 1 системе, где можно ставить количество мобов для каждой точки.

Спойлер
вот консолька под 1 систему, и без конфига.
https://www.megaupload.com/?d=KLS2S5GF
ну и сообственно тут 9 точек
## здесь был скриншот ##
[свернуть]

S.Yura

#3
Если не ошибаюсь, то в Си++ от DEFINE для такого случая использовать перестали и перешли на const.

Imp0ssible

#4
Оказалось легко переписать в с шап )
Код выставил. Программа щас более "интерактивная"

using System;
using System.IO;
using System.Threading;



namespace ConsoleApplication1
{
class Program
{
static int Main()
{
Console.WriteLine("Welcome to MU MobsSpot C# Versionn");
CodeBeging:
Console.Write("Enter the X Coordonats : ");
int getXCoord = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter the Y Coordonats : ");
int getYCoord = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter MapID : ");
int getMapId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Monster ID : ");
int getMobId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Radius : ");
int radius = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Direction : ");
int direct = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Count of Monsters (Max 8) : ");
int countm = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Distance : ");
int dist = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Monster Name : ");
string mobName = Convert.ToString(Console.ReadLine());
int[] xCoord = { getXCoord, getXCoord, getXCoord - dist, getXCoord + dist, getXCoord + dist, getXCoord - dist, getXCoord - dist, getXCoord + dist };
int[] yCoord = { getYCoord - dist, getYCoord + dist, getYCoord, getYCoord, getYCoord - dist, getYCoord + dist, getYCoord - dist, getYCoord + dist };
TextWriter tw = new StreamWriter("MobsRelease.txt");
int j = 0;
while (j < countm)
{
tw.WriteLine("{0} {1} {2} {3} {4} {5} // {6}", getMobId, getMapId, radius, xCoord[j], yCoord[j], direct, mobName);
j++;
}
tw.Close();
Console.WriteLine("Monster Spot Created Successfull");
Console.WriteLine("So, the configs are : X = {0} , Y = {1} , Map ID = {2} ", getXCoord, getYCoord, getMapId);
for (int k = 0; k < 5; k++)
{
Console.WriteLine();
}
TupOi:
Console.WriteLine("Do you want to create a new spot? y / n");
string userInput = Convert.ToString(Console.ReadLine());
switch (userInput)
{
case ("y"):
goto CodeBeging;
case ("n"):
Console.WriteLine("Just Close the Console Application");
break;
default:
goto TupOi;
}
Thread.Sleep(-1);
return (0);
}
}
}


LeGrand

Спасибо мне за промывку москов Сокку о полезности и "хорошести" языка C#

Killbrum

Цитата: Quiero от 2010 Июнь 27, 09:00  Если не ошибаюсь, то в Си++ от DEFINE для такого случая использовать перестали и перешли на const.
дефайны - директивы препроцессора. Юзались как правило в стандартах Си. Но и в С++ юзается. Правда многие утверждают что это уже старый метод и имхо он плох. Но каждому своё =). Так же под константы надо отводить память. Когда под Дефайны - нет

user_MU

Неплохо было бы еще в познавательных целях откомпиленный проект увидеть.

Imp0ssible

Версия на шапе требует фрейворк 4-ый, так как использую для него студию 10-тую.
Но выкладываю и релиз, раз просили )


Killbrum

Цитата: sokk от 2010 Июнь 28, 15:27  Версия на шапе требует фрейворк 4-ый, так как использую для него студию 10-тую.
Но выкладываю и релиз, раз просили )

Может я и ошибаюсь но насколько я знаю чтобы надо было инсталить 4ый фреймворк надо сначала заюзать 4ый фреймворк... и если не ошибаюсь то от студии ничего не зависит и на 10тке можна писать и под вторым фреймворком

Imp0ssible

#10
Цитата: Killbrum от 2010 Июнь 28, 15:43  Может я и ошибаюсь но насколько я знаю чтобы надо было инсталить 4ый фреймворк надо сначала заюзать 4ый фреймворк... и если не ошибаюсь то от студии ничего не зависит и на 10тке можна писать и под вторым фреймворком

Хз, спорить не буду так как не знаю
Тут по дефолту идет только 4-ый фреймворк. Может надо подключить и старые версий, там есть в опций но не пробовал. Я и так 1 день в 10-той студий да и в с# )
## здесь был скриншот ##

ketanof

руки вот эдитор спотов, работают без знаний  си++ и 4 фреймворка.

InsurgenT

вначале конфиг.. теперь си шарп..
и все ради записи пары строчек в тхт,  ебанулись на отличненько !11!

Imp0ssible

Цитата: Killbrum от 2010 Июнь 28, 15:43  Может я и ошибаюсь но насколько я знаю чтобы надо было инсталить 4ый фреймворк надо сначала заюзать 4ый фреймворк... и если не ошибаюсь то от студии ничего не зависит и на 10тке можна писать и под вторым фреймворком

Всеравно фреймворк требуется, даже 2.0
Но зато не обязательно 4.0 )

Вот пример первой созданной мною GUI. На эту же тему.
Язык программирования: C#
Требования: .NET Framework 2.0
Компилятор : Visual Studio 2010
## здесь был скриншот ##




Цитироватьвначале конфиг.. теперь си шарп..
и все ради записи пары строчек в тхт, ебанулись на отличненько !11!

Дело не в записи пару строчек в тхт....

InsurgenT

Цитата: sokk от 2010 Июнь 30, 05:28  Дело не в записи пару строчек в тхт....
нечего другого она пока не делает  (finger)

FanmuS

Спасибо за информацию,довольно интересно!

Imp0ssible


Похожие темы (5)