Szerző Téma: Frakcio System  (Megtekintve 3168 alkalommal)

Frakcio System
« Dátum: 2014. Október 04. - 10:57:22 »
+3
Frakcio System
 
Sziasztok!
Ezt a Filterscriptet Defensive modhoz készítettem. Vagyis ahoz akartam, de Team szerint inkább egy Freeroam, vagy stunt szerverre, tehát nem RP-re jobban kell, így átírtam.
Az FS-ben 2 banda van. Grove és Ballas.
Amit tudni kell róla:
Nem teszteltem a /r parancsot, a többi nálam jó volt.
Lehetnek benne hibák
Egyéb scriptekbõl is vettem ötleteket(Anthony RP modja adta az ötletet)
Elkészítési idõ: 2-3 óra
Mivel Defensivehez készült, így megtalálhatóak azok a kiegészítõk, ami oda kellett volna.(Pl. ProxDetector)
Parancsok:
/leaderad

/eloleptet


/lefokoz


/fegyverek


/skin


/r

Letöltés : http://www.solidfiles.com/d/98fa7c1d24/fksystem.rar
A kód itt lenne:
 
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <dini>
#define BALLAS 1
#define GROVE 2
new id;
main();
new rangok[3][5][32] = {
{\"Beavatott\", \"Tag\", \"Bérgyilkos\", \"Alvezér\", \"Bandavezér\"},
{\"Beavatott\", \"Tag\", \"Bérgyilkos\", \"Alvezér\", \"Bandavezér\"},
{\"Beavatott\", \"Tag\", \"Bérgyilkos\", \"Alvezér\", \"Bandavezér\"}
};
enum pInfo
{
pFrakcio,
pLeader,
pRang
};
new PlayerInfo[MAX_PLAYERS][pInfo];
public OnFilterScriptInit()
{
    Create3DTextLabel(\"/skin /fegyverek\",0xFB0000FF,2522.7605,-1681.8456,15.4970,10.0,0);
    CreatePickup(1318, 0, 2522.7605,-1681.8456,15.4970, 0);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
CMD:skin(playerid, params[])
{
if(PlayerInfo[playerid][pFrakcio] == BALLAS)
{
new skin;
       if(sscanf(params, \"u\", skin)) return SendClientMessage(playerid, -1, \"/skin [1] [2] [3]\");
       if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, \"A játékos nem elérhetõ!\");
if(IsPlayerInRangeOfPoint(playerid, 2.5, 0.0, 0.0, 0.0))
{
      if(skin == 1)
             {
                SetPlayerSkin(playerid, 102);
      }
      else if(skin == 2)
             {
                SetPlayerSkin(playerid, 103);
      }
      else if(skin == 3)
             {
                   SetPlayerSkin(playerid, 104);
      }
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy a Pickup-nál!\");
}
}
else
{
}
if(PlayerInfo[playerid][pFrakcio] == GROVE)
{
new skin;
       if(sscanf(params, \"u\", skin)) return SendClientMessage(playerid, -1, \"/skin [1] [2] [3]\");
       if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, \"A játékos nem elérhetõ!\");
if(IsPlayerInRangeOfPoint(playerid, 2.5, 2522.7605,-1681.8456,15.4970))
{
      if(skin == 1)
             {
                SetPlayerSkin(playerid, 105);
      }
      else if(skin == 2)
             {
                SetPlayerSkin(playerid, 106);
      }
      else if(skin == 3)
             {
                   SetPlayerSkin(playerid, 107);
      }
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy a Pickup-nál!\");
}
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy Bandatag!\");
}
return 1;
}
CMD:leaderad(playerid, params[])
{
if (IsPlayerAdmin(playerid))
{
    new leader;
    if(sscanf(params, \"ud\", id, leader)) return SendClientMessage(playerid, -1, \"Használat: /leaderad [iD] <[FK ID]\"), SendClientMessage(playerid, -1, \"| Ballas - 1 | Grove - 2 |\");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, \"A játékos nincs online!\");
    if(leader >= 1 && leader <= 2)
    {
       if(leader == 1)
       {
        SendClientMessage(id, -1, \"Kineveztek a Ballas bandavezérének.\");
                PlayerInfo[id][pLeader] = 1;
                PlayerInfo[id][pRang] = 5;
        PlayerInfo[id][pFrakcio] = BALLAS;
        Ment(id);
   }
   else if(leader == 2)
    {
        SendClientMessage(id, -1, \"Kineveztek a Grove bandavezérének.\");
                PlayerInfo[id][pLeader] = 1;
                PlayerInfo[id][pRang] = 5;
        PlayerInfo[id][pFrakcio] = GROVE;
        Ment(id);
   }
}
else
{
    SendClientMessage(playerid, -1, \"Azonosítók: 1 - 2\");
}
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy Rcon Admin!\");
}
return 1;
}
CMD:fegyverek(playerid, params[])
{
if(PlayerInfo[playerid][pFrakcio] == BALLAS)
{
new fegyverek;
new string2[130];
       if(sscanf(params, \"u\", fegyverek)) return SendClientMessage(playerid, -1, \"/fegyverek [1] [2] [3]\");
       if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, \"A játékos nem elérhetõ!\");
if(IsPlayerInRangeOfPoint(playerid, 2.5, 0.0,0.0,0.0))
{
      if(fegyverek == 1)
             {
                GivePlayerWeapon(playerid, 22, 100);
                SendClientMessage(playerid, -1, \"Kaptál Desert Eagle.t 100 tölténnyel!\");
                format(string2, sizeof(string2), \"Info: %s, %s lekérte a 1-es fegyvercsomagot.\", Rang(playerid), Name(playerid));
             SendBallasMessage(-1, string2);
      }
      else if(fegyverek == 2)
             {
                GivePlayerWeapon(playerid, 28, 400);
                SendClientMessage(playerid, -1, \"Kaptál UZI-t 400 tölténnyel!\");
                format(string2, sizeof(string2), \"Info: %s, %s lekérte a 2-es fegyvercsomagot.\", Rang(playerid), Name(playerid));
             SendBallasMessage(-1, string2);
      }
      else if(fegyverek == 3)
             {
                   GivePlayerWeapon(playerid, 29, 200);
                   SendClientMessage(playerid, -1, \"Kaptál MP5-öt 200 tölténnyel!\");
                   format(string2, sizeof(string2), \"Info: %s, %s lekérte a 3-as fegyvercsomagot.\", Rang(playerid), Name(playerid));
             SendBallasMessage(-1, string2);
      }
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy a Pickup-nál!\");
}
}
else
{
}
if(PlayerInfo[playerid][pFrakcio] == GROVE)
{
new fegyverek;
new string2[130];
       if(sscanf(params, \"u\", fegyverek)) return SendClientMessage(playerid, -1, \"/fegyverek [1] [2] [3]\");
       if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, \"A játékos nem elérhetõ!\");
if(IsPlayerInRangeOfPoint(playerid, 2.5, 2522.7605,-1681.8456,15.4970))
{
      if(fegyverek == 1)
             {
                GivePlayerWeapon(playerid, 22, 100);
                SendClientMessage(playerid, -1, \"Kaptál Desert Eagle.t 100 tölténnyel!\");
                format(string2, sizeof(string2), \"Info: %s, %s lekérte a 1-es fegyvercsomagot.\", Rang(playerid), Name(playerid));
             SendGroveMessage(-1, string2);
      }
      else if(fegyverek == 2)
             {
                GivePlayerWeapon(playerid, 28, 400);
                SendClientMessage(playerid, -1, \"Kaptál UZI-t 400 tölténnyel!\");
                format(string2, sizeof(string2), \"Info: %s, %s lekérte a 2-es fegyvercsomagot.\", Rang(playerid), Name(playerid));
             SendGroveMessage(-1, string2);
      }
      else if(fegyverek == 3)
             {
                
                   GivePlayerWeapon(playerid, 29, 200);
                   SendClientMessage(playerid, -1, \"Kaptál MP5-öt 200 tölténnyel!\");
                   format(string2, sizeof(string2), \"Info: %s, %s lekérte a 3-as fegyvercsomagot.\", Rang(playerid), Name(playerid));
             SendGroveMessage(-1, string2);
      }
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy a Pickup-nál!\");
}
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy Bandatag!\");
}
return 1;
}
CMD:eloleptet(playerid, params[])
{
new string[128];
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid, -1, \"Használat: /elõléptet < Név / Id >\");
if(PlayerInfo[playerid][pLeader] >= 1 || IsPlayerAdmin(playerid))
{
PlayerInfo[id][pRang] ++;
format(string,sizeof(string), \"Elõléptetted %s-t. Rangja: %s\", Name(id), Rang(id));
SendClientMessage(playerid, -1, string);
format(string,sizeof(string), \"Elõléptettek! Az új Rangod: %s\", Rang(id));
SendClientMessage(id, -1, string);
}
else
{
SendClientMessage(playerid, -1, \"Nem vagy leader.\");
}
return 1;
}
CMD:lefokoz(playerid, params[])
{
new string[128];
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid, -1, \"Használat: /lefokoz < Név / Id >\");
if(PlayerInfo[playerid][pLeader] >= 1 || IsPlayerAdmin(playerid))
{
PlayerInfo[id][pRang] --;
format(string,sizeof(string), \"Lefokoztad %s-t. Rangja: %s\", Name(id), Rang(id));
SendClientMessage(playerid, -1, string);
format(string,sizeof(string), \"Lefokoztak! Az új Rangod: %s\", Rang(id));
SendClientMessage(id, -1, string);
}
else
{
SendClientMessage(playerid, -1, \"Nem használhatod.\");
}
return 1;
}
CMD:r(playerid, params[])
{
if(PlayerInfo[playerid][pFrakcio] == BALLAS)
{
    new S[100], S2[128], S3[128];
    if(sscanf(params, \"s[100]\", S)) return SendClientMessage(playerid, -1, \"Használat: /fr < Frakció Rádió >\");
    format(S2, sizeof(S2), \"[Rádió] %s %s mondja: %s\", Rang(playerid), Name(playerid), S);
format(S3, sizeof(S3), \"[Rádió] Valaki mondja: %s\", S);
    SendBallasMessage(-1, S2);
    ProxDetector(10.0, playerid, S3, -1, -1, -1, -1, -1);
}
else if(PlayerInfo[playerid][pFrakcio] == GROVE)
{
    new S[100], S2[128], S3[128];
    if(sscanf(params, \"s[100]\", S)) return SendClientMessage(playerid, -1, \"Használat: /fr < Frakció Rádió >\");
    format(S2, sizeof(S2), \"[Rádió] %s %s mondja: %s\", Rang(playerid), Name(playerid), S);
format(S3, sizeof(S3), \"[Rádió] Valaki mondja: %s\", S);
    SendGroveMessage(-1, S2);
    ProxDetector(10.0, playerid, S3, -1, -1, -1, -1, -1);
}
else
{
    SendClientMessage(playerid, -1, \"Nem vagy semilyen frakció tagja!\");
}
return 1;
}
 
stock SendBallasMessage(szin, szoveg[])
{
    for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
   if(PlayerInfo[pFrakcio] == BALLAS)
    {
      SendClientMessage(i, szin, szoveg);
   }
}
}
}
stock SendGroveMessage(szin, szoveg[])
{
    for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
   if(PlayerInfo[pFrakcio] == GROVE)
    {
      SendClientMessage(i, szin, szoveg);
   }
}
}
}
stock Rang(playerid)
{
    new fk,rank, rank2[32];
rank = PlayerInfo[playerid][pRang];
fk = PlayerInfo[playerid][pFrakcio];
rank2 = rangok[fk][rank];
return rank2;
}
stock Name(playerid)
{
    new string[24];
    GetPlayerName(playerid,string,24);
    new str[60];
    strmid(str,string,0,strlen(string),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (str == \' \') str = \' \';
    }
    return str;
}
stock Ment(playerid)
{
new File[180];
new Fajl[50];
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(dini_Exists(File))
{
    dini_IntSet(Fajl,\"Leader\",PlayerInfo[playerid][pLeader]);
    dini_IntSet(Fajl,\"Rang\",PlayerInfo[playerid][pRang]);
}
return 1;
}
 
stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
    new Float:posx, Float:posy, Float:posz;
new Float:tempposx, Float:tempposy, Float:tempposz;
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i; i < MAX_PLAYERS; i++)
{
   if(IsPlayerConnected(i))
   {
       if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
       {
         GetPlayerPos(i, posx, posy, posz);
         tempposx = (oldposx -posx);
         tempposy = (oldposy -posy);
         tempposz = (oldposz -posz);
         if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
         {
            SendClientMessage(i, col1, string);
         }
         else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
         {
            SendClientMessage(i, col2, string);
         }
         else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
         {
            SendClientMessage(i, col3, string);
         }
         else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
         {
            SendClientMessage(i, col4, string);
         }
         else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
         {
            SendClientMessage(i, col5, string);
         }
      }
   }
}
}
return 1;
}

 
Észrevételeket szívesen hallgatom, illetve kérem is, hisz elég kezdõ vagyok még.
« Utoljára szerkesztve: 2014. Október 24. - 08:45:55 írta Andriis »

Frakcio System
« Válasz #1 Dátum: 2014. Október 04. - 12:09:26 »
0
Jól nézz ki. :) Igazából nem teszteltem, de biztos jó. :D

Frakcio System
« Válasz #2 Dátum: 2014. Október 04. - 12:33:01 »
0
Idézetet írta: HuNBoY date=1412417366\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50858\" data-ipsquote-contentclass=\"forums_Topic
Jól nézz ki. :) Igazából nem teszteltem, de biztos jó. :D
 
Köszi :)

Nem elérhető Szasza

  • 388
    • Profil megtekintése
Frakcio System
« Válasz #3 Dátum: 2014. Október 04. - 19:18:40 »
0
Nem akarod átírni mysql-re ?:)

Frakcio System
« Válasz #4 Dátum: 2014. Október 05. - 09:31:21 »
0
Idézetet írta: Szasza date=1412443120\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50858\" data-ipsquote-contentclass=\"forums_Topic
Nem akarod átírni mysql-re ?:)
 
Csak a Dini-vel tudok menteni, mást még nem használtam.

Nem elérhető scripter01

  • 1035
  • Ex Moderálisan Globális
    • Profil megtekintése
Frakcio System
« Válasz #5 Dátum: 2014. Október 10. - 15:18:31 »
0
Nem teszteltem (Nem volt sajnos rá idõm)[/quote]
[gmod]A szabályzatban szerepel egy pont, miszerint semmilyen szkriptet nem tehetsz ki, ha az nem lett a publikálás elõtt tesztelve.[/gmod]
« Utoljára szerkesztve: 2014. Október 11. - 15:54:39 írta Archer »

Nem elérhető Szilard

  • Adminisztrátor
  • 1832
    • Profil megtekintése
Frakcio System
« Válasz #6 Dátum: 2014. Október 10. - 21:03:23 »
+2
Idézetet írta: Archer date=1412947111\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50858\" data-ipsquote-contentclass=\"forums_Topic

Nem teszteltem (Nem volt sajnos rá idõm)
A szabályzat, elõírása alapján elvileg nem tehetsz ki úgy semmiféle scriptet, amég nincs tesztelve!
 
[/quote]
Ez most komoly?

Frakcio System
« Válasz #7 Dátum: 2014. Október 10. - 21:47:12 »
0
Idézetet írta: Szilard00 date=1412967803\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50858\" data-ipsquote-contentclass=\"forums_Topic


 
Nem teszteltem (Nem volt sajnos rá idõm)
A szabályzat, elõírása alapján elvileg nem tehetsz ki úgy semmiféle scriptet, amég nincs tesztelve!
 
[/quote]
Ez most komoly?
 
[/quote]
Hát most na...


Nagyonjó, csak ez nem rendszer :) A rendszer az dinamikus. Itt ebben nem látok semmi dinamikát (új frakció létrehozás stb)

Frakcio System
« Válasz #8 Dátum: 2014. Október 10. - 22:02:31 »
0
Idézetet írta: Archer date=1412947111\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50858\" data-ipsquote-contentclass=\"forums_Topic

Nem teszteltem (Nem volt sajnos rá idõm)
A szabályzat, elõírása alapján elvileg nem tehetsz ki úgy semmiféle scriptet, amég nincs tesztelve!
 
[/quote]
Elnézést.
Csak a /r parancs nem lett tesztelve, a többi igen.
Nukerdog, én annak nevezem. Ha nem tetszik, ez van. Írj jobbat.

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Frakcio System
« Válasz #9 Dátum: 2014. Október 10. - 22:11:48 »
+1
Idézetet írta: Nukerdog date=1412970432\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50858\" data-ipsquote-contentclass=\"forums_Topic


 

 
Nem teszteltem (Nem volt sajnos rá idõm)
A szabályzat, elõírása alapján elvileg nem tehetsz ki úgy semmiféle scriptet, amég nincs tesztelve!
 
[/quote]
Ez most komoly?
 
[/quote]
Hát most na...


Nagyonjó, csak ez nem rendszer :) A rendszer az dinamikus. Itt ebben nem látok semmi dinamikát (új frakció létrehozás stb)
 
[/quote]
Van dinamikus, és statikus rendszer. Attól, hogy nem dinamikus, még lehet rendszer. Nem kell mindig dinamikusnak lennie, akkor több a bug lehetõség.
Egyébként szép munka, így tovább.

Frakcio System
« Válasz #10 Dátum: 2014. Október 11. - 06:54:26 »
0
[quote author=BackUP link=topic=55399.msg517436#msg517436
Egyébként szép munka, így tovább.
 
Köszönöm :)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Frakcio System
« Válasz #11 Dátum: 2014. Október 18. - 23:16:51 »
0
[gmod]Bõvítsd a témát a szabályzatnak megfelelõen! 24 órát adok rá.[/gmod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal