Szerző Téma: Dinamikus gang rendszer  (Megtekintve 1745 alkalommal)

Nem elérhető Tomasz

  • 123
    • Profil megtekintése
Dinamikus gang rendszer
« Dátum: 2015. Február 27. - 19:28:49 »
+3 Show voters
Sziasztok!
 

Elhoztam nektek egyik nem rég készített scriptemet és úgy gondoltam hogy publikálom ugyanis sokaknak jól jöhet.
 


Amit tudni kell a scriptről:
Készítette: Tomasz
Készítési idő: 30 perc kb.
Ez a script arra szolgál hogy a játékon belül úgynevezett gang-eket tudjunk létrehozni. Be lehet állítani a gang-ek nevét, rangjainak nevét valamint a maximális rangot. Csináltam bele egy-két teszt parancsot amivel beletudjátok magatokat rakni a gang-ekbe, tudjátok állítani a rangotokat, le tudjátok kérni a gangek nevét valamint id-jét, és meg tudjátok nézni a rangokat. A script nem tökéletes pl.: néhány parancs nincs tökéletesen kidolgozva, de ettől függetlenül a script működik és használható.
FONTOS! A scriptfiles-ban hozzatok létre egy Gangs nevű mappát! Enélkül a script nem működőképes.
Letöltési linkek:
A scripthez szükséges includeok, pluginok:
dini: http://www.solidfiles.com/d/a8b1739b29/Dini.inc
sscanf2: http://forum.sa-mp.com/showthread.php?t=120356
zcmd: http://forum.sa-mp.com/showthread.php?t=91354
A scripthez a linkek:
Pastebin: http://pastebin.com/2h0WpCqb
Solidfiles: http://www.solidfiles.com/d/13b52d0ccd/GANG.pwn
 

#include <a_samp>
#include <dini>
#include <sscanf2>
#include <zcmd>
#define MAX_GANGS 10
#define GANG_NAME 1000
#define GANG_RANG 1500
new str[256];
new pGang[MAX_PLAYERS];
new pRang[MAX_PLAYERS];
enum gang
{
ID,
Nev[256],
Rang1[256],
Rang2[256],
Rang3[256],
Rang4[256],
Rang5[256],
Rang6[256],
Rang7[256],
Rang8[256],
Rang9[256],
Rang10[256],
MaxRang
}
new GangInfo[MAX_GANGS][gang];
stock LoadGangs()
{
for(new i=1;i<MAX_GANGS;i++)
{
format(str,sizeof(str),\"/Gangs/%d.ini\",i);
if(fexist(str))
{
    GangInfo[iD] = i;
   GangInfo[Nev] = dini_Get(str,\"Nev\");
   GangInfo[Rang1] = dini_Get(str,\"Rang1\");
   GangInfo[Rang2] = dini_Get(str,\"Rang2\");
   GangInfo[Rang3] = dini_Get(str,\"Rang3\");
   GangInfo[Rang4] = dini_Get(str,\"Rang4\");
   GangInfo[Rang5] = dini_Get(str,\"Rang5\");
   GangInfo[Rang6] = dini_Get(str,\"Rang6\");
   GangInfo[Rang7] = dini_Get(str,\"Rang7\");
   GangInfo[Rang8] = dini_Get(str,\"Rang8\");
   GangInfo[Rang9] = dini_Get(str,\"Rang9\");
   GangInfo[Rang10] = dini_Get(str,\"Rang10\");
   GangInfo[MaxRang] = dini_Int(str,\"MaxRang\");
}
}
printf(\"Gangek betoltve!\");
}
stock SaveGang(id)
{
format(str,sizeof(str),\"/Gangs/%d.ini\",id);
dini_Set(str,\"Nev\",GangInfo[id][Nev]);
dini_Set(str,\"Rang1\",GangInfo[id][Rang1]);
dini_Set(str,\"Rang2\",GangInfo[id][Rang2]);
dini_Set(str,\"Rang3\",GangInfo[id][Rang3]);
dini_Set(str,\"Rang4\",GangInfo[id][Rang4]);
dini_Set(str,\"Rang5\",GangInfo[id][Rang5]);
dini_Set(str,\"Rang6\",GangInfo[id][Rang6]);
dini_Set(str,\"Rang7\",GangInfo[id][Rang7]);
dini_Set(str,\"Rang8\",GangInfo[id][Rang8]);
dini_Set(str,\"Rang9\",GangInfo[id][Rang9]);
dini_Set(str,\"Rang10\",GangInfo[id][Rang10]);
dini_IntSet(str,\"MaxRang\",GangInfo[id][MaxRang]);
printf(\"A(z) %d-as/es ID-ju gang mentve lett!\",id);
}
stock BiggestGangID()
{
new num;
for(new i=1;i<MAX_GANGS;i++)
{
format(str,sizeof(str),\"/Gangs/%d.ini\",i);
if(fexist(str)) num = i;
}
return num;
}
main(){}
public OnPlayerConnect(playerid)
{
pRang[playerid] = 1;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == GANG_NAME)
{
    if(response)
    {
        if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid,GANG_NAME,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Min. 3 karakter hosszúságú kell hogy legyen a név.\",\"Tovább\",\"Mégse\");
        format(str,sizeof(str),\"/Gangs/%d.ini\",BiggestGangID()+1);
        dini_Create(str);
        format(GangInfo[biggestGangID()][Nev],64,\"%s\",inputtext);
        ShowPlayerDialog(playerid,GANG_RANG,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Írd be a gang maximum elérhető rangját.(Min.3 Max.10)\",\"Kész\",\"Mégse\");
    }
}
if(dialogid == GANG_RANG)
{
    if(response)
    {
        if(strval(inputtext) < 3 || strval(inputtext) > 10) return ShowPlayerDialog(playerid,GANG_RANG,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Minimum 3 és maximum 10 lehet!\",\"Kész\",\"Mégse\");
            format(str,sizeof(str),\"/Gangs/%d.ini\",BiggestGangID()-1);
   GangInfo[biggestGangID()][MaxRang] = strval(inputtext);
        SaveGang(BiggestGangID());
        LoadGangs();
    }
    else dini_Remove(str);
}
    return 0;
}
CMD:creategang(playerid)
{
ShowPlayerDialog(playerid,GANG_NAME,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Írd be a gang nevét!\",\"Tovább\",\"Mégse\");
return 1;
}
CMD:gangs(playerid)
{
for(new i=1;i<MAX_GANGS;i++)
{
    format(str,sizeof(str),\"ID %d: %s\",i,GangInfo[Nev]);
    SendClientMessage(playerid,-1,str);
}
return 1;
}
CMD:gangbe(playerid,params[])
{
new fk;
if(sscanf(params,\"d\",fk))return SendClientMessage(playerid,-1,\"HASZNÁLAT: /gangbe [iD]\");
pGang[playerid] = fk;
return 1;
}
CMD:rang(playerid,params[])
{
new rang;
if(sscanf(params,\"d\",rang))return SendClientMessage(playerid,-1,\"HASZNÁLAT: /rang [iD]\");
if(rang > GangInfo[pGang[playerid]][MaxRang])return SendClientMessage(playerid,-1,\"A rang amit beírtál magasabb mint a maximum elérhető rang!\");
pRang[playerid] = rang;
return 1;
}
CMD:myganginfo(playerid)
{
if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,\"Te nem vagy gangben!\");
format(str,sizeof(str),\"[iD %d] %s\",pGang[playerid],GangInfo[pGang[playerid]][Nev]);
SendClientMessage(playerid,-1,str);
if(pRang[playerid] == 1) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang1]);
if(pRang[playerid] == 2) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang2]);
if(pRang[playerid] == 3) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang3]);
if(pRang[playerid] == 4) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang4]);
if(pRang[playerid] == 5) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang5]);
if(pRang[playerid] == 6) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang6]);
if(pRang[playerid] == 7) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang7]);
if(pRang[playerid] == 8) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang8]);
if(pRang[playerid] == 9) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang9]);
if(pRang[playerid] == 10) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang10]);
SendClientMessage(playerid,-1,str);
return 1;
}
CMD:gangrangs(playerid)
{
    if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,\"Te nem vagy gangben!\");
   
    format(str,sizeof(str),\"Rang 1: %s\",GangInfo[pGang[playerid]][Rang1]);
    SendClientMessage(playerid,-1,str);
   
    format(str,sizeof(str),\"Rang 2: %s\",GangInfo[pGang[playerid]][Rang2]);
    SendClientMessage(playerid,-1,str);
   
    if(GangInfo[pGang[playerid]][MaxRang] >= 3)
    {
    format(str,sizeof(str),\"Rang 3: %s\",GangInfo[pGang[playerid]][Rang3]);
    SendClientMessage(playerid,-1,str);
    }
   
    if(GangInfo[pGang[playerid]][MaxRang] >= 4)
    {
    format(str,sizeof(str),\"Rang 4: %s\",GangInfo[pGang[playerid]][Rang4]);
    SendClientMessage(playerid,-1,str);
    }
   
    if(GangInfo[pGang[playerid]][MaxRang] >= 5)
    {
    format(str,sizeof(str),\"Rang 5: %s\",GangInfo[pGang[playerid]][Rang5]);
    SendClientMessage(playerid,-1,str);
    }
   
    if(GangInfo[pGang[playerid]][MaxRang] >= 6)
    {
    format(str,sizeof(str),\"Rang 6: %s\",GangInfo[pGang[playerid]][Rang6]);
    SendClientMessage(playerid,-1,str);
    }
   
    if(GangInfo[pGang[playerid]][MaxRang] >= 7)
    {
    format(str,sizeof(str),\"Rang 7: %s\",GangInfo[pGang[playerid]][Rang7]);
    SendClientMessage(playerid,-1,str);
    }
   
    if(GangInfo[pGang[playerid]][MaxRang] >= 8)
    {
    format(str,sizeof(str),\"Rang 8: %s\",GangInfo[pGang[playerid]][Rang8]);
    SendClientMessage(playerid,-1,str);
    }
   
    if(GangInfo[pGang[playerid]][MaxRang] >= 9)
    {
    format(str,sizeof(str),\"Rang 9: %s\",GangInfo[pGang[playerid]][Rang9]);
    SendClientMessage(playerid,-1,str);
    }
   
    if(GangInfo[pGang[playerid]][MaxRang] == 10)
    {
    format(str,sizeof(str),\"Rang 10: %s\",GangInfo[pGang[playerid]][Rang10]);
    SendClientMessage(playerid,-1,str);
    }
return 1;
}
CMD:gangrang(playerid,params[])
{
if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,\"Te nem vagy gangben!\");
new rang,neve[256];
if(sscanf(params,\"ds[256]\",rang,neve))return SendClientMessage(playerid,-1,\"/gangrang [RANG] [NEVE]\");
if(rang == 1)GangInfo[pGang[playerid]][Rang1] = neve;
if(rang == 2)GangInfo[pGang[playerid]][Rang2] = neve;
if(rang == 3)GangInfo[pGang[playerid]][Rang3] = neve;
if(rang == 4)GangInfo[pGang[playerid]][Rang4] = neve;
if(rang == 5)GangInfo[pGang[playerid]][Rang5] = neve;
if(rang == 6)GangInfo[pGang[playerid]][Rang6] = neve;
if(rang == 7)GangInfo[pGang[playerid]][Rang7] = neve;
if(rang == 8)GangInfo[pGang[playerid]][Rang8] = neve;
if(rang == 9)GangInfo[pGang[playerid]][Rang9] = neve;
if(rang == 10)GangInfo[pGang[playerid]][Rang10] = neve;
SaveGang(pGang[playerid]);
return 1;
}
« Utoljára szerkesztve: 2015. Február 27. - 19:33:23 írta Tomasz »

Dinamikus gang rendszer
« Válasz #1 Dátum: 2015. Február 28. - 08:53:55 »
0 Show voters
Hát ha tényleg tecsináltad, akkor grat, mivel jólett.
Ügyesvagy én adok neked egy \"+\"-t. Csak így tovább. :)

Nem elérhető Tomasz

  • 123
    • Profil megtekintése
Dinamikus gang rendszer
« Válasz #2 Dátum: 2015. Február 28. - 08:55:28 »
0 Show voters
MER\" post=\"531849\" timestamp=\"1425110035\"]
Hát ha tényleg tecsináltad, akkor grat, mivel jólett.
Ügyesvagy én adok neked egy \"+\"-t. Csak így tovább. :)
 
[/quote]
Köszi :)

Nem elérhető Thomas_Jonson

  • 560
  • Thomas_Jonson
    • Profil megtekintése
Dinamikus gang rendszer
« Válasz #3 Dátum: 2015. Február 28. - 09:22:36 »
0 Show voters
Elég jó lett. :)

Nem elérhető Tomasz

  • 123
    • Profil megtekintése
Dinamikus gang rendszer
« Válasz #4 Dátum: 2015. Február 28. - 09:25:33 »
0 Show voters
Idézetet írta: Thomas -™ • ツ date=1425111756\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"52897\" data-ipsquote-contentclass=\"forums_Topic
Elég jó lett. :)
 
Köszi :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal