Ü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.


Témák - Game94

Oldalak: 1 [2] 3 4 5
16
Leírások/Útmutatók / [Függvény] isPlayerConnected
« Dátum: 2011. December 30. - 16:58:14 »
bool isPlayerConnected ( int playerid )

 
 Ezzel a függvénnyel le lehet ellenõrizni hogy az adott id-jû játékos csatlakozva van-e a szerverhez, vagy nem
Paraméterek:
 -int playerid (azaz a játékos id-je egész számmal megadva)
Visszaadott érték:
 -Lehet igaz (true), vagy hamis (false). Ha a játékos csatlakozva van igaz, ha nem akkor hamis

17
Leírások/Útmutatók / Csatlakozási/Lecsatlakozási üzenet
« Dátum: 2011. December 30. - 16:53:00 »
Felcsatlakozás
 
function onPlayerConnect(playerid)
{
    sendMessageToAll(getPlayerName(playerid) + \" felcsatlakozott a szerverre\", 0x33AA3300);
}
addEvent(\"playerConnect\", onPlayerConnect);

 
Az onPlayerConnect callback alatt lévõ sorok akkor futnak le amikor valaki felcsatlakozik a szerverre.
A sendMessageToAll-al elküldjük azt az üzenetet hogy xy felcsatlakozott a szerverre.
A getPlayerName(playerid)-vel lekérdezzük a felcsatlakozott játékosnak a nevét, majd egy + (plusz) jellel hozzáfûzzük a szöveghez.
Azt tudni kell a a sendMessage-rõl hogy a szöveget \"\" (idézõjel-ek) közé kell tenni. De ha pl egy változót akarunk kiíratni akkor azt hozzá kell fûzni a szöveghez egy + jellel. (A változót nem kell idézõjelek közé tenni!). A szöveg után vesszõvel elválasztva a szín RBG kódját kell írni.
És végül az addEvent azért kell hogy mûködjön az onPlayerConnect funkció.
Lecsatlakozás
 
function onPlayerDisconnect(playerid, reason)
{
    if(!reason) sendMessageToAll(getPlayerName(playerid) + \" lecsatlakozott a szerverrõl\", 0x33AA3300);
    else if(reason) sendMessageToAll(getPlayerName(playerid) + \" kifagyott\", 0x33AA3300);
}
addEvent(\"playerDisconnect\", onPlayerDisconnect);

 
Itt most nem fogok mindent megint leírni, csak az új dolgokat.
Az onPlayerDisconnect funkciónak van egy olyan paramétere hogy reason. Pl ha valaki crashel, akkor ezzel ki tudjuk írni hogy crash miatt hagyta el a szervert.
De ebben van már elágazás, az \"if\" és \"else if\". Az if jelentése: \"ha\". Az else segítségével létre tudunk hozni több ágat.
Az else elõtti felkiáltójelet operátornak nevezzük és ezt akkor használjuk ha le akarjuk ellenõrizni hogy a feltétel nem teljesült.
Az elsõ sor ezt jelenti: ha a reason nem teljesül akkor kiírja az üzenetet
Második sor: ellenkezõleg, ha teljesül akkor kiírja az üzenetet.
Röviden ennyi lett volna, remélem érthetõ volt :)

18
Leírások/Útmutatók / /kill parancs
« Dátum: 2011. December 30. - 16:52:26 »
function onPlayerCommandText(playerid, commandtext)
{
    if(commandtext == \"/kill\")
    {
        SetPlayerHealth(playerid, 0);
    }
    return 0;
}

 
Az onPlayerCommandText funkció segítségével lehet parancsokat létrehozni.
 
if(commandtext == \"/kill\")

 
Ebben a sorban láthatjuk a parancs nevét. Leellenõrizzük hogy commandtext egyenlõ-e a /kill-el és ha igen akkor lefut a parancs. Ezen sok mindent nem kell magyarázni, a /kill helyére csak be kell írni a parancs nevét.
A következõ sorban a SetPlayerHealth-al 0-ra állítjuk a játékos életét, azaz megöljük.
Láthatjuk hogy a funckió végén van egy return 0; visszatérés. Az mindenképpen kell a végére hogy mûködjenek a parancsok. (Nem kell mindegyik parancs után, csak a legvégére!)

19
Leírások/Útmutatók / /givecash parancs
« Dátum: 2011. December 30. - 16:51:59 »
function onPlayerCommand(playerid, command)
{
    local cmd = split(command, \" \");
    if(cmd[0] == \"/givecash\")
    {
        if(cmd.len() != 3) {
            sendPlayerMessage(playerid, 0xFFFFFFAA, \"Használat: /givecash [id] [összeg]\");
            return 1;
        }
        local id = cmd[1].tointeger();
        local osszeg =  cmd[2].tointeger();
        if(!isPlayerConnected(id)) {
            sendPlayerMessage(playerid, 0xFFFFFFAA, \"Hibás ID!\");
            return 1;       
        }
        givePlayerMoney(id, osszeg);
        givePlayerMoney(playerid, -osszeg);
       
        sendPlayerMessage(playerid, 0xFFFFFFAA, \"Adtál \" + getPlayerName(playerid) + \"-nek \" + osszeg + \"$-t\");
        sendPlayerMessage(id, 0xFFFFFFAA, \"Kaptál\" + getPlayerName(playerid) + \"-tõl\" + osszeg + \"$-t\");
        return 1;
    }
    return 0;
}
addEvent(\"playerCommand\", onPlayerCommand);

 
Most azért csináltunk egy ilyen parancsot hogy lássátok hogy hogyan kell olyan parancsot csinálni amiben van szóköz is.
Elõször is a slipt paranccsal elválasszuk egymástól a szavakat. Ez így válassza el egymásól a szavakat pl:
\"ez egy szöveg\"
Most ezt a szöveget fogjuk darabolni és eltárolni egy változóban. A változóban úgy fogja sorban eltárolni ahogy sorba jönnek a szóközök. Pl eltároljuk a \"szavak\" nevû változóban:
szavak[0]-ban lesz az \"ez\"
szavak[1]-ben lesz az \"egy\"
szavak[2]-ben lesz a \"szöveg\"
A cmd.len()-el leellenõrizzük hogy hány tagból áll a parancs amit beírt a játékosunk, ha túl rövid akkor kiírjuk neki hogyan kell használni a parancsot.
A local id-ben eltároljuk a második paramétert a parancsból, azaz az id-t, az osszeg-ben, meg az összeget.
Az isPlayerConnected-el leellenõrizzük hogy a megadott játékos fent van-e a szerveren. Azért kell elé a felkiáltójel, mert így azt jelenti hogy: ha a játékos NINCS a szerveren akkor kiírja neki a szöveget.
Ha nem lenne ott a felkiáltójel akkor ezt jelentené: ha a játékos fent van a szerveren akkor kiírja az üzenetet.
Most oda kell adni az egyiknek és elvenni a másiktól a pénzt. Ezt a givePlayerMoney-al tehetjük meg.
Mivel az id nevû változóban tároljuk azt a számot akinek utalni akarja a pénzt, ezért adjuk az \"id\"-nek a pénzt és vesszük el a \"playerid\"-tõl a pénzt.
És már csak a szöveg maradt amit kiírunk mindkét játékosnak, de ezen szerintem nincs mit magyarázni.
Remélem minden érthetõ :)

20
Segítségkérés / Két kérdés (változó és parancsfeldolgozó)
« Dátum: 2011. December 27. - 16:51:57 »
Lenne két kérdésem:
Szerintetek melyiket használjam?
Az alap változókat (new xy;) vagy a PVar-t használjam? Szerintetek melyik a gyorsabb és melyiket célszerûbb használni ?
A második kérdés:
Melyik parancsfeldolgozót érdemes használni és miért ?
ZCMD + sscanf vagy YCMD + sscanf ?

21
Segítségkérés / Hogyan olvassak ki mysql-bõl házakat ?
« Dátum: 2010. December 28. - 17:00:50 »
Mysql-bõl hogyan olvassak ki úgy házakat hogy ne laggoltassa be a módot ?
Mert kb 250-300 házat , 50-10 bizt és kb 1000 kocsit kell beolvasnia ...
Szóval hogyan oldjam meg úgy hogy ne legyen vele probléma ?

22
Segítségkérés / Mysql mentés gond ?
« Dátum: 2010. December 25. - 09:49:01 »
Kipróbáltam két fajta mentést is , de valamiért egyik sem menti el az adatokat :S
Mi lehet a gond ?
1 :
 
if(IsLogged[playerid] == 1)
      {
new string[6][200];
new parancs[1000];
new nev[24];
GetPlayerName(playerid,nev,24);
format(string[0],200,\"UPDATE playerinfo SET pMoney = %d,pBankMoney = %d,\",GetPlayerMoney(playerid),PlayerInfo[playerid][pBankMoney]);
format(string[1],200,\"pDeaths = %d,pKills = %d,pAdmin = %d,\",PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pAdmin]);
format(string[2],200,\"pBanned = %d,pWarns = %d,pC4 = %d,\",PlayerInfo[playerid][pBanned],PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pC4]);
format(string[3],200,\"pVIP = %d,pKredit = %d,\",PlayerInfo[playerid][pVIP],PlayerInfo[playerid][pKredit]);
format(string[4],200,\"pOra = %d,pPerc = %d,pMasodperc = %d,\",PlayerInfo[playerid][pOra],PlayerInfo[playerid][pPerc],PlayerInfo[playerid][pMasodperc]);
format(string[5],200,\"WHERE pNev = \'%s\'\",nev);
format(parancs,1000,\"%s%s%s%s%s%s\",string[0],string[1],string[2],string[3],string[4],string[5]);
mysql_query(parancs);
mysql_free_result();
IsLogged[playerid] = 0;
}

 
2 :
 
   if(IsLogged[playerid] == 1)
      {
new parancs[1000];
new nev[24];
GetPlayerName(playerid,nev,24);
format(parancs,1000,\"UPDATE playerinfo SET pMoney = %d,pBankMoney = %d WHERE pNev = \'%s\'\",GetPlayerMoney(playerid),PlayerInfo[playerid][pBankMoney],nev);
format(parancs,1000,\"UPDATE playerinfo SET pDeaths = %d,pKills = %d,pAdmin = %d WHERE pNev = \'%s\'\",PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pAdmin],nev);
format(parancs,1000,\"UPDATE playerinfo SET pBanned = %d,pWarns = %d,pC4 = %d WHERE pNev = \'%s\'\",PlayerInfo[playerid][pBanned],PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pC4],nev);
format(parancs,1000,\"UPDATE playerinfo SET pVIP = %d,pKredit = %d WHERE pNev = \'%s\'\",PlayerInfo[playerid][pVIP],PlayerInfo[playerid][pKredit],nev);
format(parancs,1000,\"UPDATE playerinfo SET pOra = %d,pPerc = %d,pMasodperc = %d WHERE pNev = \'%s\'\",PlayerInfo[playerid][pOra],PlayerInfo[playerid][pPerc],PlayerInfo[playerid][pMasodperc],nev);
mysql_query(parancs);
mysql_free_result();
IsLogged[playerid] = 0;
}

 
Valamiért nem menti el az adatokat ...
A másik meg az hogy amikor valaki belép akkor és nem ír be jelszót , hanem a mégsére kattint akkor nem adja be neki újból a dialogot , tovább engedi a karakter választáshoz :
 
if(dialogid == Dialog_Register)
    {
        if(response)
       {
          if(!strlen(inputtext))
    {
                 ShowPlayerDialog(playerid, Dialog_Register,DIALOG_STYLE_INPUT,\"Regisztráció\",\"Üdv\\nTe még nem regisztráltál,írd be a jelszavad.\",\"Register\",\"Mégse\");
    }
      new parancs[200],nev[24];
      new sqlnev[24],sqlpass[64];
      GetPlayerName(playerid,nev,24);
   mysql_real_escape_string(inputtext,sqlpass);
   mysql_real_escape_string(nev,sqlnev);
      format(parancs,200,\"INSERT INTO `playerinfo` (`pNev`,`pJelszo`) VALUES (\'%s\',\'%s\')\",sqlnev,sqlpass);
      mysql_query(parancs);
      IsLogged[playerid] = 1;
      SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen regisztráltál a szerverre.\");
      ShowPlayerDialog(playerid, Dialog_Login,DIALOG_STYLE_INPUT,\"Belentkezés\",\"Üdv\\nTe már regisztráltál,írd be a jelszavad.\",\"Login\",\"Mégse\");
         }
else
       {
            ShowPlayerDialog(playerid, Dialog_Register,DIALOG_STYLE_INPUT,\"Regisztráció\",\"Üdv\\nTe még nem regisztráltál,írd be a jelszavad.\",\"Register\",\"Mégse\");
       }
     }

23
Segítségkérés / mysql hiba
« Dátum: 2010. December 24. - 12:49:35 »
Mit jelent ez a hiba ?
 
MySQL: Query thread running. Thread safe: No

 
Amikor elindítom a szervert akkor ezt a hibát írja :S
És az a gond hogy amikor wamp-on indítom a szervert akkor mûködik , de amikor a hoston akkor ezt a hibát írja ki ...
Valakinek valami ötlet ?

24
Segítségkérés / mysql tut
« Dátum: 2010. December 19. - 15:13:21 »
Valaki tudna írni nekem egy tutorialt arról hogy hogyan kell felállítani egy mysql reg rendszert ?
És pls a sorok mellé írjátok oda h mire használjuk azt a sort ...
Nagyon hasznos lenne , mert még egy fórumon sem találtam mysql-rõl leírást :)

25
Segítségkérés / 0.3c tûz
« Dátum: 2010. December 19. - 10:27:40 »
Van a youtube-on egy csomó videó hogy kiégnek a 0.3c-ben a házak , de ezt hogyan tudom megvalósítani ?
A másik : hogyan tudom a 0.3c-s objecteket betenni MTA-ba ? Nincs valami olyan megoldás h letöltök egy mappát és csak be kell másolni az MTA mappájába :D ?

26
Segítségkérés / Helyszín eldöntése
« Dátum: 2010. December 13. - 21:05:38 »
Légyszíves segítsetek eldönteni hogy melyik városban/faluban játszódjon az rp-s szerverem.
Légyszíves indoklást is írjatok :)

27
Törölt RP Szerverek / Trl-Rpg [Hamarosan!]
« Dátum: 2010. December 05. - 10:49:38 »
Trl-Rpg
 
Még mielõtt megkérdeznétek hogy még egy újabb rp-s szerver ?? Vagy mielõtt elkezdenétek oltani h 1 hónapnál tovább úgysem bírjuk , olvassátok végig a leírást ;)
A módot egyedül kezdtem el írni 0 sorról .. úgyhogy ne egy újabb godfather edit-re számítsatok !
A szerverre nagyon sok egyedi dolgot terveztem , amit más szerveren még nem láttam .. Egy godfather módhoz képes , ez a mód kevesebb sorból fog állni , mivel a godfather módban nagyon sok felesleges sor van ..
A szerveren lesznek egyedi és már megszokott munkák is . A leaderes frakciók ugyan úgy fognak mûködni mint máshol . A módba megtalálható egy saját készítésû ház és biz rendszer , ez alatt azt értem hogy nem egy bugos GF, vagy LARP rendszerét használjuk ;)
V-s kocsi rendszer még nincs a módban , de a ház-hoz kapunk egy kocsit (ez ideiglenes megoldás , mert a v-s kocsi rendszer összeomlott :S)
Ennyit a módról ...
A szerverrel nekem nem az a célom hogy több playert gyûjtsek rá , mint pl see-re , vagy fay-ra ... Hanem az hogy egy normális, rp-s közösséget alkossunk . Mert ha pl 10 magyar rp-s szerverre akkor abból 9-rõl biztos h le fogsz lépni , mert annyi nonos van fent ..
A mód még készül és a szerver nyitásáról pontos idõt nem tudok mondani .
A témát azért nyitottam , hogy már most elkezdjem hírdetni a szervert és ne nyitás után kelljen ezzel foglalkoznom ...
Szóval légyszíves ne zárjátok/töröljétek a témát :)
Honlapunk : http://trlrpg.tarhely.biz
Ha lehet akkor nézzetek fel a weboldalunkra és adjatok ötleteket , ezzel tudjátok segíteni a munkámat :)
Nembeszélve arról hogy a honlapunkon tudjátok nyomon követni a fejlesztéseket , oda lesznek kiírva a hírek stb..

28
Segítségkérés / Csúszós út
« Dátum: 2010. Október 28. - 16:56:13 »
Olyant lehet csinálni hogy egy bizonyos szakaszon csúszósabb legyen az út ?
Szerintem nem lehet (legalábbis nem találtam ilyen függvényt) , de viszont egyszer már hallottam ilynerõl .

29
Segítségkérés / RCG
« Dátum: 2010. Október 05. - 14:15:30 »
Hali !
Tudna nekem valaki linkelni egy roller coaster generator plugint mta-hoz ?
Mert amit én letöltöttem az nem mûködik :S
Hiába csinálom úgy ahogyan kell , nem mûködik :S
Ja és pls valaki magyarázza is el h mit hogyan , hova :D

30
Segítségkérés / Mysql
« Dátum: 2010. Október 02. - 21:58:06 »
Hali !
Valaki tudna linkelni nekem egy (lehetõleg magyar) mysql regisztrációs rendszert ?
Meg légyszíves mondjatok egy tárhely-t amivel mûködik is a script .
Szóval a tárhely támogassa a külsõ csatlakozást .
Légyszi segítsetek , mert nagyon fontos lenne :)

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