Szerző Téma: Körözés  (Megtekintve 600 alkalommal)

Nem elérhető myke

  • 213
    • Profil megtekintése
Körözés
« Dátum: 2013. július 16. - 21:02:25 »
0 Show voters
Sziasztok!
Hogy tudnám azt megcsinálni, hogy ha körözést adok ki valakire, ha lelép, akkor is megmaradjon?
Addig eljutottam, hogy parancsra .INI-be elmentse, de ha fölmegy nem marad meg a WantedLevel....
Azt mégjobban megköszönném, ha valaki írni egy kis scriptet, hogy valakire körözést lehessen kiadni és el is mentse + meglehet nézni a körözötteket!
Elõrre is nagyon köszönöm!
« Utoljára szerkesztve: 2013. július 16. - 22:15:49 írta myke »

Körözés
« Válasz #1 Dátum: 2013. július 17. - 01:56:08 »
+1 Show voters
GameMode-ba illeszd bele (saját script, írj ha valami hibát találsz)
 
#include <a_samp>
#include <Dini>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 // dcmdhez kell
#define MAX_WANTED_LEVEL   6 // Itt állítod be, mennyi legyen a maximum körözési szint
#define ResetWantedLevel   true // Itt tudod engedélyezni, hogy nullázza a körözési szintet halál után (true = engedélyez || false = tílt)
new File[64];
enum PlayerInfo {
pWantedLevel // Ide menti el/tölti be ideiglenesen azt, hogy mennyi a körözési szint
};
main()
{
print(\"\\n----------------------------------\");
print(\" WantedLevel System Loaded...\");
print(\"----------------------------------\\n\");
}
new pInfo[MAX_PLAYERS][PlayerInfo]; // Az enumhoz kell...
public OnPlayerConnect(playerid) // Ha a játékos csatlakozik..
{
    format(File, 64, \"Jatekos/%s.ini\", pName(playerid));
if(dini_Exists(File)) // ..és létezik a dini fájl..
{
pInfo[playerid][pWantedLevel] = dini_Int(File, \"WantedLevel\"); // ..akkor állítsa át a változó értékét arra, amit fáljból kiolvasott..
}
else // ..viszont, ha nem létezik a dini fájl..
{
dini_Create(File); // ..csinálja meg..
dini_IntSet(File, \"WantedLevel\", 0); // ..írja bele hogy WantedLevel=0.
pInfo[playerid][pWantedLevel] = dini_Int(File, \"WantedLevel\");
}
return 1;
}
public OnPlayerDisconnect(playerid) // Ha a játékos kilép..
{
    format(File, 64, \"Jatekos/%s.ini\", pName(playerid)); // a dini
dini_IntSet(File, \"WantedLevel\", pInfo[playerid][pWantedLevel]); // ..akkor mentse el a dini fáljba, amit az enumba tárolt.
new string[64];
format(string, 64, \"%s WL: %d\", pName(playerid), pInfo[playerid][pWantedLevel]);
print(string);
return 1;
}
public OnPlayerSpawn(playerid) // Ha a játékos lespawnolt..
{
    SetPlayerWantedLevel(playerid, pInfo[playerid][pWantedLevel]); // ..állítsa át a körözési szintet arra, amit tartalmaz az enum változó.
new string[128];
format(string,128,\"Körözési szinted: %d\", pInfo[playerid][pWantedLevel]); // Formázza a körözési szintet..
SendClientMessage(playerid, -1, string); // ..és kiírja mennyi a körözési szint
}
public OnPlayerDeath(playerid, killerid, reason) // Ha a játékos meghalt..
{
    #if ResetWantedLevel == true // ..és engedélyezve van az, hogy nullázza a körözési szintet..
      SetPlayerWantedLevel(playerid, 0); // ..akkor nullázza.
#endif
//Ha false-ra írod át a true-t akkor az OnPlayerSpawn-nál újra átírja arra, ami volt.
return 1;
}
dcmd_setwantedlevel(playerid,params[]) // parancs
{
new Index;
new tmp[256];  tmp  = strtok(params,Index); // playerid/játékosnév
new tmp2[256]; tmp2 = strtok(params,Index); // körözési szint
if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) // ha nem írt be playerid-t || ha nem írt be WantedLevel-t || ha a WantedLevel nem szám
{
SendClientMessage(playerid, -1, \"HASZNÁLAT: /setwantedlevel [JátékosID] [wantedlevel)]\"); // Hibaüzenet
return 1;
}
new player2 = strval(tmp); // kiválasztott játékos ID/játékosnév
new wantedlevel = strval(tmp2); // WantedLevel
if(wantedlevel <= MAX_WANTED_LEVEL) // Ha a beírt WantedLevel(körözési szint) nem nagyobb mint a MAX_WANTED_LEVEL (alapból 6)
{
    if(IsPlayerConnected(player2))
    {
        new string[128];
   SetPlayerWantedLevel(player2, wantedlevel); // Átcseréli arra a körözési szintet amit beírtál a playerid után
   format(string,128,\"%s Körözési szintje: %d\", pName(player2), wantedlevel); // játékos körözési szintjének formázása
   SendClientMessageToAll(-1, string); // Elküldi mindenkinek, hogy a kiválasztott játékosnak mennyi a körözési szintje
   pInfo[player2][pWantedLevel] = wantedlevel; // Átcseréli az enum változót arra ami be lett írva
}
else
{
   SendClientMessage(playerid, -1, \"Játékos nincs csatlakozva\");
}
}
else // Ha többet írtál be mint amennyi be van állítva a MAX_WANTED_LEVEL-nél..
{
    new string[128];
    format(string, 128, \"Maximum WantedLevel: %d\", MAX_WANTED_LEVEL); // ..akkor ez a hibaüzenet jön ki.
SendClientMessage(playerid, -1, string);
}
return 1;
}
dcmd_wantedlist(playerid, params[])
{
#pragma unused params //ez arra szolgál, hogy ne dobjon nekünk \"symbol never use\" warningot.. :)
new strwl[128];
for(new i = 0; i < MAX_PLAYERS; i++)   //ez a ciklus szolgál arra, hogy listázzuk az összeset akinek több mint 0 a körözési szint
{
if(pInfo[pWantedLevel] > 0)   //hogyha a körözési szintje nagyobb mint egy, csak akkor listázza
{
   format(strwl, 128, \"Név: %s || Körözésiszint: %i\",pName(i), pInfo[pWantedLevel]); //formázzuk a küldendõ szöveget
   SendClientMessage(playerid, -1, strwl);   //az strwl a küldendõ szöveg
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(setwantedlevel,14,cmdtext); // A dcmd-hez kell
dcmd(wantedlist,10,cmdtext);
return 0;
}
 
/*Ezzel tudod lekérni a játékos nevét egyszerûbben
pl:
new string[128];
format(string,128,\"A neved: %s\", pName(playerid));
SendClientMessage(playerid, -1, string);
*/
new pname[24];
pName(playerid)
{
GetPlayerName(playerid, pname, sizeof(pname));
return pname;
}
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string > \'9\' || string < \'0\') return 0;
}
return 1;
}

Nem elérhető myke

  • 213
    • Profil megtekintése
Körözés
« Válasz #2 Dátum: 2013. július 17. - 13:05:57 »
0 Show voters
Idézetet írta: anorennia date=1374018968\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"39917\" data-ipsquote-contentclass=\"forums_Topic
GameMode-ba illeszd bele (saját script, írj ha valami hibát találsz)
 
#include <a_samp>
#include <Dini>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 // dcmdhez kell
#define MAX_WANTED_LEVEL   6 // Itt állítod be, mennyi legyen a maximum körözési szint
#define ResetWantedLevel   true // Itt tudod engedélyezni, hogy nullázza a körözési szintet halál után (true = engedélyez || false = tílt)
new File[64];
enum PlayerInfo {
pWantedLevel // Ide menti el/tölti be ideiglenesen azt, hogy mennyi a körözési szint
};
main()
{
print(\"\\n----------------------------------\");
print(\" WantedLevel System Loaded...\");
print(\"----------------------------------\\n\");
}
new pInfo[MAX_PLAYERS][PlayerInfo]; // Az enumhoz kell...
public OnPlayerConnect(playerid) // Ha a játékos csatlakozik..
{
    format(File, 64, \"Jatekos/%s.ini\", pName(playerid));
if(dini_Exists(File)) // ..és létezik a dini fájl..
{
pInfo[playerid][pWantedLevel] = dini_Int(File, \"WantedLevel\"); // ..akkor állítsa át a változó értékét arra, amit fáljból kiolvasott..
}
else // ..viszont, ha nem létezik a dini fájl..
{
dini_Create(File); // ..csinálja meg..
dini_IntSet(File, \"WantedLevel\", 0); // ..írja bele hogy WantedLevel=0.
pInfo[playerid][pWantedLevel] = dini_Int(File, \"WantedLevel\");
}
return 1;
}
public OnPlayerDisconnect(playerid) // Ha a játékos kilép..
{
    format(File, 64, \"Jatekos/%s.ini\", pName(playerid)); // a dini
dini_IntSet(File, \"WantedLevel\", pInfo[playerid][pWantedLevel]); // ..akkor mentse el a dini fáljba, amit az enumba tárolt.
new string[64];
format(string, 64, \"%s WL: %d\", pName(playerid), pInfo[playerid][pWantedLevel]);
print(string);
return 1;
}
public OnPlayerSpawn(playerid) // Ha a játékos lespawnolt..
{
    SetPlayerWantedLevel(playerid, pInfo[playerid][pWantedLevel]); // ..állítsa át a körözési szintet arra, amit tartalmaz az enum változó.
new string[128];
format(string,128,\"Körözési szinted: %d\", pInfo[playerid][pWantedLevel]); // Formázza a körözési szintet..
SendClientMessage(playerid, -1, string); // ..és kiírja mennyi a körözési szint
}
public OnPlayerDeath(playerid, killerid, reason) // Ha a játékos meghalt..
{
    #if ResetWantedLevel == true // ..és engedélyezve van az, hogy nullázza a körözési szintet..
      SetPlayerWantedLevel(playerid, 0); // ..akkor nullázza.
#endif
//Ha false-ra írod át a true-t akkor az OnPlayerSpawn-nál újra átírja arra, ami volt.
return 1;
}
dcmd_setwantedlevel(playerid,params[]) // parancs
{
new Index;
new tmp[256];  tmp  = strtok(params,Index); // playerid/játékosnév
new tmp2[256]; tmp2 = strtok(params,Index); // körözési szint
if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) // ha nem írt be playerid-t || ha nem írt be WantedLevel-t || ha a WantedLevel nem szám
{
SendClientMessage(playerid, -1, \"HASZNÁLAT: /setwantedlevel [JátékosID] [wantedlevel)]\"); // Hibaüzenet
return 1;
}
new player2 = strval(tmp); // kiválasztott játékos ID/játékosnév
new wantedlevel = strval(tmp2); // WantedLevel
if(wantedlevel <= MAX_WANTED_LEVEL) // Ha a beírt WantedLevel(körözési szint) nem nagyobb mint a MAX_WANTED_LEVEL (alapból 6)
{
    if(IsPlayerConnected(player2))
    {
        new string[128];
   SetPlayerWantedLevel(player2, wantedlevel); // Átcseréli arra a körözési szintet amit beírtál a playerid után
   format(string,128,\"%s Körözési szintje: %d\", pName(player2), wantedlevel); // játékos körözési szintjének formázása
   SendClientMessageToAll(-1, string); // Elküldi mindenkinek, hogy a kiválasztott játékosnak mennyi a körözési szintje
   pInfo[player2][pWantedLevel] = wantedlevel; // Átcseréli az enum változót arra ami be lett írva
}
else
{
   SendClientMessage(playerid, -1, \"Játékos nincs csatlakozva\");
}
}
else // Ha többet írtál be mint amennyi be van állítva a MAX_WANTED_LEVEL-nél..
{
    new string[128];
    format(string, 128, \"Maximum WantedLevel: %d\", MAX_WANTED_LEVEL); // ..akkor ez a hibaüzenet jön ki.
SendClientMessage(playerid, -1, string);
}
return 1;
}
dcmd_wantedlist(playerid, params[])
{
#pragma unused params //ez arra szolgál, hogy ne dobjon nekünk \"symbol never use\" warningot.. :)
new strwl[128];
for(new i = 0; i < MAX_PLAYERS; i++)   //ez a ciklus szolgál arra, hogy listázzuk az összeset akinek több mint 0 a körözési szint
{
if(pInfo[pWantedLevel] > 0)   //hogyha a körözési szintje nagyobb mint egy, csak akkor listázza
{
   format(strwl, 128, \"Név: %s || Körözésiszint: %i\",pName(i), pInfo[pWantedLevel]); //formázzuk a küldendõ szöveget
   SendClientMessage(playerid, -1, strwl);   //az strwl a küldendõ szöveg
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(setwantedlevel,14,cmdtext); // A dcmd-hez kell
dcmd(wantedlist,10,cmdtext);
return 0;
}
 
/*Ezzel tudod lekérni a játékos nevét egyszerûbben
pl:
new string[128];
format(string,128,\"A neved: %s\", pName(playerid));
SendClientMessage(playerid, -1, string);
*/
new pname[24];
pName(playerid)
{
GetPlayerName(playerid, pname, sizeof(pname));
return pname;
}
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string > \'9\' || string < \'0\') return 0;
}
return 1;
}

 

Örök hálám!  :)
Ment a +!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal