Szerző Téma: Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody  (Megtekintve 7916 alkalommal)

Nem elérhető Sentor

  • 227
  • Cappsy védence :D
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #15 Dátum: 2014. május 22. - 21:24:17 »
0 Show voters

Jó lesz ez! Majd lehet IC-ni :D
OFF: Szentem hamar írd ki az eredeti készítõt! Ezek a fiúk nem fogják vissza magukat addig, amíg nem írod ki...

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #16 Dátum: 2014. május 22. - 23:27:16 »
0 Show voters
[gmod]Az eredeti készítõ nevét kötelezõ kiírni amikor publikálod ! Megkérlek téged arra, hogy próbáld 24 órán belül módosítani a témát! Köszönöm szépen.[/gmod]

Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #17 Dátum: 2014. május 23. - 21:21:12 »
0 Show voters
\"A script LELKE: (A \'TSConnector.inc-re kattintva letölthetõ) [eredeti készítõ: maddinat0r]\" ki van írva!!

Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #18 Dátum: 2014. május 23. - 21:41:09 »
0 Show voters
EREDETI KÉSZÍTÕ: ReMoTe(Bloody44) [ÉN].[/quote]
Akkor ez mi? Bár igen láttom ki van írva, de ez még b*ssza a csõröm.

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #19 Dátum: 2014. május 23. - 22:04:09 »
+3 Show voters
A k*rv* életbe hát mi a \'csa ami itt megy már? Szégyen..
Csórika írt egy **szott scriptet a plugin alá, nemhogy örülnétek neki. Nem, fél témán át azzal kell **szogatni, hogy nincs kint az \"eredeti készítõ neve\".....................
« Utoljára szerkesztve: 2014. május 23. - 22:06:28 írta kurta999 »

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #20 Dátum: 2014. május 23. - 22:07:11 »
+1 Show voters
Segítek, mert látom egyedül sehogy sem akar sikerülni:
 
Plugin/Include készítõ: maddinat0r
Script készítõ: Bloody44
 
[/quote]
Szépen berakod a Szia alá és senki nem fog belekötni, illetve nekem a leírás alapján végig az jön le, hogy te és te, senki más, a \"kisbetûs\" részben pedig az alap, tulajdonképpen majdnem az egész (azért egy ilyet megírni max 10 perc, fõleg hogy hiv. fórumon majdnem ugyan ilyen van..) script készítõje csak így oda van firkantva...
 
Idézetet írta: kurta999 date=1400875449\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"48291\" data-ipsquote-contentclass=\"forums_Topic
A k*rv* életbe hát mi a \'csa ami itt megy már? Szégyen..
Csórika írt egy **szott scriptet a plugin alá, nemhogy örülnétek neki. Nem, fél témán át azzal kell **szogatni, hogy nincs kint az \"eredeti készítõ neve\".....................
 
Azért ezzel olyan sokat nem kell szopni.

Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #21 Dátum: 2014. május 25. - 10:03:43 »
0 Show voters
Oda lett írva a végére, és az elejére is :) örüljetek!  :tantrum:

Nem elérhető EntoX

  • 195
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #22 Dátum: 2014. május 28. - 19:58:41 »
0 Show voters
Jó kis Script. Csak nem lehetett volna egybõl odaírni a készítõt?

Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #23 Dátum: 2014. május 28. - 20:42:57 »
0 Show voters
Ha te készítetted akkor minden elismerésem a tiéd!  :D

Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #24 Dátum: 2014. május 19. - 15:14:45 »
0 Show voters

