Хостинг, который использует TopHope.RU более 2-х лет

Хостинг, который использует TopHope.RU более 2-х лет

Сайт для программистов

Дроп спойл патч для любого сервера. Ищу хорошего человека!

Тема в разделе "Модификации и решения проблем с клиентом", создана пользователем lopoped, фев 11, 2018.

  1. lopoped

    lopoped

    Сообщения:
    2
    Симпатии:
    1
    Баллы:
    3
    Ищу умельца-программиста и доброго самаритянина в одном лице.
    Хочу сделать дроп спойл патч для сервера, где играю. Одержим данным вопросом!
    хроники gracia final
    Рейты сервера: drop x7 spoil x7 spoil amount x1-x5
    т.е. никакое кол-во спойла не увиличивается при достижении 100% шанса
    например: спойлится по линедии с моба 1-11 анимал бона с моба с шансом 92% - на этом серве будет спойлится 1-55 анимал бона с шансом 100%
    Собственно в идеале, чтобы добрый самаритянин поделился файлом парсинга с линедии, показал где что менять в случае перехода на другие хроники/рейты, как преобразовать это всё в текст, пригодный для вставки в dat файлы клиента
    Ибо самостоятельно разобраться в данной проблеме не удалось
     
  2. DaVilka

    DaVilka а не Давалка

    Сообщения:
    262
    Симпатии:
    215
    Баллы:
    65
    никуя не понятно, что твой патч должен делать ? что за линедия? какой еще текст. Поясни глупому )
     
  3. lopoped

    lopoped

    Сообщения:
    2
    Симпатии:
    1
    Баллы:
    3
    стандартный дроп спойл патч
    [​IMG]
    но с нужными шансами и количеством, которые расчитываются по элементарной формуле
    линедия - база знаний л2. можно и не линедию использовать, мне не принципиально
    как я понимаю, можно выкачать информацию о дропе/спойле с помощью парсинга сайта и преобразовать её в exel файл. А далее необходимо преобразовать её в подходящий для файла skillname-e.dat вид. Например строчка дропа одного из мобов из чужого дроп спойл патча:
    50000 22222 u,............::: Инфо о мобе Дроп x3 Адена x3 :::............ Разраб. METAJIJI 24.05.2010\0 u,Adena [10314-21056] 100%\nDragon Grinder Edge [1] 1.5891%\nDragon Grinder [1] 0.0057%\nBlue Primeval Crystal [1] 0.6621%\nGreen Primeval Crystal [1] 0.3312%\nRed Primeval Crystal [1] 0.1656%\nScroll: Enchant Armor (S) [1] 0.0663%\nScroll: Enchant Weapon (S) [1] 0.0066%\nHigh-Grade Life Stone: level 76 [1] 0.0345%\nTop-Grade Life Stone: level 76 [1] 0.0069%\n\0 a,none\0 a,none\0
     
  4. DaVilka

    DaVilka а не Давалка

    Сообщения:
    262
    Симпатии:
    215
    Баллы:
    65
    а, дак с этим любой язык справится, попробую, если не будет лень
     
  5. lopoped

    lopoped

    Сообщения:
    2
    Симпатии:
    1
    Баллы:
    3
    \o/\o/\o/
    Надеюсь на вас, товарищ! Заранее спасибо
     
  6. DaVilka

    DaVilka а не Давалка

    Сообщения:
    262
    Симпатии:
    215
    Баллы:
    65
    [​IMG]

    чето вроде этого?
     
  7. lopoped

    lopoped

    Сообщения:
    2
    Симпатии:
    1
    Баллы:
    3
    трудно сказать. Если я это сумею перевести в эксель, чтобы шанс был в отдельном столбце, и количество тоже, то сойдет. Только как потом всё это перевести в нужный формат текста...попробуемс придумать
    в итоге из этого всего я собираюсь сделать две строчки по примеру этих, но уже с умноженными цифрами в соответствии с рейтами:
    50000 21426 u,............::: Инфо о мобе Дроп x3 Адена x3 :::............ Разраб. METAJIJI 24.05.2010\0 u,Adena [14738-30080] 100%\nCommon Item - Soul Bow [1] 0.1554%\nSoul Bow Stave [1] 2.2275%\nScroll: Enchant Armor (S) [1] 0.0582%\nMithril Arrow [150-450] 13.6365%\nThread [4-12] 42.8571%\nSilver Nugget [3-9] 11.1111%\nMithril Ore [1] 33.3333%\nMetallic Fiber [3-9] 6%\nEnria [1] 3.1578%\nLife Stone: level 76 [1] 1.6128%\nMid-Grade Life Stone: level 76 [1] 0.4464%\nHigh-Grade Life Stone: level 76 [1] 0.0387%\n\0 a,none\0 a,none\0
    50001 21426 u,............::: Инфо о мобе Споил x3 :::............ Разраб. METAJIJI 24.05.2010\0 u,Sealed Tateossian Earring Part [1-2] 100%\nSealed Tateossian Ring Gem [1] 100%\nSealed Tateossian Necklace Chain [1] 65.7663%\n\0 a,none\0 a,none\0
     
    Последнее редактирование: фев 14, 2018 в 20:57
  8. DaVilka

    DaVilka а не Давалка

    Сообщения:
    262
    Симпатии:
    215
    Баллы:
    65
    ексель,? xml?
    --- Объединение сообщений, фев 15, 2018 в 16:48, Дата оригинального сообщения: фев 14, 2018 в 22:33 ---
    Код:
    #!/usr/bin/env python3
    
    import csv
    import urllib.request
    
    from bs4 import BeautifulSoup
    
    
    
    def out_str(droprate, adenarate ):
        st = '50000 22222 u,............::: Инфо о мобе Дроп %s Адена %s :::............ Разраб. METAJIJI 24.05.2010\0 u,%s\n\0 a,none\0 a,none\0' % (droprate, adenarate, 'Adena [10314-21056] 100%\n')
    
    def get_html(url):
        response = urllib.request.urlopen(url)
        return response.read()
    
    
    def check_rate(rate, npcid):
        BASE_URL = 'http://all-db.info/index.php?type=npc&id='
    
        tabl = [[],[]]
     
        print('NPC id:', npcid, 'Рейты:', 'x'+str(rate))
        BASE_URL = BASE_URL + npcid #21426
     
     
        table_drop = parse(get_html(BASE_URL), 'table_drop')
        print('Дроп')
        for i in table_drop:
            ot = str(int(i['Count'].split('-')[0]) * rate)
            do = str(int(i['Count'].split('-')[1]) * rate)
            i['Count'] = '%s-%s' % (ot, do)
            procent = float(i['Precent'][:-1])
            #procent - процент в флоат, добавить формулу расчета по рейтам(хз как оно считает)
            #procent = procent*rate;
            #if procent > 100:
                #procent = 100.0
            i['Precent'] = '%s' % procent+'%';
            print('Имя:', i['Name'], 'Количество:', i['Count'], 'Шанс:', i['Precent'])
         
    
        tabl[0] = table_drop
        table_spoil = parse(get_html(BASE_URL), 'table_spoil')
        print('Спойл')
        for i in table_spoil:
            ot = str(int(i['Count'].split('-')[0]) * rate)
            do = str(int(i['Count'].split('-')[1]) * rate)
            i['Count'] = '%s-%s' % (ot, do)
            procent = float(i['Precent'][:-1])
            #procent - процент в флоат, добавить формулу расчета по рейтам(хз как оно считает)
            #procent = procent*rate;
            #if procent > 100:
                #procent = 100.0
            i['Precent'] = '%s' % procent+'%';
            print('Имя:', i['Name'], 'Количество:', i['Count'], 'Шанс:', i['Precent'])
    
        tabl[1] = table_spoil
        return tabl
    
    def parse(html, tabl):
        soup = BeautifulSoup(html, "html.parser")
        rows = soup.find('table', class_=tabl).find_all('tr')[1:]
        projects = []
     
        for row in rows:
            cols = row.find_all('td')
            projects.append({
                'Name': cols[0].a.text,
                'Count': cols[1].text[0:],
                'Precent': cols[2].text[0:]
            })
        return projects
     
    
    
    def main():
        print('NpcID')
        npcid = '21426'
        print('rate')
        rate = 2
     
        table = check_rate(rate, npcid)
     
     
    if __name__ == '__main__':
        main()
    
    
    В общем держи че сделал, нету времени доделывать, скрипт на питон третий, + либу бьютифулсуп установить
     
  9. EclipsE

    EclipsE Excluded from ZeroLevel Team Команда форума Старший модератор

    Сообщения:
    209
    Симпатии:
    251
    Баллы:
    95
    В эксель можешь сделать вставку по символу. Например по двоеточию ":".

    Так тебе автоматически разобьёт строку на Х клеток