FrakcióID helyett frakciónév

Indította Th0mas, 2015. április 15. - 17:55:44

Előző téma - Következő téma

Th0mas

Sziasztok
Elkezdtem írni egy frakció \"rendszert\" ami tudvari videójában volt azzal csináltam meg de én ID helyett nevet szeretnék,hogyan csináljam meg,ezeket szeretném:
 
new FrakcioNevek[][]=
{
\"Országos Rendőr Fő Kapitányság(ORFK)\",
\"Nemzeti Adó és Vámhivatal(NAV)\",
\"Nemzeti Nyomozó Iroda(NNI)\",
\"Taxi társaság\",
\"Riporter\",
\"Szerelők\",
\"Terror Elhárító Központ(TEK)\",
\"Önkormányzat\",
\"Országos Mentő Szolgálat(OMSZ)\",
\"Grove Street Familyes\",
\"Ballas\",
\"Locos\",
\"Aztecas\",
\"Triad\",
\"Yakuza\",
\"La Cosa Nostra\"
}

 
A frakció,rang,leaderjog mentve van a parancs meg:
 
CMD:makeleader(playerid,params[])
{
if(IsPlayerConnected(playerid) && Belepve[playerid] == 1)
{
    if(JatekosInfo[playerid][AdminSzint] >= 4 || IsPlayerAdmin(playerid))
    {
        new id,frakcio,leaderjog;
        if(sscanf(params,\"uii\",id,frakcio,leaderjog)) return SendClientMessage(playerid,-1,\"Használat: /makeleader [iD] [FrakcióID] [Leaderjog (0 - nem 1 - igen)]\");
        if(leaderjog == 0 || leaderjog == 1)
        {
            if(Belepve[id] == 1)
            {
                JatekosInfo[id][Frakcio]= frakcio;
                JatekosInfo[id][Leader] = leaderjog;
                JatekosInfo[id][Rang] = 0;
                GetPlayerName(id,nev2,sizeof(nev2));
                GetPlayerName(playerid,nev,sizeof(nev));
         new string[256];
         format(string,sizeof(string),\"[Admin:%d]%s átállította a frakcióda %d-ra/re és a leaderjogodat %d-ra/re!\",nev2,frakcio,leaderjog);
         SendClientMessage(id,-1,string);
         format(string,sizeof(string),\"Átállítottad %s frakcióját %d-ra/re és a leaderjogát %d-ra/re\",nev,frakcio,leaderjog);
         SendClientMessage(playerid,-1,string);
         format(string,sizeof(string),\"%s átállította %s frakcióját %d-ra/re és a leaderjogát %d-ra/re\",nev,nev2,frakcio,leaderjog);
         AdminnakUzenet(string,1);
      }
      else SendClientMessage(playerid,-1,\"A játékos offline!\");
   }
   else SendClientMessage(playerid,-1,\"A leaderjognak 0-nak vagy 1-nek kell lennie!\");
}
else SendClientMessage(playerid,-1,\"Nem-nem!\");
}
else SendClientMessage(playerid,-1,\"Be se vagy jelentkezve ember!\");
return 1;
}

 
Mint tudvari videójában.
Innentől hogyan folytassam? Mit hogyan csináljak?

Kovacs_Richard

mivel szóköz van 1-1 frakció nevében így sokkal bonyolultabb a dolog kezdőként...biztos akarod bonyolítani?
ilyen esetben inkább azt ajánlom, hogy dialogot használj...
biztos nevet akarsz oda írni?
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Th0mas

Én úgy szeretném,hogy pl ha azt írom be,hogy /makeleader id frakcióID leaderjog akkor ne a frakció nevét kelljen írnom hanem lenne minden frakciónak egy ID-je,pl Országos Rendőr Fő Kapitányságnak 1 és így tovább

Kovacs_Richard

if(sscanf(params,\"uii\",id,frakcio,leaderjog))

 
itt is ez van...ID-t kell megadni és nem nevet...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Th0mas

De ha pl azt írnám be,hogy /makeleader 0 1 1 akkor annak az egyes frakciónak legyen egy neve,a 2-es ID-jű frakciónak meg másik neve

Kovacs_Richard

jaa, hogy az üzenetben?
így: (szövegben \'%d\' helyett \'%s\' ha lecseréled!)
 
FrakcioNevek[frakcio]

 
pl:
 
format(string,sizeof(string),\"%s átállította %s frakcióját %s-ra/re és a leaderjogát %d-ra/re\",nev,nev2,FrakcioNevek[frakcio],leaderjog);

 
ebből a sorból hiányzik 1 paraméter...4-et vár de csak 3 van beadva...
 
format(string,sizeof(string),\"[Admin:%d]%s átállította a frakcióda %d-ra/re és a leaderjogodat %d-ra/re!\",nev2,frakcio,leaderjog);
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

blackdog476

Azt szeretné szerintem, hogy ha beírja, hogy /makeleader playernév Taxi társaság 1 akkor áttegye a taxitársaságba
Idézetet írta: Kovacs_Richard date=1429209453\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53822\" data-ipsquote-contentclass=\"forums_Topic
if(sscanf(params,\"uii\",id,frakcio,leaderjog))

 
itt is ez van...ID-t kell megadni és nem nevet...
 
Ennek az ellentéte kéne.
Szerintem szöveg után nem nagyon ajánlott még egy paramēter, mert beleolvad a szövegbe, és macerás szétszedni (vagy lehet hogy egy elválasztó karakter segíthet Nem tudom, sajnos még nem foglalkoztam ilyennel)

_[G]M[K]_Sh1ft_

Hali, nem tudom hogy számomra vagy másnak is picit érthetetlen amit kérsz...
Na de lényegtelen.
 
Idézetet írta: Th0mas date=1429113344\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53822\" data-ipsquote-contentclass=\"forums_TopicSziasztok
Elkezdtem írni egy frakció \"rendszert\" ami tudvari videójában volt azzal csináltam meg de én ID helyett nevet szeretnék,hogyan csináljam meg,ezeket szeretném...
 


De ha pl azt írnám be,hogy /makeleader 0 1 1 akkor annak az egyes frakciónak legyen egy neve,a 2-es ID-jű frakciónak meg másik neve
 
[/quote]
Úgy értelmezem, hogy szeretnéd ha \'pl azt beírnád, hogy /makeleader 0 1 1\' akkor küldjön információt a \"célszemély(ek)\"-nek arról, hogy mi történt pl:
\"Átállítottad XY frakcióját 2-re és a leaderjogát 0-ra\" kimenet helyett ezt szeretnéd kapni: \"Átállítottad XY frakcióját Ballasra és a leaderjogát 0-ra\" Ehhez pedig szükséged van erre:
Itt is van a kód:
 

CMD:makeleader(playerid,params[])
{
        if(IsPlayerConnected(playerid) && Belepve[playerid] == 1)
        {
            if(JatekosInfo[playerid][AdminSzint] >= 4 || IsPlayerAdmin(playerid))
            {
                new id,frakcio,leaderjog;
                if(sscanf(params,\"uii\",id,frakcio,leaderjog)) return SendClientMessage(playerid,-1,\"Használat: /makeleader [iD] [FrakcióID] [Leaderjog (0 - nem 1 - igen)]\");
                if(leaderjog == 0 || leaderjog == 1)
                {
                    if(Belepve[id] == 1)
                    {
                        JatekosInfo[id][Frakcio]= frakcio;
                        JatekosInfo[id][Leader] = leaderjog;
                        JatekosInfo[id][Rang] = 0;
                        GetPlayerName(id,nev2,sizeof(nev2));
                        GetPlayerName(playerid,nev,sizeof(nev));
                        new string[256];
                        format(string,sizeof(string),\"%s átállította a frakciódat %s és a leaderjogodat %d-ra/re!\",nev2,GetFractionName(frakcio),leaderjog);
                        SendClientMessage(id,-1,string);
                        format(string,sizeof(string),\"Átállítottad %s frakcióját %s és a leaderjogát %d-ra/re\",nev,GetFractionName(frakcio),leaderjog);
                        SendClientMessage(playerid,-1,string);
                        format(string,sizeof(string),\"%s átállította %s frakcióját %s és a leaderjogát %d-ra/re\",nev,nev2,GetFractionName(frakcio),leaderjog);
                        AdminnakUzenet(string,1);
                    }
                    else SendClientMessage(playerid,-1,\"A játékos offline!\");
                }
                else SendClientMessage(playerid,-1,\"A leaderjognak 0-nak vagy 1-nek kell lennie!\");
            }
            else SendClientMessage(playerid,-1,\"Nem-nem!\");
        }
        else SendClientMessage(playerid,-1,\"Be se vagy jelentkezve ember!\");
        return 1;
}
stock GetFractionName(frakcio)
{
    new fname[40];
    switch(frakcio)
{
case 1: fname = \"Lakatosra\";
                  case 2: fname = \"Farmerre\";
                  case 3: fname = \"Villany szerelőre\";
//stb...
}
return 1;
}

 
Továbbá:
Tudásom szerint nincs szükséget erre:
 
new FrakcioNevek[][]=
{
        \"Országos Rendőr Fő Kapitányság(ORFK)\",
        \"Nemzeti Adó és Vámhivatal(NAV)\",
        \"Nemzeti Nyomozó Iroda(NNI)\",
        //stb...
}

 
Ui: a stockban a case és az utánna lévő szám jelenti azt, hogy melyik frakció id-t adtad meg.
Ui2: Természetesen mikor lemented a frakció értéket akkor ezt használd: frakcio

Th0mas

M[K]_Sh1ft_\" post=\"537499\" timestamp=\"1429446123\"]
Hali, nem tudom hogy számomra vagy másnak is picit érthetetlen amit kérsz...
Na de lényegtelen.
 

Sziasztok
Elkezdtem írni egy frakció \"rendszert\" ami tudvari videójában volt azzal csináltam meg de én ID helyett nevet szeretnék,hogyan csináljam meg,ezeket szeretném...
 
[/quote]
 

De ha pl azt írnám be,hogy /makeleader 0 1 1 akkor annak az egyes frakciónak legyen egy neve,a 2-es ID-jű frakciónak meg másik neve
 
[/quote]
Úgy értelmezem, hogy szeretnéd ha \'pl azt beírnád, hogy /makeleader 0 1 1\' akkor küldjön információt a \"célszemély(ek)\"-nek arról, hogy mi történt pl:
\"Átállítottad XY frakcióját 2-re és a leaderjogát 0-ra\" kimenet helyett ezt szeretnéd kapni: \"Átállítottad XY frakcióját Ballasra és a leaderjogát 0-ra\" Ehhez pedig szükséged van erre:
Itt is van a kód:
 

CMD:makeleader(playerid,params[])
{
        if(IsPlayerConnected(playerid) && Belepve[playerid] == 1)
        {
            if(JatekosInfo[playerid][AdminSzint] >= 4 || IsPlayerAdmin(playerid))
            {
                new id,frakcio,leaderjog;
                if(sscanf(params,\"uii\",id,frakcio,leaderjog)) return SendClientMessage(playerid,-1,\"Használat: /makeleader [iD] [FrakcióID] [Leaderjog (0 - nem 1 - igen)]\");
                if(leaderjog == 0 || leaderjog == 1)
                {
                    if(Belepve[id] == 1)
                    {
                        JatekosInfo[id][Frakcio]= frakcio;
                        JatekosInfo[id][Leader] = leaderjog;
                        JatekosInfo[id][Rang] = 0;
                        GetPlayerName(id,nev2,sizeof(nev2));
                        GetPlayerName(playerid,nev,sizeof(nev));
                        new string[256];
                        format(string,sizeof(string),\"%s átállította a frakciódat %s és a leaderjogodat %d-ra/re!\",nev2,GetFractionName(frakcio),leaderjog);
                        SendClientMessage(id,-1,string);
                        format(string,sizeof(string),\"Átállítottad %s frakcióját %s és a leaderjogát %d-ra/re\",nev,GetFractionName(frakcio),leaderjog);
                        SendClientMessage(playerid,-1,string);
                        format(string,sizeof(string),\"%s átállította %s frakcióját %s és a leaderjogát %d-ra/re\",nev,nev2,GetFractionName(frakcio),leaderjog);
                        AdminnakUzenet(string,1);
                    }
                    else SendClientMessage(playerid,-1,\"A játékos offline!\");
                }
                else SendClientMessage(playerid,-1,\"A leaderjognak 0-nak vagy 1-nek kell lennie!\");
            }
            else SendClientMessage(playerid,-1,\"Nem-nem!\");
        }
        else SendClientMessage(playerid,-1,\"Be se vagy jelentkezve ember!\");
        return 1;
}
stock GetFractionName(frakcio)
{
    new fname[40];
    switch(frakcio)
{
case 1: fname = \"Lakatosra\";
                  case 2: fname = \"Farmerre\";
                  case 3: fname = \"Villany szerelőre\";
//stb...
}
return 1;
}

 
Továbbá:
Tudásom szerint nincs szükséget erre:
 
new FrakcioNevek[][]=
{
        \"Országos Rendőr Fő Kapitányság(ORFK)\",
        \"Nemzeti Adó és Vámhivatal(NAV)\",
        \"Nemzeti Nyomozó Iroda(NNI)\",
        //stb...
}

 
Ui: a stockban a case és az utánna lévő szám jelenti azt, hogy melyik frakció id-t adtad meg.
Ui2: Természetesen mikor lemented a frakció értéket akkor ezt használd: frakcio
 
[/quote]
Bocsi ha érthetetlen voltam de pont ilyen kellett nekem,köszönöm! Témát zárom