Skocz do zawartości
Expert

jak to dodać do bazy danych.

Rekomendowane odpowiedzi

Witam.

 

Mam problem z wgraniem skryptu do Bazy danych MySQL, Ponieważ nie zabardzo sie na tym znam. Prosze o opisanie co mam robić po koleji w wgrywaniu skryptu do bazy danych.

 

PS: Żaden ze mnie Expert.

 

info o  Skrypcie: jest to skryp to tworzenia teleportów dunamic_teles.  

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Podaj link do tego skryptu lub jego kod.

 

 

Osobiście polecam Ci to - http://pawno.pl/index.php?/topic/26196-inc-telesys-v10-by-maku/
Fakt, przez bazę danych możesz dodawać teleporty in-game ale tym include będzie optymalniej ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Praktycznie nic nie musisz dodawać do bazy danych, jedynie co to w tym miejscu:

mysql_connect("host_mysql", "user_mysql", "password_mysql", "user_mysql", MySQL:0, 1);

musisz podać dane od bazy danych i to tyle.

 

P.S Ten skrypt normalnie trzeba przekompilować i wrzucić go oczywiście do filterscripts + w pliku server.cfg w linijce filterscripts dopisać nazwę tego skryptu. Również musisz posiadać plugin MySQL.

Edytowane przez Smurf

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Czasami warto użyć wyszukiwarki od google (Jeżeli nie miałeś z nią nigdy do czynienia to polecam: http://pl.wikipedia.org/wiki/Google www.google.pl)

 

https://www.google.pl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=unable%20to%20execute%20compiler%20samp&safe=off

http://forum.sa-mp.com/showthread.php?t=104410

 

 

... a tak po za tym w tej linijce: mysql_connect("host_mysql", "user_mysql", "password_mysql", "database_mysql", MySQL:0, 1); wpisujesz dane bez host_mysql, user_mysql itd. Coś takiego:

mysql_connect("127.0.0.1", "samp", "123123", "samp", MySQL:0, 1);

Edytowane przez Smurf

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
/*
	@Dunamiczny system teleportów - teles.pwn
	@date : 15 marca 2014 13.33
	@Last update: 20 marca 2014 15.09

*/

#include a_samp.inc
#include mysql.inc
#include zcmd.inc
#include sscanf.inc

new Query[600];

public OnGameModeInit()
{
 	mysql_init();
	mysql_connect("host_mysql s4.servhost.pl", "user_mysql samp11226", "password_mysql TUTAJHASŁO", "user_mysql samp11226", MySQL:0, 1);//Połączenie z bazą danych(mysql).
	if(mysql_ping() != 0)
	{
		printf("Nie udalo sie wczytac konfiguracji bazy danych");//Jeśli nie połączy z bazą danych(mysql).
	}
	printf("Inicjacja i laczenie z baza MySQL...");//jesli połaczy z bazą danych(mysql).

	//tworzy tabele w bazie danych ;d
	new dynamic_teles[500];
    format(dynamic_teles, sizeof(dynamic_teles), "CREATE TABLE IF NOT EXISTS `dynamic_teles` (");
    strcat(dynamic_teles, "`id` int(11) NOT NULL AUTO_INCREMENT");
    strcat(dynamic_teles, ", `name` varchar(30) NOT NULL");
    strcat(dynamic_teles, ", `x` float NOT NULL");
    strcat(dynamic_teles, ", `y` float NOT NULL");
    strcat(dynamic_teles, ", `z` float NOT NULL");
    strcat(dynamic_teles, ", `world` int(11) NOT NULL DEFAULT '0'");
    strcat(dynamic_teles, ", `interior` int(11) NOT NULL DEFAULT '0'");
    strcat(dynamic_teles, ",  PRIMARY KEY (`id`)");
    strcat(dynamic_teles, ", UNIQUE KEY `name` (`name`)");
    strcat(dynamic_teles, " ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;");
    mysql_query(dynamic_teles);
    
    printf("Dynamiczny system teleportów by NexuS, Adagio - uruchomiony!");
    return 1;
}

public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
	if(!success)
	{
		SendClientMessage(playerid, -1, "(E) System nie wykrył takiek komendy!");//Sprawdza czy dana komenda jest w systemie.
    	return 1;
	}
	return 1;
}

public OnPlayerCommandReceived(playerid, cmdtext[])//tutaj całą funkcja do czytania teleportu z bazy danych(mysql).
{
	format(Query, sizeof Query, "SELECT `interior`,`world`,`x`,`y`,`z` FROM `dynamic_teles` WHERE `name` = '%s'", cmdtext);
	mysql_query(Query);
	mysql_store_result();

	static interior[6], world[6], X[12], Y[12], Z[12];
	mysql_fetch_field("interior", interior);
	mysql_fetch_field("world", world);
	mysql_fetch_field("x", X);
	mysql_fetch_field("y", Y);
	mysql_fetch_field("z", Z);
	mysql_free_result();

	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && strval(interior) == 0 && strval(world) == 0)
	{
		new vid = GetPlayerVehicleID(playerid);
		SetVehiclePos(vid, floatstr(X),floatstr(Y),floatstr(Z)  + 0.5);
		LinkVehicleToInterior(vid, 0);
		SetVehicleVirtualWorld(vid, 0);

		}else{
		SetPlayerPos(playerid, floatstr(X),floatstr(Y),floatstr(Z));
	    GameTextForPlayer(playerid, "%s", 5000, 2, cmdtext);
	}
	SetPlayerInterior(playerid, strval(interior));
	SetPlayerVirtualWorld(playerid, strval(world));
	PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
    mysql_free_result();
	return 1;
}

