Sziasztok
Hivatalos fórumon találtam egy plugint, programom fejlesztése közben, és mivel nekem sokat segített, gondoltam megosztom ezt veletek..
Az eredeti készítõ: Scottas
Ez a plugin, az \"FTP\" névre hallgat, mely (a nevébe is benne van) FTP csatlakozáshoz kell.. ez jól jöhet pl a script fájljaink mentésére...
Forwardok:
forward OnFtpFileSent ( remotefile [ ], localfile [ ] );
forward OnFtpFileReceived ( remotefile [ ], localfile [ ] );
Funkciók:
native Ftp_Connect(server[], username[], password[]); //Csatlakozás
native Ftp_CreateDirectory(directory[]); //Mappa készítés
native Ftp_DeleteFile(file[]); //Fájl törlése
native Ftp_GetFile(remote_file[],local_file[],bool:owerwrite); //Fájl lekérése
native Ftp_PutFile(remote_file[],local_file[]); //Fájl feltöltése
native Ftp_RemoveDirectory(directory[]); //Mappa törlése
native Ftp_RenameFile(file_name[],new_file_name[]); //Fájl nevének átírása
native Ftp_Close(/*Nincs paraméter*/); //FTP csatlakozás leállítása..
native Ftp_OpenFile(file[],access); //Fájl megnyitása
native Ftp_ReadFile(handle,buff[],size=sizeof(buff)); //Fájl megnyitása olvasásra
native Ftp_WriteFile(handle,string[],size=sizeof(string)); //Írás fájlba
native Ftp_CloseFile(handle); //Fájl bezárása..
native Ftp_FileExists(file[]); //Fájl lekérése, hogy fent van-e..
Példa:
public OnGameModeInit ( )
{
new
var;
// FTP csatlakozás..
var = Ftp_Connect ( \"serverip\", \"username\", \"password\" );
if ( !var )
print ( \"_::FTP Error: Nem sikerült csatlakozni az adatbázisra...\" );
// \"Gyökér\" mappa készítése.. (ez nem szükséges, csak akkor, ha teljesen üres az FTP-nk)
var = Ftp_CreateDirectory ( \"Dir\" );
if ( !var )
print ( \"::__ FTP Connection: Nem sikerült a mappa létrehozása..\" );
// Mappa készítése, a \"Gyökér\" mappába..
Ftp_CreateDirectory ( \"Dir/New\" );
// Fájl megnyitása
var = Ftp_OpenFile ( \"Dir/New/newfile.txt\", FTP_WRITE );
Ftp_WriteFile ( var, \"Elsõ sor\\n\" );
Ftp_WriteFile ( var, \"Második sor\\n\" );
//(Használd a \\n, parancsot, új sor kezdéséhez,
//vagy a \\r parancsot, bekezdés készítéséhez!)
/* Érdemes elolvasni ezt: http://wiki.sa-mp.com/wiki/File_Functions */
// Fájl bezárása..
Ftp_CloseFile ( var );
// Most, egy letöltési példát nézzünk...
// Infó: remote_file[] - a létezõ fájl a szerverünkön
// Infó2: local_file[] - ahová szeretnénk letölteni a fájlt..
var = Ftp_GetFile ( \"Dir/New/newfile.txt\", \"scriptfiles/ournewfile.txt\", true ); //A Gyökéren belül, a New mappából, a \"newfile.txt\" letöltése, a \"scriptfiles/ournewfile.txt\"-be
// Megjegyzés: A parancs végén, ha a \"True\" parancsot adjuk ki,
// akkor ha a fájlunk már létezik a letölteni kívánt helyen, felül lesz írva!
// Példa: Ha már létezik az \"ournewfile.txt\" és a parancs vége \"True\" akkor letöltéskor,
// a script, felül fogja azt írni..
if ( var )
print ( \"A fájl letöltve\" );
// Egy példa, fájl törlésére..
var = Ftp_DeleteFile ( \"Dir/New/newfile.txt\" );
//ezzel, a gyökérmappán belüli \"new\" mappából töröljük, a \"newfile.txt\"-t
if ( var )
print ( \"Sikeresen törölve!\" );
// Töröljük a \"new\" mappát, a gyökérbõl..
var = Ftp_RemoveDirectory ( \"Dir/New\" );
if ( var )
print ( \"Sikeresen törölve...\" );
// A törlés után, most tölltsünk is fel valamit..
var = Ftp_PutFile ( \"Dir/uploaded_file.txt\", \"pawno/include/ftp.inc\" );
/* Az elsõ idézõ jelek közé, a cél mappa, valamint fájl kerül, a második közé pedig a feltölteni
kívánt fájlunk.. esetünkben, az FTP-nk gyökér mappájába töltjük fel, \"uploaded_file.txt\" néven, a pawno/include mappánkból, az FTP-inc-et ...*/
if ( var )
print ( \"A fájl sikeresen feltöltve\" );
// Most nyissunk meg egy fájlt, de csak olvasásra!
var = Ftp_OpenFile ( \"Dir/uploaded_file.txt\", FTP_READ );
new
line [ 100 ]; //Egy változó, mely a sorokat jelöli
// Olvassunk is belõle, ha már megnyitottuk
while ( Ftp_ReadFile ( var, line ) )
print ( line ); //Majd írjuk ki, a kiolvasott adatokat...
// Végül, zárjuk be a fájlt..
Ftp_CloseFile ( var );
// Az egésznek a végén pedig töröljük a csatlakozást, vagyis zárjuk be az FTP-t...
Ftp_Close ( );
}
Ha valami nem tiszta, írjatok
Callbackek:
forward OnFtpFileSent ( remotefile [ ], localfile [ ] );
forward OnFtpFileReceived ( remotefile [ ], localfile [ ] );
Bugok:
Jelenleg nincs ..
Készítõk:
RyDeR, angol leírás készítése..
Bloody, magyar leírás készítése..
Pghpunkid, segítség a callback-ben..
Scottas plugin készítõ..
Letöltés itt!