Skocz do zawartości
Viral

Zaawansowany /opis

Rekomendowane odpowiedzi

Cześć.

Mam dla was dzisiaj filterscript mojego autorstwa, a mianowicie:

 

0IhafSC.jpg

 

[...] oparty o bazę danych.

 

Jak go uruchomić?

 

Po pierwsze, musicie posiadać serwer mysql.

Po drugie, musicie mieć następujące includy w katalogu [ścieżka kompilatora]/include :

Po trzecie musicie dodać plugin mysql do server.cfg

plugins mysql

Po czwarte, konfiguracja filterscripta:

// Dane mysql
#define MYSQL_HOST	"localhost" // Host bazy danych
#define MYSQL_USER	"root"      // Login
#define MYSQL_PASS	"****"      // Hasło
#define MYSQL_DB	"****"       // Nazwa bazy danych

#define LABEL_DESCRIPTION 0x9B91ECFF // Kolor opisu
#define COLOR_NOTIF 0xFCAD43FF       // Kolor informacji

#define NOTIF_DESC_DELETED "xyz.pl: Twój aktualny opis został usunięty."
#define NOTIF_DESC_ADDED "xyz.pl: Twój opis został ustawiony."

#define DIALOG_CHAR_DESCRIPTION 101     // Dialog id #1
#define DIALOG_CHAR_DESCRIPTION_ADD 102 // Dialog id #2

#define OPIS_LINE_BREAK_LIMIT 32        // Po ilu znakach powinien dodawać nową linię

Oczywiście rozdzielanie opisu nie następuje idealnie w miejscu, które określimy tylko w "spacji", która znajduje się najbliżej tego miejsca.

 

Jeśli znajdziecie jakieś błędy lub będziecie mieć problemy z konfiguracją - piszcie w tym temacie.

 

DOWNLOAD

Klik

Edytowane przez promsters

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jest na mysql ze względu na to, że jest to wycinek z mojej mapy, a poza tym mysql jest szybszy i wygodniejszy w użyciu niż pliki. 

 

Jeśli ktoś ma chęci to może go przerobić chociażby na sqlite.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Moim zdaniem możesz wydać też wersję w sqlite, bo nie każdy ma baze, a nowsi gracze nie będą wiedzieli skąd to wytrzasnąć i jak się tym "opiekować".

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

CREATE TABLE IF NOT EXISTS `ch_descriptions` (\
                      `uid` int(10) NOT NULL AUTO_INCREMENT,\
                      `owner` varchar(40) NOT NULL,\
                      `text` varchar(100) COLLATE utf8_polish_ci NOT NULL,\
                      `last_used` int(20) NOT NULL,\
                      PRIMARY KEY (`uid`)\
                    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=0

Jeżeli tabela nie posiada relacji, lepiej stosować MyISAM zamiast InnoDB.

Funkcje publiczne powinny coś zwracać (OnFilterScriptInit/OnFilterScriptExit) chociażby te true.

To jedyne czego można było się doczepić.

 

Jeśli chcesz rozwinąć ten skrypt, to fajnie by było dorobić tutaj "ubieranie skinów" i wg założonego np. kapeluszu tworzyć opis postaci.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Podczas kompilowania:

opisy.pwn(97) : error 017: undefined symbol "mysql_fetch_field_int"

opisy.pwn(123) : error 017: undefined symbol "mysql_fetch_field_int"

Dodaj na dół skryptu

 

 

forward mysql_fetch_field_int(field[]);
public mysql_fetch_field_int(field[])
{
new tmp_str[30];
mysql_fetch_field(field, tmp_str);
return strval(tmp_str);
}


stock Float: mysql_fetch_field_float(field[])
{
new tmp_str[60];
mysql_fetch_field(field, tmp_str);
return floatstr(tmp_str);
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×