Wysłany: 2013-06-24, 00:03
__.A.__
Wiek: 30 Na forum: 5170 dni Posty: 151
Piwa : 855
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
Wysłany: 2013-06-24, 00:28
Michalec
Dokładnie.
Wiek: 30 Na forum: 6405 dni Posty: 163
Nick w MP: []Damianos[]
Piwa : 99
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.
Wysłany: 2013-06-24, 00:34
__.A.__
Wiek: 30 Na forum: 5170 dni Posty: 151
Piwa : 855
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
Wysłany: 2013-06-24, 09:41
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
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
Wysłany: 2013-06-24, 10:22
__.A.__
Wiek: 30 Na forum: 5170 dni Posty: 151
Piwa : 855
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
Wysłany: 2013-06-24, 10:44
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
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
Wysłany: 2013-06-24, 10:59
__.A.__
Wiek: 30 Na forum: 5170 dni Posty: 151
Piwa : 855
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
Tagi: unset
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: