Моддинг Teeworlds тройной лазер,Спред шотгана

Тема в разделе "Создание и управление сервером", создана пользователем oklock64, 23 янв 2013.

  1. oklock64

    oklock64 Новичок

    Всем привет И сейчас мы будем что-то создавать,А что-то это тройной лазер, и спред в шотгане.
    Итак меньше слов больше дела!Приступим

    Давайте в начале создадим команды ,На тройной лазер и спред шотгана.
    Заходим в src/game/server/gamecontext.cpp
    Пишем на строчке 603
    Если без этого,
    значит использовать эту команду могут все игроки.
    Так же и делаем с тройным лазером

    Теперь идем в player.h
    Создаем еще одну переменную laser и Spread Выглядеть это будет так
    Все вот мы сделали Комманду,Теперь сделаем что-бы она что-то означала?\
    Идем в character.cpp
    В поиск вбиваем
    Меняем весь код rifla на
    Кстати вроде еще должна будет работать Удар как от гранаты.
    Ну не знаю не знаю.
    Ну так вот Кстати если вам надо Больше сделать или меньше Меняйте циферки которые красные на, то сколько вам надо.
    Теперь в шотгане будем делать)
    Ищем
    Меняем весь код на
    И тоже самое с красными циферками (Там где цифра 100 ,Это наносимый урон)
    P.S там много лишнего,но оно отвечает за долготу и т.д
    P.S.S Коды от ботокса)
    ........
    Все всем спасибо за внимание,что-то не работает пишите в коментах.
    В следущем уроке думаю буду показывать как сделать спавн оружки,Даже молотка,Гана, и т.д, и флагов( ну я незнаю будет ли работать флаги еще не тестил)
    Пока)
     
    fear52rus и Matodor нравится это.
  2. fear52rus

    fear52rus InoT || Админ

    Я бы упростил вот так вот:
    Код:
    case WEAPON_SHOTGUN:
            {
                int PATR;
                int DMG;
         
                if(m_pPlayer->m_Score > 19 &&  m_pPlayer->m_Score < 40) {
                    PATR = 6;
                    DMG = 25;
                }
                else if(m_pPlayer->m_Score > 39 && m_pPlayer->m_Score < 60) {
                    PATR = 7;
                    DMG = 30;
                }
                else if(m_pPlayer->m_Score > 59) {
                    PATR = 8;
                    DMG = 50;
                }
                else {
                    PATR = 5;
                    DMG = 3;
                }
         
                float start = 0.0f;
                if (PATR%2==0) start = (-PATR/2 + 0.5)*70*0.001;
                else start = (-(PATR-1)/2)*70*0.001;
                for (float i = 0; i < PATR; i+=1.0f) {
     
                    float a = start+GetAngle(Direction)+i*70*0.001;
                    float speed = 1.0f;
                    float v = 1-fabs((i*70*0.001f+start)/start);
                    if (0) speed = mix((float)750*0.001f, 1.0f, v);
                    CProjectile *pProj = new CProjectile(GameWorld(), WEAPON_SHOTGUN,
                        m_pPlayer->GetCID(),
                        ProjStartPos,
                        vec2(cos(a), sin(a))*speed+vec2(0, -0*0.001f),
                        (int)(Server()->TickSpeed()*GameServer()->Tuning()->m_GunLifetime),
                        DMG, 0, 0, -1, WEAPON_SHOTGUN);
     
                    // pack the Projectile and send it to the client Directly
                    CNetObj_Projectile p;
                    pProj->FillInfo(&p);
     
                    CMsgPacker Msg(NETMSGTYPE_SV_EXTRAPROJECTILE);
                    Msg.AddInt(1);
                    for(unsigned i = 0; i < sizeof(CNetObj_Projectile)/sizeof(int); i++)
                        Msg.AddInt(((int *)&p)[i]);
     
                    Server()->SendMsg(&Msg, 0, m_pPlayer->GetCID());
                }
     
                GameServer()->CreateSound(m_Pos, SOUND_SHOTGUN_FIRE);
            } break;
    Ну короче по очкам тут выдается, чтобы не исправлять в нескольких местах. Или просто задать:
    int PATR = 5;
    int DMG = 3;
    а if(***) стереть, и все будет норм, по несколько раз не будешь исправлять
     
    oklock64 нравится это.
  3. oklock64

    oklock64 Новичок

    На мой взгляд ты не упростил, а сделал тяжелее код.
    Кстати феар, Спасибо за код, серьезно помог)
     
  4. sasha121

    sasha121 zol

    где хотя бы src?весь комп на 12.04 линуксе перерыл нема=(
     
  5. fear52rus

    fear52rus InoT || Админ

    sasha121 нравится это.
  6. sasha121

    sasha121 zol

    Спасибо Вам , но как этот файл установить?
    :/

    спасибо щас на 7 винде попробую)

    а какая прога нужна? для распаковки файла gamecontext cpp
    а готовую не можешь скинуть)?