Szerző Téma: [TuT]Egyszerû AFK szkript készítése  (Megtekintve 2761 alkalommal)

[TuT]Egyszerû AFK szkript készítése
« Dátum: 2011. Augusztus 02. - 06:57:55 »
0
Sziasztok!
Megérkezett az elsõ tutorialom. :)
Mint ahogy a téma nevén is látszik azt fogom megmutatni, hogyan készíthettek egy egyszerû AFK filterszkriptet!
Kommentekbe mindent leírok.
[pawn]//Elõször is ágyazzuk be a szükséges fájlokat:
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
//Hozzunk létre egy bool tipusú változót az összes játékosnak:
new bool:AFK[MAX_PLAYERS];
//Most következik, hogy ha egy játékos feljön a szerverre, ílletve kilép, false-ra, azaz hamisra állítjuk neki az AFK változóját:
public OnPlayerConnect(playerid)
{
AFK[playerid] = false;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
AFK[playerid] = false;
return 1;
}
//Most pedig írjuk meg a parancsot:
CMD:afk(playerid)
{
new nev[MAX_PLAYER_NAME], str[32];
//Ha a játékos AFK változójának értéke false, azaz hamis:
if(AFK[playerid] == false)
{
   AFK[playerid] = true;   //Átállítjuk a játékos AFK változóját igazra.
   SetPlayerVirtualWorld(playerid, 1); //Áttesszük másik virtuális világba.
   GetPlayerName(playerid, nev, MAX_PLAYER_NAME);  //Lekérdezzük a nevét.
   format(str, 32, \"[AFK]%s\", nev);    //Megformázzuk az str változót.
   SetPlayerName(playerid, str);   //Átállítjuk a játékos nevét.
   TogglePlayerControllable(playerid, false);  //Megfagyasszuk a játékost.
}
//Ha a játékos AFK változójának értéke true, azaz igaz:
else if(AFK[playerid] == true)
{
    AFK[playerid] = false;  //Átállítjuk a játékos AFK változóját hamisra.
    SetPlayerVirtualWorld(playerid, 0); //Visszaállítjuk az alap virtuális világba.
    GetPlayerName(playerid, nev, MAX_PLAYER_NAME);  //Lekérdezzük a nevét.
    strdel(nev, 0, 5);  //Kitöröljük a nev változóból ezt: [AFK].
    SetPlayerName(playerid, nev);   //Visszaállítjuk nevét.
    TogglePlayerControllable(playerid, true);   //Haggyuk hogy mozogjon újra.
}
return 1;   //Visszatérés
}[/pawn]
Remélem valakinek jól jött :)
Ja, és minden kérést/kérdést írjatok ide!
« Utoljára szerkesztve: 2011. Augusztus 02. - 20:07:24 írta mauladam »

Nem elérhető Stray

  • 617
    • Profil megtekintése
[TuT]Egyszerû AFK szkript készítése
« Válasz #1 Dátum: 2011. Augusztus 02. - 08:00:44 »
0
Nem kötekedés,de
 
CMD:akf(playerid)[/quote]

[TuT]Egyszerû AFK szkript készítése
« Válasz #2 Dátum: 2011. Augusztus 02. - 08:37:28 »
0
:D
Elég csak átfutni gondolatban a kódot és hamar rá lehet jönni mikor csatlakozok a szerverre ez a változó
[pawn]
public OnPlayerConnect(playerid)
{
AFK[playerid] = true;
return 1;
}
[/pawn]
true értéket kap így ha beírom hogy /afk kitöröli a nevembõl az elsõ 5 karaktert. Szuper.
[pawn]
//Ha a játékos AFK változójának értéke true, azaz igaz:
else if(AFK[playerid] == true)
{
    AFK[playerid] = false;  //Átállítjuk a játékos AFK változóját hamisra.
    SetPlayerVirtualWorld(playerid, 0); //Visszaállítjuk az alap virtuális világba.
    GetPlayerName(playerid, nev, MAX_PLAYER_NAME);  //Lekérdezzük a nevét.
    strdel(nev, 0, 5);  //Kitöröljük a nev változóból ezt: [AFK].
    SetPlayerName(playerid, nev);   //Visszaállítjuk nevét.
    TogglePlayerControllable(playerid, true);   //Haggyuk hogy mozogjon újra.
}
[/pawn]
Tesztelj, mielõtt publikálsz valamit please.

[TuT]Egyszerû AFK szkript készítése
« Válasz #3 Dátum: 2011. Augusztus 02. - 13:34:25 »
0
Idézetet írta: Zsolesszka date=1312267048\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10094\" data-ipsquote-contentclass=\"forums_Topic
:D
Elég csak átfutni gondolatban a kódot és hamar rá lehet jönni mikor csatlakozok a szerverre ez a változó
[pawn]
public OnPlayerConnect(playerid)
{
AFK[playerid] = true;
return 1;
}
[/pawn]
Ezt elírtam.... sajnos.

Nem kötekedés,de
 
CMD:akf(playerid)[/quote]
 
[/quote]
Ezzel mi a baj? Nem használtam paramétereket, így nem kell a params[].

Nem elérhető Norby

  • 1575
    • Profil megtekintése
[TuT]Egyszerû AFK szkript készítése
« Válasz #4 Dátum: 2011. Augusztus 02. - 13:40:51 »
0
Idézetet írta: straY\' date=1312264844\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10094\" data-ipsquote-contentclass=\"forums_Topic
Nem kötekedés,de
 
CMD:akf(playerid)

[/quote]
ezt is elirtad akf helyett afk :)

[TuT]Egyszerû AFK szkript készítése
« Válasz #5 Dátum: 2011. Augusztus 02. - 13:42:55 »
0
Ja bocs-bocs, azt hittem arra gondol hogy nincs params[]. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal