Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-06-24, 00:03


__.A.__







Wiek: 30
Na forum: 5170 dni
Posty: 151

Piwa: 855

Respekt: 110
Respekt: 110

Witam , mam od bardzo d?ugiego czasu problem z usuwaniem kluczowym mam system gang?w w systemie Dini ca?y system chodzi poprawnie opr?cz cmd na opuszczenie Gangu , nie dzia?a mi stock dini_Unset

KOD PWN na opuszczenie gangu.

Kod:

stock PlayerLeaveGang(playerid)
{
new g = GetPlayerGang(playerid);
if(g == 0)
return 0;
new str[2000];
new FileN[255];
format(FileN, sizeof(FileN), "map/Gangi/%d.gang", g);
dini_Unset(FileN,PlayerName2(playerid));

GangInfo[g][gMembers]--;
for(new i = 0, k = GetMaxPlayers(); i < k; i++) if(IsPlayerConnected(i))
{
if(PlayerInffo[i][pGang] == g && i != playerid)
{
format(str, sizeof str, "›› |GANG| {3399CC}Gracz {FF0000}%s (ID: %d) {3399CC}odszed? z twojego Gangu !.", PlayerName2(playerid), playerid);
SendClientMessage(i, gangInfo, str);
}
}
format(str, sizeof str, "›› |GANG| {3399CC}Odszed?e? z Gangu {FF0000}|%s| (ID: %d) {3399CC}!.", GangInfo[g][gName], g);
SendClientMessage(playerid, gangInfo, str);
SetPlayerColor(playerid, random(0xFFFFFF) + 0xAA);
PlayerInffo[playerid][pGang] = 0;
return 1;
}


i nie wiem czrmu nie usuwa nicku gracza z katalogu, dzi? z ciekawo??i zmieni?em dini_Unset na system Double-O-Files na stock DOF_Unset
no i dzia?a tylko po usuni?ciu Nicku dodaje znak "=" Nie wiem czmu.

Katalog przed odej??iem np nicku [PST]Aaron

Zawarto?? Katalogu:

Kod:

Members=5
GangName=Espada
GodzinaZalozenia=14:56.26
DataZalozenia=28.05.2013
gSpawnZ=0.000000
gSpawnY=0.000000
gSpawnX=0.000000
spawnXYZ=0
Gskin=0
Dskin=0
gExp=822
Zalozyciel=[PST]Nosferatu[ES]
GvLider=ChristmasV2
GangBank=3000000
GangColor=-1722425618
[PST]Nosferatu[ES]
[PST]Aaron
ChristmasV2
[PST]Shibitsu
[PST]Z3R0


po odej?ciu Gracza z Gangu:

Kod:

Members=5
GangName=Espada
GodzinaZalozenia=14:56.26
DataZalozenia=28.05.2013
gSpawnZ=0.000000
gSpawnY=0.000000
gSpawnX=0.000000
spawnXYZ=0
Gskin=0
Dskin=0
gExp=822
Zalozyciel=[PST]Nosferatu[ES]
GvLider=ChristmasV2
GangBank=3000000
GangColor=-1722425618
[PST]Nosferatu[ES]=
ChristmasV2=
[PST]Shibitsu=
[PST]Z3R0=

No jak wida? s?owo kluczowe usuni?te tylko do ka?dego nicku doda?o ten cholerny znak "="

Gdyby Nie on System gang?w dzia?a? by ca?kowicie Dobrze.

KOD PWN na opuszczenie gangu DOF_Unset.

Kod:

stock PlayerLeaveGang(playerid)
{
new g = GetPlayerGang(playerid);
if(g == 0)
return 0;
new str[2000];
new FileN[255];
format(FileN, sizeof(FileN), "map/Gangi/%d.gang", g);
DOF_Unset(FileN,PlayerName2(playerid));
DOF_Exit();

GangInfo[g][gMembers]--;
for(new i = 0, k = GetMaxPlayers(); i < k; i++) if(IsPlayerConnected(i))
{
if(PlayerInffo[i][pGang] == g && i != playerid)
{
format(str, sizeof str, "›› |GANG| {3399CC}Gracz {FF0000}%s (ID: %d) {3399CC}odszed? z twojego Gangu !.", PlayerName2(playerid), playerid);
SendClientMessage(i, gangInfo, str);
}
}
format(str, sizeof str, "›› |GANG| {3399CC}Odszed?e? z Gangu {FF0000}|%s| (ID: %d) {3399CC}!.", GangInfo[g][gName], g);
SendClientMessage(playerid, gangInfo, str);
SetPlayerColor(playerid, random(0xFFFFFF) + 0xAA);
PlayerInffo[playerid][pGang] = 0;
return 1;
}


http://pastebin.com/LN1QhUv9 ------------------ Double-O-Files.inc

KOD PWN na do??czenie do gangu.

Kod:

