Jump to content
  • 0

Culoare GangZone incorecta (GangZoneShowForPlayer)[SOLVED]


IcE.

Question

Salut, dupa ce am vazut tutorialu facut de Roberto(respect) am incercat sal bag pe un gf. Toate bune si frumoase, ii lipseau niste functi pe acolo, leam bagat eu .

Problema este ca nu imi arata culoarea decat la un gang(eu am doua) si imi arata alta culoare, culoarea corecta este portocaliu(0xFF800096).

Mentionez ca culoarea mi-o salveaza in Decimal.

[pawn]

//OnPlayerConnect

for(new zone = 0; zone < MAX_ZONES; zone++)

{

GangZoneShowForPlayer(playerid, ZoneInfo[ zone ][ZoneID], GangZone_CurrentColour[ zone ] );

}

[/pawn]

Si functia Load si Save.

[pawn]

LoadZones()

{

new PartOfString[12][64];

new FileString[128];

new File: file = fopen("GWturfs.ini", io_read);

if (file)

{

new idx;

while (idx < sizeof(ZoneInfo)-1)

{

fread(file, FileString);

split(FileString, PartOfString, ',');

ZoneInfo[idx][ZoneID] = strval(PartOfString[0]);

strmid(ZoneInfo[idx][ZoneOwner], PartOfString[1], 0, strlen(PartOfString[1]), MAX_PLAYER_NAME);

ZoneInfo[idx][ZoneOwnerID] = strval(PartOfString[2]);

GangZone_CurrentColour[idx] = strval(PartOfString[3]);

printf("ZoneID: %d  ZoneOwner: %s  ZoneOwnerID: %d  Colour: %d", ZoneInfo[idx][ZoneID], ZoneInfo[idx][ZoneOwner], ZoneInfo[idx][ZoneOwnerID], GangZone_CurrentColour[idx] );

idx++;

}

fclose(file);

}

return 1;

}

//==============================================================================

SaveZones()

{

new idx;

new File: file2;

while (idx < sizeof(ZoneInfo))

{

new FileString[128];

format(FileString, sizeof(FileString), "%d,%s,%d,%d\r\n",

ZoneInfo[idx][ZoneID],

ZoneInfo[idx][ZoneOwner],

ZoneInfo[idx][ZoneOwnerID],

GangZone_CurrentColour[idx] );

// print(FileString);

if(idx == 0) file2 = fopen("GWturfs.ini", io_write);

else file2 = fopen("GWturfs.ini", io_append);

fwrite(file2, FileString);

idx++;

fclose(file2);

}

return 1;

}

[/pawn]

Poate va dati voi seama de la ce e, eu nam reusit ...

Daca mai vreti sa va dau si alte lini imi spuneti si le postez.

Multumesc anticipat.

PS:Pentru toti ce zic ca trebuia sa postez la Probleme GF, FALS, e o functie care poate fi pusa si pe un gm DM, eu am puso pe unu GF.

Rezolvat

Stiu si eu ... branza e pe bani, dar eu tot ma joc pe gratis!

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

Poftim un mic tutorial :

Faci :

1) Adaugi in gamemode :

forward LoadTurfs();

forward SaveTurfs();

2) Ve adauga acuma :

enum zInfo
{
zOwner[64],
zColor[20],
    Float:zMinX,
    Float:zMinY,
    Float:zMaxX,
    Float:zMaxY,
};

new TurfInfo[6][zInfo];

new Turfs[6];

3) Adaugi pe urma :

public LoadTurfs()
{
new arrCoords[6][64];
new strFromFile2[256];
new File: file = fopen("GameMode/scriptfiles/turfs.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(TurfInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
strmid(TurfInfo[idx][zOwner], arrCoords[0], 0, strlen(arrCoords[0]), 255);
strmid(TurfInfo[idx][zColor], arrCoords[1], 0, strlen(arrCoords[1]), 255);
TurfInfo[idx][zMinX] = floatstr(arrCoords[2]);
TurfInfo[idx][zMinY] = floatstr(arrCoords[3]);
TurfInfo[idx][zMaxX] = floatstr(arrCoords[4]);
TurfInfo[idx][zMaxY] = floatstr(arrCoords[5]);
//printf("Turf:%d Name: %s Owner:%s MinX:%f MinY:%f MinZ:%f MaxX:%f MaxY:%f MaxZ:%f\n",
//idx,TurfInfo[idx][zName],TurfInfo[idx][zOwner],TurfInfo[idx][zMinX],TurfInfo[idx][zMinY],TurfInfo[idx][zMinZ],TurfInfo[idx][zMaxX],TurfInfo[idx][zMaxY],TurfInfo[idx][zMaxZ]);
idx++;
}
fclose(file);
}
return 1;
}

public SaveTurfs()
{
new idx;
new File: file2;
while (idx < sizeof(TurfInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%s|%s|%f|%f|%f|%f|%f|%f\n",
TurfInfo[idx][zOwner],
TurfInfo[idx][zColor],
TurfInfo[idx][zMinX],
TurfInfo[idx][zMinY],
TurfInfo[idx][zMaxX],
TurfInfo[idx][zMaxY]);
if(idx == 0)
{
file2 = fopen("GameMode/scriptfiles/turfs.cfg", io_write);
}
else
{
file2 = fopen("GameMode/scriptfiles/turfs.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}

4) Dai CTRL + F si cauti : public OnGameModeInit()

Si vei adauga :

LoadTurfs();

5)Adaugi la inceputul gamemode-ului :

new NumeGang;

6) Pui la : public OnPlayerSpawn(playerid)

Vei pune :

for(new i = 0; i < sizeof(Turfs); i++)
{
    GangZoneShowForPlayer(playerid, i, TurfInfo[i][zColor]);
    GangZoneShowForPlayer(playerid, NumeGang, culoarea);
    return 1;
}

7) Dai CTRL + F si cauti : public OnGameModeInit()

Vei pune :

for(new i = 0; i < sizeof(TurfInfo); i++)
{
    Turfs[i] = GangZoneCreate(TurfInfo[i][zMinX],TurfInfo[i][zMinY],TurfInfo[i][zMaxX],TurfInfo[i][zMaxY]);
            NumeGang = GangZoneCreate(Coordonate1, Coordonate2, Coordonate3, Coordonate4);
        }
       

Sper ca ti-am fost de ajutor , mi-a cam luat ceva timp sa iti fac tutuorialul , l-am creat mai mult ca sa intelegi de la A la Z .

default.png
Link to comment
Share on other sites

Poftim un mic tutorial :

Faci :

1) Adaugi in gamemode :

forward LoadTurfs();

forward SaveTurfs();

2) Ve adauga acuma :

enum zInfo
{
zOwner[64],
zColor[20],
    Float:zMinX,
    Float:zMinY,
    Float:zMaxX,
    Float:zMaxY,
};

new TurfInfo[6][zInfo];

new Turfs[6];

3) Adaugi pe urma :

public LoadTurfs()
{
new arrCoords[6][64];
new strFromFile2[256];
new File: file = fopen("GameMode/scriptfiles/turfs.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(TurfInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
strmid(TurfInfo[idx][zOwner], arrCoords[0], 0, strlen(arrCoords[0]), 255);
strmid(TurfInfo[idx][zColor], arrCoords[1], 0, strlen(arrCoords[1]), 255);
TurfInfo[idx][zMinX] = floatstr(arrCoords[2]);
TurfInfo[idx][zMinY] = floatstr(arrCoords[3]);
TurfInfo[idx][zMaxX] = floatstr(arrCoords[4]);
TurfInfo[idx][zMaxY] = floatstr(arrCoords[5]);
//printf("Turf:%d Name: %s Owner:%s MinX:%f MinY:%f MinZ:%f MaxX:%f MaxY:%f MaxZ:%f\n",
//idx,TurfInfo[idx][zName],TurfInfo[idx][zOwner],TurfInfo[idx][zMinX],TurfInfo[idx][zMinY],TurfInfo[idx][zMinZ],TurfInfo[idx][zMaxX],TurfInfo[idx][zMaxY],TurfInfo[idx][zMaxZ]);
idx++;
}
fclose(file);
}
return 1;
}

public SaveTurfs()
{
new idx;
new File: file2;
while (idx < sizeof(TurfInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%s|%s|%f|%f|%f|%f|%f|%f\n",
TurfInfo[idx][zOwner],
TurfInfo[idx][zColor],
TurfInfo[idx][zMinX],
TurfInfo[idx][zMinY],
TurfInfo[idx][zMaxX],
TurfInfo[idx][zMaxY]);
if(idx == 0)
{
file2 = fopen("GameMode/scriptfiles/turfs.cfg", io_write);
}
else
{
file2 = fopen("GameMode/scriptfiles/turfs.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}

4) Dai CTRL + F si cauti : public OnGameModeInit()

Si vei adauga :

LoadTurfs();

5)Adaugi la inceputul gamemode-ului :

new NumeGang;

6) Pui la : public OnPlayerSpawn(playerid)

Vei pune :

for(new i = 0; i < sizeof(Turfs); i++)
{
    GangZoneShowForPlayer(playerid, i, TurfInfo[i][zColor]);
    GangZoneShowForPlayer(playerid, NumeGang, culoarea);
    return 1;
}

7) Dai CTRL + F si cauti : public OnGameModeInit()

Vei pune :

for(new i = 0; i < sizeof(TurfInfo); i++)
{
    Turfs[i] = GangZoneCreate(TurfInfo[i][zMinX],TurfInfo[i][zMinY],TurfInfo[i][zMaxX],TurfInfo[i][zMaxY]);
            NumeGang = GangZoneCreate(Coordonate1, Coordonate2, Coordonate3, Coordonate4);
        }
       

Sper ca ti-am fost de ajutor , mi-a cam luat ceva timp sa iti fac tutuorialul , l-am creat mai mult ca sa intelegi de la A la Z .

Mersi ori cum, dar nu mi-a fost de ajutor...

Stiu si eu ... branza e pe bani, dar eu tot ma joc pe gratis!

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.