Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.
Üzenetek - Bloody44
Oldalak: 1 2 [3] 4 5 ... 18
31
« Dátum: 2014. április 17. - 11:18:43 »
sziasztok!:) úgy döntöttem, visszatérek a GTA-hoz, azon belül pedig a SA:MP scipteléshez. Értelmes, jó kilátásokkal bíró szerverekhez szívesen megyek configolni, scriptelni (elég magas szinten értek hozzá). Gyakorlatilag cserébe az is elég, ha látom a szerveren a sok játékost aki az általam elkészítet/ vagy javított scripttel élvezi a játékot:D Ha valakinek kell segítség, vagy hamarosan nyíló szerveréhez scriptert keres, írjon. Egyet kérek: csak akkor, ha nem idõmet pazarlom a dologra, és teljesen no name, see rpg-s modot akar a szerveren futtatni. Több éve scripteltem, majd leálltam vele és csak a segítségkérés topicban, majd késõbb már ott sem szóltam hozzá semmihez. Magamtól tanultam, gyakorlatilag 0-ról. Modokat magyarosítottam, másolgattam. Több publikált játékmodom is volt a hivatalos fórumon, de ezeket sajnos már nem találtam meg, valahol a lista mélyén lehetnek :cry3: Szerkesztve: Hozzászólásaim/munkáim/ minden amit eddig a fórumon, scripteléssel kapcsolatban csináltam:)
32
« Dátum: 2014. április 08. - 19:35:10 »
33
« Dátum: 2014. május 26. - 19:52:12 »
Visszatér a vektor normájával (hosszával) tér vissza. [/quote] Már itt elakadtam :wall:
34
« Dátum: 2014. május 25. - 10:03:43 »
Oda lett írva a végére, és az elejére is örüljetek! :tantrum:
35
« Dátum: 2014. május 23. - 21:21:12 »
\"A script LELKE: (A \'TSConnector.inc-re kattintva letölthetõ) [eredeti készítõ: maddinat0r]\" ki van írva!!
36
« Dátum: 2014. május 22. - 19:06:26 »
odaírtam :angel:
37
« Dátum: 2014. május 21. - 12:18:54 »
készítettem egy scriptet, ami egy plugin használatát mutatja be
38
« Dátum: 2014. május 20. - 18:34:24 »
Szerintem nem egyedül vagyok, aki nem ért ezzel egyet ha neked nem tetszik, hát nem használod... :angel:
39
« Dátum: 2014. május 20. - 13:24:02 »
van, töröltem, most már nem tud olvasni valamelyik YSI fájlból :wall: mind1, csak ki akartam próbálni :angel:
40
« Dátum: 2014. május 20. - 13:03:30 »
C:\\Documents and Settings\\Rendszergazda\\Asztal\\SA-SERVER\\pawno\\include\\sscanf2.inc(30) : fatal error 111: user error: Please include <a_npc> or <a_samp> first. Compilation aborted. Pawn compiler 3.2.3664.samp Copyright (c) 1997-2006, ITB CompuPhase 1 Error.
LEL... valaki tudja mi baja?! természetesen az #include <a_samp> benne van ne nézzetek hülyének
41
« Dátum: 2014. május 20. - 06:44:16 »
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 ._.
42
« Dátum: 2014. május 19. - 20:00:52 »
Örülök, hogy tetszik köszi
43
« Dátum: 2014. május 19. - 15:14:45 »
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
//----------------------- 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 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:
44
« Dátum: 2014. május 18. - 20:09:21 »
sziasztok! hogyan tudom megtenni, hogy a parancs bemeneti értékeit a szóköznél darabolom?! példa: /gyereide Jóska Pista Béla ennek visszatérése: Jóska ->1. változó Pista ->2.változóba Béla ->3.változóban így oldottam meg.. ez rendben van? U, S U->User ID vagy névnél való elválasztás I -> számnál való elválasztás S-> ebben nem vagyok biztos, de egy szónál való elválasztás?! CMD:parancs(playerid, params[]) { sscanf(params,\"uis\", userid, ido, ok)) // return SendClientMessage. . . }
45
« Dátum: 2014. május 07. - 18:56:07 »
már 1x kijavítottam neked, és amit Dfoglalo írt teljesen rendben van.. szerintem mûködik a-nélkül is, és nem szoktam rakni az msvcp valamit pedig megint csak úgy mondtam, ahogy nekem jó volt
Oldalak: 1 2 [3] 4 5 ... 18
|