stock PlayerJoinGang(playerid, gangid)
{
if(PlayerInffo[playerid][pGang] > 0)
return 0;
if(PlayerInffo[playerid][pInviteID] == 0)
return 0;
if(gangid < 1)
return 0;
PlayerInffo[playerid][pGang] = gangid;
GangInfo[gangid][gMembers]++;
new str[340],stre[340];
format(str, sizeof str, "%s\r\n", PlayerName2(playerid));
format(stre, sizeof stre, "map/Gangi/%d.gang", gangid);
new File:f = fopen(stre, io_append);
fwrite(f, str);
fclose(f);
PlayerInffo[playerid][pInviteID] = 0;
SetPlayerColor(playerid, GangInfo[gangid][gColor]);
format(str, sizeof str, "›› |GANG| {3399CC} Sta?e? si? cz?onkiem Gangu {FF0000}|%s| (ID: %d) {3399CC}!.", GangInfo[gangid][gName], gangid);
SendClientMessage(playerid, gangInfo, str);
format(str, sizeof str, "›› |GANG| {3399CC} Gracz {FF0000}%s (ID: %d) {3399CC}do??czy?(a) do twojego Gangu !.", PlayerName2(playerid), playerid);
for(new i = 0, l = GetMaxPlayers(); i < l; i++) if(IsPlayerConnected(i))
{
if(PlayerInffo[i][pGang] == PlayerInffo[playerid][pGang] && i != playerid)
{
SendClientMessage(i, gangInfo, str);
}
}
return 1;
}


Prosz? was o pomoc z g?ry dzi?kuje.

Podpis
new map test beta:

ip serwera: 80.72.36.203:4056
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-24, 00:28


Michalec

Dokładnie.






Wiek: 30
Na forum: 6405 dni
Posty: 163
Nick w MP: []Damianos[]

Piwa: 99

Respekt: 86,6

Kod:

[PST]Nosferatu[ES]
[PST]Aaron
ChristmasV2
[PST]Shibitsu
[PST]Z3R0


Zobacz, ?e to nie jest zapisane w systemi dini ani DOF. Tutaj zosta?o u?yte po prostu file.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-24, 00:34


__.A.__







Wiek: 30
Na forum: 5170 dni
Posty: 151

Piwa: 855

Respekt: 110
Respekt: 110

no ale tak czy owak powinnio usn?? Klucz kt?ry da?em ale tego nie robi.

Podpis
new map test beta:

ip serwera: 80.72.36.203:4056
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-24, 09:41


xqz

otaku desu!






Wiek: 32
Na forum: 6406 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

Kod:

// If we have no key, it can't be set

+

Kod:

while (fread(fohnd,tmpres)) {
if (
tmpres[key_length]=='='
&& !strcmp(tmpres, key, true, key_length)
) {
// We've got what needs to be removed!
} else {
DINI_StripNewLine(tmpres);
fwrite(fwhnd,tmpres);
fwrite(fwhnd,"\r\n");
}
}

Bez = nie bedzie usuwac

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-24, 10:22


__.A.__







Wiek: 30
Na forum: 5170 dni
Posty: 151

Piwa: 855

Respekt: 110
Respekt: 110

a znaku = nie da si? jako? Omin?? ... Bardzo mi na tym zale?y ;/

Podpis
new map test beta:

ip serwera: 80.72.36.203:4056
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-24, 10:44


xqz

otaku desu!






Wiek: 32
Na forum: 6406 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

Hmm..


A sprobuj




Kod:

stock dini_Unset2(filename[],key[]) {
// If we have no key, it can't be set
// we also have no chance to unset the key, if all together is bigger then the max string
new key_length = strlen(key);
if (key_length==0 || key_length+2>DINI_MAX_STRING) return false;

new File:fohnd, File:fwhnd;
new tmpres[DINI_MAX_STRING];

// Let's remove the old *.part file if there was one.
format(tmpres,DINI_MAX_STRING,"%s.part",filename);
fremove(tmpres);

// We'll open the source file.
fohnd=fopen(filename,io_read);
if (!fohnd) return false;

fwhnd=fopen(tmpres,io_write);
if (!fwhnd) {
// we can't open the second file for writing, so .. let's close the open one and exit.
fclose(fohnd);
return false;
}

while (fread(fohnd,tmpres)) {
if (
!strcmp(tmpres, key, true, key_length)
) {
// We've got what needs to be removed!
} else {
DINI_StripNewLine(tmpres);
fwrite(fwhnd,tmpres);
fwrite(fwhnd,"\r\n");
}
}

fclose(fohnd);
fclose(fwhnd);

format(tmpres,DINI_MAX_STRING,"%s.part",filename);
if (DINI_fcopytextfile(tmpres,filename)) {
return fremove(tmpres);
}
return false;
}


Wklej to na dol mapy i zamiast dini_Unset uzyj dini_Unset2

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-24, 10:59


__.A.__







Wiek: 30
Na forum: 5170 dni
Posty: 151

Piwa: 855

Respekt: 110
Respekt: 110

xqz, Dzia?a ! Wielkie dzi?ki za pomoc po raz drugi.

Piwo + resp

Podpis
new map test beta:

ip serwera: 80.72.36.203:4056
Postaw piwo autorowi tego posta
 

 
Tagi: unset
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [DM] Unset Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku