Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Automatyczne wiadomości na czacie GM z MySQL


Rekomendowane odpowiedzi

Opublikowano

Witam.
Pomysł na questa z działu "Pisanie/Poprawa Questów".

Baza MySQL:

CREATE TABLE `autowiad` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text1` varchar(255) DEFAULT NULL,
  `text2` varchar(255) DEFAULT NULL,
  `text3` varchar(255) DEFAULT NULL,
  `text4` varchar(255) DEFAULT NULL,
  `text5` varchar(255) DEFAULT NULL,
  `text6` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

To jest baza pod max 6 wiadomości (jednocześnie może się wyświetlić do 6 linijek). Jeżeli ktoś potrzebuje więcej to wystarczy dodać nowe kolumny i na odwrót mniej - usunąć. Kolumna pozostawiona pusta nie będzie się wyświetlać.

Quest:

http://wklej.to/jSJH8

 

 

mysql_query, jeżeli ktoś nie ma dodajemy do questlib.lua

http://wklej.to/prtp8 

oraz do quest_function "mysql_query".

Opublikowano

Mi coś to nie działa, jak ustawiam czas i wysyłanie wiadomości to serwer się zatrzymuje(Nic nie można zrobić).

Query wykonane w bazie danych "test". Czy ona powinna mieć inną nazwe?

Może jakoś trzeba dopisać mysql_select_db("test");

8910814572903361049127.png

Opublikowano

61 linijka. Tam jest funkcja mysql_query (funkcja od query musi zwracać tablicę). "skrypty.autowiad" definiuje bazę i tabelę. W tym przypadku baza do skrypty, a tabela to autowiad (za pomocą query można stworzyć tą tabelę).

 

Serwer się zatrzymuje tzn że jest lag i wywala serwer czy co się dokładnie dzieje? Ja quest testowałem u siebie i działa bez problemów.

Opublikowano

Lag wywala postać i niemożna się zalogować. Trzeeba zrestartować baze danych i na i odnowa uruchomić Game.

Czyli co muszę zrobić zamiast "skrypty.autowiad" dać "test.autowiad"

8910814572903361049127.png

Opublikowano

Tak, lub stworzyć bazę danych o nazwie skrypty i tam dać tabelę.

 

@Nexicoll, test - nazwa bazy danych, a autowiad - nazwa tabeli.

 

Linijka dla bazy test i tabeli autowiad.

 

local info = mysql_query("SELECT * FROM test.autowiad ORDER BY id ")

 

Jeżeli wywala ci serwer to sprawdź syserr, ale pierw ustaw tabelę dobrze i wtedy sprawdź.

Opublikowano

Dalej tak samo wgrałem questa i tym razem w putty wywaiło:

 

 

locale/poland/quest/object/state/change_empire:40: `)' expected near `Nie'
zmianiłem skrypty na test i wgrałem ponownie questa
aha i nie przeczytałem jeszcze podczas wgrywania:
Calls undeclared function! :
mysql_query
Abort trap (core dumped)
To znaczy że mam dodać funkcje?

8910814572903361049127.png

Opublikowano

Jakim cudem wcześniej grałeś questa, jeżeli nie masz funkcji mysql_query? Zaraz ją dodam do tematu na samej górze.

Opublikowano

Wcześniej też był ten błąd ale quest jako tako się wyświetlał w grze



Wcześniej też był ten błąd ale quest jako tako się wyświetlał w grze

 

Takie coś mam podczas wgrywania

Wgrywanie questĂłw by Xyli.
1. Wgraj pojedynczy quest.
2. Wgraj wszystkie questy.
1
Podaj nazwÄ questa bez rozszerzenia .quest
chat
Wgrywam quest chat. ProszÄ czekaÄ...
QUEST : auto_wiadomosci
STATE : start
WHEN : letter
with pc . is_gm ( )
WHEN : button or
WHEN : info
WHEN : auto_wiad.server_timer
Calls undeclared function! :
mysql_query
Abort trap (core dumped)
Quest chat zostaĹ poprawnie wgrany.
vps17320#

i już dodaje nową funkcje i zaraz podam czy działa.

8910814572903361049127.png

Opublikowano

nie lepiej zrobić to tak:

ID | TRESC
1 | TEST
2 | TEST2
3 | TEST3

 

potem dać to na pętli czy co tam jest w lua i gotowe, bez paprania się itp

 

jeszcze można dać ID | TRESC | CZAS

czyli co ile ma się pokazywać ta wiadomość, to by był dobry pomysł :)

Opublikowano

Dałem więcej kolumn, bo większe wiadomości ci się nie zmieszczą w 1 linijce i wtedy można dać na kilka i wyświetli się kilka na raz i jest dana pętla na to. Chcesz, aby zamienić timer'a na pętle? Nie wiem czy to dobry pomysł. Nie ma także sensu, żeby rozdzielać czas, bo i tak każdy ustawi taki sam.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...