CMD:newteleport(playerid, name_tele[], params[])//cała komenda ;d
{
	if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xB00000FF, "(E) Brak dostępu RCON!");//Sprawdza czy jesteś zalogowany na ROCON

	if(isnull(name_tele) || params[0] == '/') return SendClientMessage(playerid, 0xD20000FF, "(E) /newteleport [nazwa]");//Jeśli wpiszesz błędnie komende

	new Float:x_y_z[3];
	GetPlayerPos(playerid, x_y_z[0], x_y_z[1], x_y_z[2]);//Sprawdza pozycje

	format(Query, sizeof Query, "INSERT INTO `dynamic_teles` (`name`,`interior`, `world`, `X`, `Y`, `Z`) VALUES ('/%s', '%d', '%d', '%.2f', '%.2f', '%.2f');",
	name_tele, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid), x_y_z[0], x_y_z[1], x_y_z[2]);//Zapisuje daną cmd, interior, world, pozycje(x,y,z) do bazy danych(mysql0.

	mysql_query(Query);

	SendClientMessage(playerid, 0xC46200FF, "(I) Teleport poprawnie został stworzony, zapisanu do bazy danych!");//Jesli wszystko zrobisz dobrze - pokaże się info. ;d
	return 1;
}
//Koniec ;p Tera razem z Adagio pracujemy nad systemem administratora. Pozdrawiamy!
Edytowane przez Expert

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ludzie... Wy na prawdę nie czytacie postów. Zobacz wyżej co Ci napisałem. To nie wina kodu, lecz musisz ustawić kompatybilność pawno.exe i pawncc.exe na Windows 98/95... Po za tym pisałem że mysql_connect ma wyglądać tak:

 

mysql_connect("s4.servhost.pl", "samp11226", "TUTAJHASŁO", "samp11226", MySQL:0, 1);

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

Ludzie... Wy na prawdę nie czytacie postów. Zobacz wyżej co Ci napisałem. To nie wina kodu, lecz musisz ustawić kompatybilność pawno.exe i pawncc.exe na Windows 98/95... Po za tym pisałem że mysql_connect ma wyglądać tak:

mysql_connect("s4.servhost.pl", "samp11226", "TUTAJHASŁO", "samp11226", MySQL:0, 1);

Nie mędrkuj tutaj, bo wcale tak to nie musi wyglądać, mogą to być zmienne czy definicje, które mają przypisane odpowiednie wartości i też zadziała ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie mędrkuj tutaj, bo wcale tak to nie musi wyglądać, mogą to być zmienne czy definicje, które mają przypisane odpowiednie wartości i też zadziała ;)

 

Zauważyłeś że w trzecim poście podał link do pobrania tego pliku? Ja go oczywiście pobrałem, otworzyłem i wytłumaczyłem jak się połączyć z bazą danych. Chociaż zgodzę się, mogą to być wartości przypisane do tablicy czy też definicje gdzie podaje się dane ale nie w tym przypadku.

 

@Co do łączenia z bazą danych to również zależy od pluginu, ale w tym przypadku jest to plugin od incognito.

Edytowane przez Smurf

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ten,zrobiłem co trzeba i Error wyskakuje po f5  http://zapodaj.net/d42ab82b66b00.bmp.html

 

 

a pisze w tym oknie tak:

C:\Documents and Settings\x\Moje dokumenty\Downloads\dynamic_teles.pwn(9) : fatal error 100: cannot read from file: "mysql.inc"

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Edytowane przez Expert

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Musisz go wrzucić tam gdzie masz serwer do pawno/include i wtedy przekompilujesz. Po za tym, musisz jeszcze plugin mysql.dll wrzucić do plugins i dopisać go do plugins w server.cfg. Oczywiście mysql.dll jest do windows'a, zaś mysql.so od linuxa i jeżeli masz linuxa to jak dopisujesz go do plugins to musisz jeszcze rozszerzenie podać czyli: plugins mysql.so (http://codegenerators.pl/config)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ok, jeszcze z 2 .inc musiałem dodać potem pisało:

C:\Documents and Settings\x\Moje dokumenty\Downloads\dynamic_teles.pwn(77) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.


ale mam już skrypt w .amx teraz wgram i zobaczę czy mam te pluingi na hostingu.

Edytowane przez Expert

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nie działa, patrze logi a tam:

 

06:34:53] AllowPlayerTeleport() : function is deprecated. Please see OnPlayerClickMap()

 [na polski to:Funkcja jest przestarzała. Proszę zobaczyć OnPlayerClickMap () ]

 

co zrobic??

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mi skrypt normalnie się uruchamia i wszystko jest OK pomimo niektórych błędów w skrypcie. Ta funkcja jest związana najwidoczniej z innym skryptem bądź gamemodem. Możesz ją usunąć z kodu. http://pawno.pl/index.php?/topic/7814-serwer-sam-sie-wylacza/#entry64103 - Zobacz tutaj.

 

@A tak btw. to polecam skrypt od Maku. Najlepsze rozwiązanie wg. mnie i szybko się nawet tworzy teleporty poprzez dodanie jednej linijki. :) http://pawno.pl/index.php?/topic/26196-inc-telesys-v10-by-maku/

Edytowane przez Smurf

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ę.

×