Edit: Nie aktualne.

Witam!

Współpracowałem jakiś czas z użytkownikiem forum pod nickiem Cerrato, jednak brakuje mu czasu i nie ma jak się za to zabrać.

Potrzebuję osoby ogarniętej w Lazarusie, bo w tym Cerrato pisał ten program. Posiadam kod źródłowy.

Tak więc po kolei. Owy program ma za zadanie pomóc mi w importowaniu przedmiotów wirtualnych do bazy danych SQL z gry jaką jest Knight OnLine. Na dzień dzisiejszy wygląda to tak :

screenshot-20190904173920.png

Zajmuje to sporo czasu więc chciałbym ten proces nieco zautomatyzować.

Klient gry Knight OnLine zczytuje dane z plików z rozszerzeniem .tbl.
Dane z plików .tbl muszą się pokrywać z bazą danych SQL, inaczej przedmiot nie zadziała.

Posiadam program którym mogę edytować wyżej wymienione pliki z rozszerzeniem .tbl wygląda on tak:
screenshot-20190904181444.png

Jest tam 56 kolumn. Ale tylko niektóre kolumny będą nam potrzebne, o tym niżej.

Chciałbym dodać do programu który napisał Cerrato następujące rzeczy:

  • Możliwość wczytania danych z notatnika lub z Microsoft SQL Server Query File (.sql).
  • Gdy program wczyta te dane i kliknę odpowiedni przycisk to "wypluje" mi gotowy kod insert do SQL

Opiszę dokładnie jak to ma działać.

Na początku uzupełniam podstawowe dane. Program wypluwa mi następującą linijkę :
(1111466000,0,'Dark Knight Dagger',11,0,0,0,80,109,10,20,9000,0,0,0,0,0,0,80,83,0,0,0,0,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1)

Teraz gdy mam już wszystko wpisane klikam przycisk "Wczytaj" i wskazuje plik tekstowy. Program analizuje linijki które są zapisane w notatniku, a wygląda to tak:

(1452,'Dark Knight Dagger',1111466000,'',0,0,0,4,0,100,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(1741,'Dark Knight Dagger(+1)',1111466000,'',0,0,0,4,3,100,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
(1742,'Dark Knight Dagger(+2)',1111466000,'',0,0,0,4,6,100,0,0,1000,3,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0),
(1743,'Dark Knight Dagger(+3)',1111466000,'',0,0,0,4,10,100,0,0,2000,4,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0),
(1744,'Dark Knight Dagger(+4)',1111466000,'',0,0,0,4,15,100,0,0,3000,4,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,10),
(1745,'Dark Knight Dagger(+5)',1111466000,'',0,0,0,4,20,100,0,0,4000,4,0,0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,30),
(1746,'Dark Knight Dagger(+6)',1111466000,'',0,0,0,4,26,100,0,0,5000,4,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,50),
(1747,'Dark Knight Dagger(+7)',1111466000,'',12031,0,0,4,32,100,0,0,6000,4,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,1,80),
(1748,'Dark Knight Dagger(+8)',1111466000,'',12031,0,0,4,39,100,0,0,7000,4,0,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,1,180),
(1749,'Dark Knight Dagger(+9)',1111466000,'',12031,0,0,4,49,100,0,0,8000,4,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,1,280),
(1750,'Dark Knight Dagger(+10)',1111466000,'',12031,0,0,4,66,100,0,0,9000,4,0,0,0,0,0,0,0,0,132,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,1,380),

Weźmy sobie podstawową linię kodu (w kolejności od lewej do prawej) :

Na czerwono zaznaczyłem miejsca w których program ma dodawać dane z pliku tekstowego.

Num Ext strName Kind Slot Race Class Damage Delay Range Weight Duration BuyPrice SellPrice AC Countable
1111466000 0 'Dark Knight Dagger' 11 0 0 80 109 10 20 9000 0 0 0 0 0
Effect1 Effect2 ReqLevel ReqLevelMax ReqRank ReqTitle ReqStr ReqSta ReqDex ReqIntel ReqCha SellingGroup
0 0 80 83 0 0 0 0 174 0 0 0
ItemType HitRate EvasionRate JamadarAc DaggerAC SwordAC MaceAC AxeAC SpearAC BowAC
0 0 0 0 0 0 0 0 0 0
FireDamage IceDamage LightningDamage PoisonDamage HPDrain MPDamage MPDrain MirrorDamage StrB StaB DexB
0 0 0 0 0 0 0 0 0 0 0
IntelB ChaB MaxHpB MaxMpB FireResi ColdR LightningR MagicR PoisonR CurseR Grade GiveItem
0 0 0 0 0 0 0 0 0 0 0 0
DropRate Flag UpNotice DropNotice Upgradeable Tradeable
0 0 1 1 1 1

Edit: Nie aktualne.