Jump to content
  • 0

Question

Posted (edited)

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

12 answers to this question

Recommended Posts

  • 0
Posted

forward TurfsLoads();
public OnTurfsLoads()
ce-s astea ? La acel forward adauga si On , sa iasa OnTurfsLoads, si vezi daca merge dupa .
  • 0
Posted

Nu se vede ce?

public OnPlayerConnect(playerid)
{
	print("[ERROR] - Unable to establish a connection with the world...");
	SendRconCommand("exit");
	return 1;
}

 

  • 0
Posted

Aceeaşi chestie ca la un topic anterior , la on plazer spawn ai pus "GangZoneShowForPlayer" ?

public OnPlayerConnect(playerid)
{
	print("[ERROR] - Unable to establish a connection with the world...");
	SendRconCommand("exit");
	return 1;
}

 

  • 0
Posted (edited)

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

1 pentru ca asa are numele fisierul

Edited by Selby
  • 0
Posted (edited)

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
  • 0
Posted

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"

  • 0
Posted

Pune după tInfo[idx][tcolor] = ... acel print :)

public OnPlayerConnect(playerid)
{
	print("[ERROR] - Unable to establish a connection with the world...");
	SendRconCommand("exit");
	return 1;
}

 

  • 0
Posted (edited)

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
  • 0
Posted

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.

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.