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ástnative TSC_Disconnect(); //Ezzel töröljük a csatlakozástnative TSC_Login(user[], pass[], nickname[]); //Ezzel lépünk be- mint adminisztrátornative TSC_ChangeNickname(nickname[]); //Ezzel válthatjuk a szerver TS-nevét, amit a loginban megadtunk.native TSC_CreateChannel(channelname[]); //Szoba készítéséheznative TSC_DeleteChannel(channelname[]); //Szoba törléséheznative TSC_SetChannelName(channelname[], newchannelname[]); //Szoba név átíráshoznative TSC_SetChannelDescription(channelname[], channeldesc[]); //Szoba leírás váltásnative TSC_SetChannelType(channelname[], E_CHANNEL_TYPE:type); //Szoba típus váltás, a fentebbi ENUM-ban megadottakranative TSC_SetChannelPassword(channelname[], channelpasswd[]); //Szoba jelszó váltásnative TSC_SetChannelTalkPower(channelname[], talkpower); //Szoba \'TalkPower\' váltásanative TSC_SetChannelSubChannel(channelname[], parentchannelname[]); //Szoba mozgatásanative 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ásanative TSC_SetClientChannelGroup(uid[], groupid, channelname[]); //Felhasználó szoba csoport váltásnative 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ólnative TSC_PokeClient(uid[], msg[]); //Poke-olás.. native TSC_SendClientMessage(uid[], msg[]); //üzenet küldése XYZ-neknative TSC_SendChannelMessage(channelname[], msg[]); //szobaüzenet küldésenative TSC_SendServerMessage(msg[]); //szerver üzenet küldése//Forwardok forward TSC_OnClientConnect(nickname[], uid[]); //Ha egy Felhasználó csatlakozikforward TSC_OnClientDisconnect(nickname[], uid[]); //Ha egy Felhasználó lecsatlakozikforward TSC_OnClientChannelMove(nickname[], uid[], channelname[]); //Ha a Felhasználó szobát váltforward TSC_OnClientChannelText(nickname[], uid[], channelname[], msg[]); //Ha a valaki ír valamit a szobábaforward 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.
//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...
//Az egy generált, 27 szám/betû és egy =-jelbõl álló azonosítókulcs, amit a TeamSpeak-ünk ad.
//A szerveren való azonosításhoz ez alapján mozgat/rúg ki/bannol a script.
//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.
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ésenew vanvagynincs[28]; //változóSetPVarString(playerid, \"TSUserID\", TSUserID[ playerid ]); //PVar beállítása az INI-ben megadottakhozGetPVarString(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;}
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;}
//----------------------- 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);}
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;}
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ékneknew 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;}
CMD:bants(playerid, params[]){//Parancs darabolása SSCANF-al new gamerid; //Változó az 1. értékneknew ok[129]; //Változó a 2. értékneknew 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;}
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 TSC_MoveClient(tsid, \"Szobanév\"); }}
//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; }
Szerintem nem egyedül vagyok, aki nem ért ezzel egyet ha neked nem tetszik, hát nem használod... :angel:
Érdemes lenne odaírni az eredeti készítõt\' date=\'..[/quote\']Te még mindig azzal vagy elfoglalva hogy összehoztál egy pluginhoz, egy szkriptet, ami alap járatban az eredeti készítõ témájához ki van írva, mit hogy kell. Jó lenne tényleg végre ki írni, az eredeti készítõ nevét. (maddinat0r)Eredeti téma: Itt[/quote]