Üzenetek megjelenítése

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
Munkaerő keresése / Vissza a SA:MP hoz. Scriptert keresel?:D
« 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:
Nem RP szerverek elõnyben:3Szerkesztve: Hozzászólásaim/munkáim/ minden amit eddig a fórumon, scripteléssel kapcsolatban csináltam:)
 

32
Szkript kérések / valakinek megvan ez a script? vagy ehhez hasonló?
« Dátum: 2014. Április 08. - 19:35:10 »

33
Fórum Archívum (Témák/Fórumok) / Re:[Matematikai] VectorSize
« 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:  :D

34
Oda lett írva a végére, és az elejére is :) örüljetek!  :tantrum:

35
\"A script LELKE: (A \'TSConnector.inc-re kattintva letölthetõ) [eredeti készítõ: maddinat0r]\" ki van írva!!

36
odaírtam  :angel:

37
készítettem egy scriptet, ami egy plugin használatát mutatja be ;)

38
Szerintem nem egyedül vagyok, aki nem ért ezzel egyet :)
ha neked nem tetszik, hát nem használod...  :angel:

39
Pluginok és Programok / PAWN Compiler Zeex javításaival
« 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
Pluginok és Programok / PAWN Compiler Zeex javításaival
« 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
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
Örülök, hogy tetszik  ;D köszi

43

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:

44
Segítségkérés / SSCANF kérdés, darabolás szóköznél?
« 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? :o
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
Segítségkérés / Szerver indítás és pawno gond
« 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 :D

Oldalak: 1 2 [3] 4 5 ... 18
SimplePortal 2.3.7 © 2008-2024, SimplePortal