Sziasztok! :)
egy (újabb) frankó kis lehetõséget osztok meg veletek, amit fõleg az RP szerverek jövõjében, nagy elõrelépés  :thumbsup:
Sorok száma: 546 [Kommentárral]
Térjünk is a lényegre..
Ezzel a scripttel, a TS szerverünket összeköthetjük a SA:MP szerverünkkel. Hogy hogyan, az más tészta- most az a fontos, hogy ez miért jó nekünk?!
-Lehetõség nyílik a szerveren lévõ játékosok automatikus mozgatására TS-en
-Nem kell még a tálcára se letennünk a GTA-t, hogy bannoljunk, kickeljünk egy idiótát TS-rõl.
-Számos kényelmi funkció, sok parancs.
A script LELKE: (A \'TSConnector.inc-re kattintva letölthetõ) [eredeti készítõ: maddinat0r] TSConnector.inc és TSConnector.dll (vagy .so)
Errõl röviden: Egy include, mely a DLL-el összekötve végzi a dolgát. Ebben vannak megírva a parancsok, a filterscript gyakorlatilag csak a parancsok felhasználása.
 
 




A TSConncetor.inc-ben lehívott native-k:
 

enum E_KICK_TYPE
{
KICK_TYPE_CHANNEL = 1,
KICK_TYPE_SERVER
};
enum E_CHANNEL_TYPE
{
CHANNEL_TYPE_PERMANENT = 1,
CHANNEL_TYPE_SEMI_PERMANENT,
CHANNEL_TYPE_TEMPORARY
};
native TSC_Connect(ip[], port[]); //Ezzel hozzuk létre a csatlakozást
native TSC_Disconnect(); //Ezzel töröljük a csatlakozást
native TSC_Login(user[], pass[], nickname[]); //Ezzel lépünk be- mint adminisztrátor
native TSC_ChangeNickname(nickname[]); //Ezzel válthatjuk a szerver TS-nevét, amit a loginban megadtunk.
native TSC_CreateChannel(channelname[]); //Szoba készítéséhez
native TSC_DeleteChannel(channelname[]); //Szoba törléséhez
native TSC_SetChannelName(channelname[], newchannelname[]); //Szoba név átíráshoz
native TSC_SetChannelDescription(channelname[], channeldesc[]); //Szoba leírás váltás
native TSC_SetChannelType(channelname[], E_CHANNEL_TYPE:type); //Szoba típus váltás, a fentebbi ENUM-ban megadottakra
native TSC_SetChannelPassword(channelname[], channelpasswd[]); //Szoba jelszó váltás
native TSC_SetChannelTalkPower(channelname[], talkpower); //Szoba \'TalkPower\' váltása
native TSC_SetChannelSubChannel(channelname[], parentchannelname[]); //Szoba mozgatása
native TSC_MoveChannelBelowChannel(channelname[], parentchannelname[]); //Szoba mozgatása
 
native TSC_KickClient(uid[], E_KICK_TYPE:kicktype, reason[]); //Felhasználókidobása, az ENUM-ban megadottak alapján. (szerver, vagy szoba)
native TSC_BanClient(uid[], seconds, reason[]); //Felhasználó Bannolása TS-rõl*
native TSC_MoveClient(uid[], channelname[]); //Felhasználó mozgatása
native TSC_SetClientChannelGroup(uid[], groupid, channelname[]); //Felhasználó szoba csoport váltás
native TSC_AddClientToServerGroup(uid[], groupid); //Felhasználó hozzáadása egy szerver csoporthoz (pl admin adása..)
native TSC_RemoveClientFromServerGroup(uid[], groupid); //Felhasználó törlése egy szerver csoportból
native TSC_PokeClient(uid[], msg[]); //Poke-olás..
 
native TSC_SendClientMessage(uid[], msg[]); //üzenet küldése XYZ-nek
native TSC_SendChannelMessage(channelname[], msg[]); //szobaüzenet küldése
native TSC_SendServerMessage(msg[]); //szerver üzenet küldése
//Forwardok
forward TSC_OnClientConnect(nickname[], uid[]); //Ha egy Felhasználó csatlakozik
forward TSC_OnClientDisconnect(nickname[], uid[]); //Ha egy Felhasználó lecsatlakozik
forward TSC_OnClientChannelMove(nickname[], uid[], channelname[]); //Ha a Felhasználó szobát vált
forward TSC_OnClientChannelText(nickname[], uid[], channelname[], msg[]); //Ha a valaki ír valamit a szobába
forward TSC_OnClientServerText(nickname[], uid[], msg[]); //Ha valaki szerver üzenetet küld

 


//!!!!!!!!!!!!!!!!!!!!!!!!!!!! Fontos tudni: !!!!!!!!!!!!!!!!!!!!!!!!!!!!
//A TS-rõl való bannolást, ki lehet kijátszani a TS ID megváltoztatásával.

 

Errõl röviden ennyit.. Jöhet maga a script.
 
Amit használtam:
 

//SSCANF darabolásra
//TSConnector include, ami nélkül ez létre sem jött volna
//ZCMD a könyebb SSCANF-hoz (és gyorsabb parancskezeléshez)
//y_ini a fájlban lévõ tároláshoz
//A scripten belüli lekéréshez pedig PString-eket csináltam, de így utólag
//belegondolva lehet jobb lett volna ha azt is Y_INI-vel csinálom.
//             vagy mégsem...

 
Magam fejlesztettem, a felhasználása engedélyezett, ha a nevem nem tünteted el.


Egy kis infó:
Mi is az a TS USER ID?!
 

//Az egy generált, 27 szám/betû és egy =-jelbõl álló azonosítókulcs, amit a TeamSpeak-ünk ad.

 
Mire jó?
 

//A szerveren való azonosításhoz :) ez alapján mozgat/rúg ki/bannol a script.

 



Csatlakozáskor a következõ történik:

 

//A szerver elõkészíti a játékos INI-jét
//kiolvassa a TSUserID-t.
//
//Ha ez megvan, ellenõrizzük hogy a TSUserID kevesebb mint 27 vagy több mint 29 karakter
//ha az egyik igaz, (vagy nem is létezik, vagy hibás a TSID)
//
//Feldobjuk azt a dialogot, ahol megadhatja a (valódi) TSUSER ID-t.

 


Pawn-nyelven:

 

public OnPlayerConnect(playerid)
{
//Valami módon csatlakozáskor, definiálnunk kell a TSUSER-id változót.
//Ha ezt nem tesszük meg, akkor gyakorlatilag használhatatlan a scriptünk ^^
//Ezt akár megírhatjuk egy MySQL -es táblára, lekéréssel is, melynek lényege:
   //A script lekéri az X tábla Y sorából a \"TSUserID\" változót.
   //Tipp: Ezt összeköthetjük a weblapunkkal, hogy a játékosok
    // pl.: játékon kívül megadják a TSUserID-jüket, és azt használja majd a szerver azonosításra.
//Én, egy szipla játékon belüli kérést (input boxot) írok most meg, aminek
//eredményét mentjük egy INI-fájlban.
    INI_ParseFile( user_ini_file( playerid ), \"load_user_%s\", .bExtra = true, .extra = playerid ); //INI Elõkészítése
new vanvagynincs[28]; //változó
SetPVarString(playerid, \"TSUserID\", TSUserID[ playerid ]); //PVar beállítása az INI-ben megadottakhoz
GetPVarString(playerid, \"TSUserID\", vanvagynincs, 28); //Majd ennek lekérése
    if(strlen(vanvagynincs) >= 27 && strlen(vanvagynincs) <= 29) //TSUserID ellenõrzése
{ //Ha nem megfelelõ
ShowPlayerDialog(playerid, DIALOG_TSID, DIALOG_STYLE_INPUT, \"TS USER ID\", \"Kérlek add meg, mi a TS3-user ID-d:\", \"Mentés\", \"Mégsem\");
SendClientMessage(playerid, 0xFFFFFFF,\"Ha nem tudod mi az, nézz utána a szerver honlapján, vagy használd a \'/tsidhelp\' parancsot!\");
}
return 1;
}

 
Lecsatlakozáskor pedig mentjük a TSUserID-t, INI-be:
 

public OnPlayerDisconnect(playerid, reason)
{
    new INI:File = INI_Open( user_ini_file( playerid ) );
new pvarid[28];
GetPVarString(playerid, \"TSUserID\", pvarid, 28);
    INI_SetTag( File, \"TeamSpeak Connector BY: Bloody44 ||ReMoTe\" );
    INI_WriteString( File, \"TSUserID\", pvarid);
    INI_Close( File );
return 1;
}

 


Most pedig térjünk el az \"UserID\"-rõl, akármilyen fontos is az..

 



A \'PUBLIC\'-részek.
Hogy mi-mit csinál, megtaláljátok fentebb, viszont ha tudsz angolul, nem nehéz megérteni sem  ;D



//-----------------------    PUBLIC --------------------------
public TSC_OnClientConnect(nickname[], uid[])
{
new string[512];
new string2[512];
    format(string,sizeof(string),\"TSConnector: %s csatlakozott a TS-szerverünkre! Gyere te is! :)\", nickname);
    format(string2,sizeof(string2),\"TSConnector: %s lecsatlakozott. TSUserID: %s\", nickname, uid);
SendClientMessageToAll(-1, string);
print(string2);
}
public TSC_OnClientDisconnect(nickname[], uid[])
{
new string[512];
new string2[512];
    format(string,sizeof(string),\"TSConnector: %s lecsatlakozott a TS-szerverünkrõl.\", nickname);
    format(string2,sizeof(string2),\"TSConnector: %s lecsatlakozott. TSUserID: %s\", nickname, uid);
SendClientMessageToAll(-1, string);
print(string2);
}
public TSC_OnClientChannelMove(nickname[], uid[], channelname[])
{
new string[512];
    format(string,sizeof(string),\"TSConnector: %s(UserID: %s) átment ebbe a szobába: %s\", nickname, uid, channelname);
SendToAdmins(0xFFFFFFF, string);
return 1;
}
public TSC_OnClientChannelText(nickname[], uid[], channelname[], msg[])
{
new string[512];
    format(string,sizeof(string),\"TSConnector: %s(UserID: %s) ezt írta TS-en: %s szoba: %s\", nickname, uid, msg, channelname);
SendToAdmins(0xFFFFFFF, string);
return 1;
}
public TSC_OnClientServerText(nickname[], uid[], msg[])
{
new string[512];
    format(string,sizeof(string),\"Szerver üzenet TS-en: (%s:) %s\", nickname, msg);
SendClientMessageToAll(-1, string);
}

 




Jöhet néhány parancs. Gyakorlatilag az majdnem az összes \"native\" által meghívott lehetõséget felhasználtam, de nem mindet fogom ide kiemelni.
 


CMD:tsservermsg(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))
{
return SendClientMessage(playerid, 0xFFFFFFF,\"HIBA: Ezt a parancsot te nem használhatod!\");
}
else
{
new uzenet[128]; //Változó a 1. értéknek
//Ha nem így írta a parancsot
    if(sscanf(params,\"s\", uzenet)) return SendClientMessage(playerid, 0xFFFFFFF,\"Így próbáld: /tsservermsg [üzenet]\");
    TSC_SendServerMessage(uzenet);
}
return 1;
}

 
TS Szerver üzenet küldése!





CMD:tschannelmsg(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))
{
return SendClientMessage(playerid, 0xFFFFFFF,\"HIBA: Ezt a parancsot te nem használhatod!\");
}
else
{
new chname[256]; //Változó az 1. értéknek
new uzenet[256]; //Változó a 2. értéknek
//Ha nem így írta a parancsot
    if(sscanf(params,\"ss\", chname, uzenet)) return SendClientMessage(playerid, 0xFFFFFFF,\"Így próbáld: /tschannelmsg [szoba] [üzenet]\");
    TSC_SendChannelMessage(chname, uzenet);
}
return 1;
}

 
Szoba üzenet küldés





CMD:bants(playerid, params[])
{
//Parancs darabolása SSCANF-al
    new gamerid; //Változó az 1. értéknek
new ok[129]; //Változó a 2. értéknek
new ido; //Változó a 3. értéknek
//Ha nem így írta a parancsot
    if(sscanf(params,\"uis\", gamerid, ido, ok)) return SendClientMessage(playerid, 0xFFFFFFF,\"Így próbáld: /bants [játékos ID] [idõ(másodperc)] [ok]\");
//Ha nem admin
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,\"HIBA: Ezt a parancsot te nem használhatod!\");
//Az \"userrid\"-nek a játékoshoz kötött TSID-jének lekérdezése..
    new tsid[28];
    GetPVarString(gamerid, \"TeamSpeakID\", tsid, 28);
//\"tsid\" bannolása a szerverrõl, \"ok\"-miatt..
TSC_BanClient(tsid, ido, ok);
return 1;
}

 
Kliens bannolása..






Írtam egy példát arra, hogy miként is kell megoldani azt, ha a játékos X pontban van, Y szobába dobjon.


 

public OnPlayerUpdate(playerid)
{
  //ha a játékos az adott pontban van, akkor TS-en egy bizonyos
    //szobába rakja át [AUTOMATIKUSAN]
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 2695.6880, -1704.6300, 11.8438)) //Ha a pontban van
    {
    new tsid[28]; //TeamSpeakID változó lekérése.
    GetPVarString(playerid, \"TeamSpeakID\", tsid, 28);
   //Berakjuk a \'SZOBANÉV\' szobába :D
        TSC_MoveClient(tsid, \"Szobanév\");
    }
}

 





Végül pedig kiemelem a dialog kezelését is:



 

//DIALOG KEZELÉS!!!
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_TSID) //Dialog..
    {
        if(!response) // Ha MÉGSEM-re megy, kidobás
        {
    new name[MAX_PLAYER_NAME+1], string[256+MAX_PLAYER_NAME+1]; //Változó
    GetPlayerName(playerid, name, sizeof(name)); //Név lekérése a forrmázáshoz
    format(string, sizeof(string), \"TSConncetor: %s ki lett rúgva, mert nem adta meg a TS ID-jét..\", name); //Formázás
            SendToAdmins(-1,string); //Üzenet küldése az adminoknak
            KickWithMessage(playerid, -1, \"Sajnálom, de ahhoz hogy a szerveren játszhass, rendelkezned kell TS ID-vel.. Ha nem tudod mi az, olvasgass kicsit a szerver honlapján.\"); //Játékos kidobása üzenettel
        }
        else // Ha MENTÉS-re megy, megézzük hogy 24 karakter-e a bevitt érték (mint csatlakozáskor)
        {
            if(strlen(inputtext) >= 27 && strlen(inputtext) <= 29)
            { //Ha nem 28 (több vagy kevesebb), hibaüzenet és dialog újramutatása
            SendClientMessage(playerid, -1, \"HIBA: A megadott Team Speak User ID hibásnak tûnik. Kérlek ellenõrizd!\");
   ShowPlayerDialog(playerid, DIALOG_TSID, DIALOG_STYLE_INPUT, \"TS USER ID\", \"Kérlek add meg, mi a TS3-user ID-d:\", \"Mentés\", \"Mégsem\");
            } //Ha 28 (helyes), akkor mentés \"TeamSpeakID\"-PString be.
            else {SetPVarString(playerid, \"TeamSpeakID\", inputtext);}
        }
        return 1;
    }
    return 0;
}

 





Igazából ennyi lenne a rövid bemutató, kommentárokat/leírást a PAWN CODE-on belül találtok.
Ha valami mégsem érthetõ, akkor írj és segítek :)
Remélem sokan veszitek hasznát.
Letöltés:
PASTEBIN
 

Credits:
Plugin/Include készítõ: maddinat0r
Script készítõ: Bloody44
 
 
Megköszönni ÉR!  :angel:
« Utoljára szerkesztve: 2014. május 24. - 17:24:44 írta Bloody44 »

Nem elérhető Peterta12

  • 183
  • Peterta12
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #25 Dátum: 2014. május 19. - 19:11:58 »
0 Show voters
Tök jó!Ilyen se jutott volna az eszembe ha keresnék :D  :thumbsup: Megy  a plusz!

Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #26 Dátum: 2014. május 19. - 20:00:52 »
0 Show voters
Örülök, hogy tetszik  ;D köszi

Nem elérhető Lofoli

  • 296
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #27 Dátum: 2014. május 19. - 20:25:36 »
0 Show voters
Ez jó nekem tetszik csak így tovább!
Gratt hozzá .

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #28 Dátum: 2014. május 19. - 20:42:23 »
0 Show voters
Érdemes lenne odírni az eredeti készítõt, a többi csak díszítés, illetve miért lenne az RP szerverek jövõje? Beszélni nem lehet vele..
http://forum.sa-mp.com/showthread.php?t=437671

Team Speak 3 Connector (TS összekötése a szerverünkkel) by: Bloody
« Válasz #29 Dátum: 2014. május 20. - 06:44:16 »
0 Show voters
Mivel nem lehet beszélni?! komplett IC ts szervert ki lehet építeni vele..
a fórum téma pedig ott van.. csak rá kellene kattintani ._.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal