Jump to content
  • 0

Problema teritoriu


Mark S.

Question

Problema intalnita (descriere): Am creat un sitem de teriotiru de la 0 si nu se vede, dar asa se incarca si arata ca exista
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul:

 

#define MAX_GANG       500



enum TDATA
{
  Float:tfminx,
  Float:tfminy,
  Float:tfmaxx,
  Float:tfmaxy,
  tfaction,
  tid,
  tcolor[20]

}
new tInfo[MAX_GANG][TDATA];

forward TurfsLoads();
public TurfsLoads()
{
    new file[64];
    for(new idx = 0; idx < sizeof(tInfo) ; idx++)
    {
        format(file, sizeof(file),"LARP/Ganguri/%d.ini", idx)
        if(dini_Exists(file))
        {
            tInfo[idx][tfminx] = dini_Float(file,"Entrance_X");
            tInfo[idx][tfminy] = dini_Float(file,"Entrance_Y");
            tInfo[idx][tfmaxx] = dini_Float(file,"Exit_X");
            tInfo[idx][tfmaxy] = dini_Float(file,"Exit_Y");
            tInfo[idx][tfaction] = dini_Int(file,"Factiunea");
            tInfo[idx][tid] = dini_Int(file,"Id");
            tInfo[idx][tcolor] = dini_Int(file,"Color");
        }
    }
       print("[SCRIPT]: Loaded Gang");
     return 1;
}

stock GetGang2DZone(gangid, zone[], len)
{
    new Float:x22, Float:y22
    x22 = tInfo[gangid][tfminx]; y22 = tInfo[gangid][tfmaxx];
     for(new i = 0; i != sizeof(gSAZones); i++ )
     {
        if(x22 >= gSAZones[SAZONE_AREA][0] && x22 <= gSAZones[SAZONE_AREA][3] && y22 >= gSAZones[SAZONE_AREA][1] && y22 <= gSAZones[SAZONE_AREA][4])
        {
            return format(zone, len, gSAZones[SAZONE_NAME], 0);
        }
    }
    return 0;
}
ongamemodeinit

    for(new i; i<MAX_TERITORIES; i++)
    {
        tInfo[tid] = GangZoneCreate(tInfo[tfminx], tInfo[tfminy], tInfo[tfmaxx], tInfo[tfmaxy]);
    }

ProportionalUpdate

if(update == 3)
    {
        format(file, sizeof(file),"LARP/Ganguri/%d.ini",idx);
         if(dini_Exists(file))
         {
              dini_FloatSet(file,"Entrance_X",tInfo[idx][tfminx]);
            dini_FloatSet(file,"Entrance_Y",tInfo[idx][tfminy]);
             dini_FloatSet(file,"Exit_X",tInfo[idx][tfmaxx]);
             dini_FloatSet(file,"Exit_Y",tInfo[idx][tfmaxy]);
             dini_IntSet(file,"Factiunea",tInfo[idx][tfaction]);
             dini_IntSet(file,"Id",tInfo[idx][tid]);
             dini_IntSet(file,"Color",tInfo[idx][tcolor]);
         }
     }

OnPropUpdate

    else if(update == 5)
     {
         format(file, sizeof(file),"LARP/Ganguri/%d.ini",idx);
        if(dini_Exists(file))
        {
              dini_FloatSet(file,"Entrance_X",tInfo[idx][tfminx]);
            dini_FloatSet(file,"Entrance_Y",tInfo[idx][tfminy]);
             dini_FloatSet(file,"Exit_X",tInfo[idx][tfmaxx]);
             dini_FloatSet(file,"Exit_Y",tInfo[idx][tfmaxy]);
             dini_IntSet(file,"Factiunea",tInfo[idx][tfaction]);
             dini_IntSet(file,"Id",tInfo[idx][tid]);
             dini_IntSet(file,"Color",tInfo[idx][tcolor]);
         }
     }
   

onplayerspawn

    for(new i; i<MAX_GANG; i++)
    {
        GangZoneShowForPlayer(playerid, 1, 0x2680D9C8);
    }

Apoi am la folderul ganguri

1.ini

Entrance_X=0.000000
Entrance_Y=0.000000
Exit_X=100.000000
Exit_Y=100.000000
Factiunea=0
Id=0
Color=0xD5A22BC8

si

1.ini
Entrance_X=1000.000000
Entrance_Y=1000.000000
Exit_X=100.000000
Exit_Y=100.000000
Factiunea=0
Id=0
Color=0xD5A22BC8


nu see vede teritoriul dar daca dau comanda asta arata zona in care e tritoriu 1 in bluebary acres si 0 in fre sau nu stiucum.

    if(strcmp(cmd, "/gangur", true) == 0)
    {
        if (PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /check [houseid]");
                return 1;
            }
            new houseid = strval(tmp);
            new zone[24];
            GetGang2DZone(houseid, zone, sizeof(zone));
            format(string, sizeof(string),"House ID %d is at %s",houseid, zone);
            SendClientMessage(playerid, COLOR_GREY,string);
        }
        return 1;
    }


Imagini / Video (optional): -
Ati incercat sa rezolvati singur?: incontinu si in zadar

Edited by Selby
Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Doamne, Doamne, nu asa se incarca teritoriile salvate intr-un fisier, daca vrei sa incarci tot fisierul faci o functie gen LoadTurfs() care v-a verifica daca fisierul exista iar daca exista, il v-a incarca atunci cand "primeste ordinul" iar pentru a "primi ordinul" dupa ce o termini adaugi la OnGamemodeInit : LoadTurfs();

Edited by NoNamed
Link to comment
Share on other sites

  • 0

Pai si nu vezi ca am functia aia, este asta

forward TurfsLoads();
public TurfsLoads()
{
  new file[64];
  for(new idx = 0; idx < sizeof(tInfo) ; idx++)
  {
    format(file, sizeof(file),"LARP/Ganguri/%d.ini", idx)
    if(dini_Exists(file))
    {
      tInfo[idx][tfminx] = dini_Float(file,"Entrance_X");
      tInfo[idx][tfminy] = dini_Float(file,"Entrance_Y");
      tInfo[idx][tfmaxx] = dini_Float(file,"Exit_X");
      tInfo[idx][tfmaxy] = dini_Float(file,"Exit_Y");
      tInfo[idx][tfaction] = dini_Int(file,"Factiunea");
      tInfo[idx][tid] = dini_Int(file,"Id");
      tInfo[idx][tcolor] = dini_Int(file,"Color");
    }
  }
   print("[SCRIPT]: Loaded Gang");
   return 1;
}

iar la ongamemodeinit am asta TurfsLoads();

 

 

Iar in consola zice "[sCRIPT]: Loaded Gang"

Link to comment
Share on other sites

  • 0

am inteles am pus asa

 

 

public OnTurfsLoads()
{
    new file[64];
    for(new idx = 0; idx < sizeof(tInfo) ; idx++)
    {
        format(file, sizeof(file),"LARP/Ganguri/%d.ini", idx)
        if(dini_Exists(file))
        {
            tInfo[idx][tfminx] = dini_Float(file,"Entrance_X");
            tInfo[idx][tfminy] = dini_Float(file,"Entrance_Y");
            tInfo[idx][tfmaxx] = dini_Float(file,"Exit_X");
            tInfo[idx][tfmaxy] = dini_Float(file,"Exit_Y");
            tInfo[idx][tfaction] = dini_Int(file,"Factiunea");
            tInfo[idx][tid] = dini_Int(file,"Id");
            tInfo[idx][tcolor] = dini_Int(file,"Color");
            print("[sCRIPT]: Loaded Gang");
        }
    }
     return 1;
}
 

 

Acum scrie de doua ori loaded gang

Edited by Selby
Link to comment
Share on other sites

  • 0

Iti scried e 2 ori loaded gang pentru ca ai 2 teritorii salvate.

public OnTurfsLoads()
{
    new file[64];
    for(new idx; idx < sizeof(tInfo) ; idx++)
    {
        format(file, sizeof(file),"LARP/Ganguri/%d.ini", idx)
        if(dini_Exists(file))
        {
            tInfo[idx][tfminx] = dini_Float(file,"Entrance_X");
            tInfo[idx][tfminy] = dini_Float(file,"Entrance_Y");
            tInfo[idx][tfmaxx] = dini_Float(file,"Exit_X");
            tInfo[idx][tfmaxy] = dini_Float(file,"Exit_Y");
            tInfo[idx][tfaction] = dini_Int(file,"Factiunea");
            tInfo[idx][tid] = dini_Int(file,"Id");
            tInfo[idx][tcolor] = dini_Int(file,"Color");
        }
    }
    print("[SCRIPT]: Loaded Gang");
    return 1;
}

Ai incercat in onplayerspawn sa printezi valorile sa vezi daca le citeste macar? In plus observ ca te-ai inspirat putin din sistemul meu pe baza de date dar la fel ca si in cazul meu e o problema undeva pe care nu o vedem cred si probabil e doar ceva minor. Am sa mai incerc in noaptea asta sa gasesc o rezolvare la mine si daca gasesc iti postez pentru ca e posibil sa te ajute si pe tine.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.