26.04.2010, 06:32
olб pessoal sou novo aqui e gostaria de pedir uma ajuda
meu gm tem um sistema de gang zonas comprбveis mais o problema dele й que nгo salva os players nem as gang dominбveis, e gostaria que ele salvasse na pasta filescripts do server se alguйm poder me ajuda eu ficarei muito grato.
ai esta o codigo completo
meu gm tem um sistema de gang zonas comprбveis mais o problema dele й que nгo salva os players nem as gang dominбveis, e gostaria que ele salvasse na pasta filescripts do server se alguйm poder me ajuda eu ficarei muito grato.
Код:
public PlayerLeaveGang(playerid) { new string[256]; new playername[MAX_PLAYER_NAME]; new gangnum = playerGang[playerid]; if(gangnum > 0) { for(new i = 0; i < gangInfo[gangnum][1]; i++) { if(gangMembers[gangnum][i]==playerid) { gangInfo[gangnum][1]--; for(new j = i; j < gangInfo[gangnum][1]; j++) { gangMembers[gangnum][j]=gangMembers[gangnum][j+1]; } if(gangInfo[gangnum][1]<1) { gangInfo[gangnum][0]=0; gangInfo[gangnum][1]=0; gangBank[gangnum]=0; } for(new j = 0; j < gangInfo[gangnum][1]; j++) { GetPlayerName(playerid, playername, MAX_PLAYER_NAME); format(string, sizeof(string),"%s Saiu da sua gang.", playername); SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string); } format(string, sizeof(string),"Vocк saiu da gang '%s' (id: %d)", gangNames[gangnum], gangnum); SendClientMessage(playerid, COLOR_ORANGE, string); playerGang[playerid]=0; SetPlayerColor(playerid,playerColors[playerid]); return; } } } else { SendClientMessage(playerid, COLOR_RED, "Vocк nгo pode entrar na gang."); } } public getCheckpointType(playerID) { return checkpointType[playerCheckpoint[playerID]]; } public isPlayerInArea(playerID, Float:data[4]) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerID, X, Y, Z); if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) { return 1; } return 0; } public PayPlayerInArea(playerID, Float:x1, Float:y1, Float:x2, Float:y2, cash) { if(IsPlayerConnected(playerID)) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerID, X, Y, Z); if(X >= x1 && X <= x2 && Y >= y1 && Y <= y2) { GivePlayerMoney(playerID, cash); return 1; } } return 0; } public PirateShipScoreUpdate() { for(new i=0; i<MAX_PLAYERS; i++) { PayPlayerInArea(i, 1995.5, 1518.0, 2006.0, 1569.0, 100); // { // SendClientMessage(i, COLOR_YELLOW, "[INFO]Vocк esta ganhando dinheiro por estar na area de dinheiro."); // } } } public PayPlayerInGz(playerID, GzID, Float:x1, Float:y1, Float:x2, Float:y2, cash) //ID_GZ { if(IsPlayerConnected(playerID)) { new Float:X, Float:Y, Float:Z, Float:Health, Float:Armour; // new GzIdx = gangZonaId[GzID]; GetPlayerPos(playerID, X, Y, Z); GetPlayerHealth(playerID,Health); GetPlayerArmour(playerID,Armour); if((X >= x1) && (X <= x2) && (Y >= y1) && (Y <= y2)) { if(playerGang[playerID] > 0) { // for(new i = 0 ; i < gangInfo[GzIdx][1]; i++) // { // if(gangMembers[GzIdx][i] == playerID) // { if(gangZonaId[GzID] == playerGang[playerID]) { GivePlayerMoney(playerID, cash); if(Health < 105) { SetPlayerHealth(playerID,Health + 2); } if(Armour< 105) { SetPlayerArmour(playerID,Armour + 2); } } else { if(GZ_EXISTE[GzID][0] == 1) { if(Health > 2) { SetPlayerHealth(playerID,Health - 0); } } else { return 1; } } // } } else { if(GZ_EXISTE[GzID][0] == 1) { if(Health > 2) { SetPlayerHealth(playerID,Health - 0); } } else { return 1; } } } return 1; } return 0; } public GzScoreUpdate() { for(new i = 0 ; i < MAX_PLAYERS ; i++) { // GZ AUTOBASE_LV PayPlayerInGz(i, 0, 1017.134948, 1222.946899, 1096.891235, 1361.736572, 500); // GZ CONSTRUCAO_LV PayPlayerInGz(i, 1, 2372.279052, 1832.521362, 2496.685302, 1962.471801, 500); // GZ RECINTO_LV PayPlayerInGz(i, 2, 2777.4753, 833.6251, 2894.6955, 1022.9479, 500); // GZ FABRICA_LV PayPlayerInGz(i, 3, 918.294555, 2043.856567, 996.507202, 2182.339599, 500); // GZ AEROPLACE_LV PayPlayerInGz(i, 4, 1638.5530, 1284.3757, 1716.3368, 1319.3700, 500); // GZ Disney_LV PayPlayerInGz(i, 5, 2079.743, 978.1417, 2329.653, 1171.545, 500); // GZ_EXERCITO_LV PayPlayerInGz(i, 6, 81.74512, 1763.359, 362.0141, 2055.306, 500); // GZ CALIGULAS_LV PayPlayerInGz(i, 7, 2099.267, 1535.143, 2290.605, 1728.547, 500); //GZ GOLF_LV PayPlayerInGz(i, 8, 1111.341, 2718.771, 1509.635, 2842.55, 500); //GZ_LV_ PayPlayerInGz(i, 9, 2267.176, 2235.263, 2403.845, 2409.326, 500); } return 1; }
Код:
if(strcmp(cmdtext, "/gzcomprar", true) == 0) { new property = 999; if(IsPlayerInCheckpoint(playerid)) { switch (playerCheckpoint[playerid]) { case CP_GZ_AUTOBASE_LV: { property = P_GZ_AUTOBASE_LV; gz = 0; } case CP_GZ_CONSTRUCAO_LV: { property = P_GZ_CONSTRUCAO_LV; gz = 1; } case CP_GZ_RECINTO_LV: { property = P_GZ_RECINTO_LV; gz = 2; } case CP_GZ_FABRICA_LV: { property = P_GZ_FABRICA_LV; gz = 3; } case CP_GZ_AEROPLACE_LV: { property = P_GZ_AEROPLACE_LV; gz = 4; } case CP_GZ_DISNEY_LV: { property = P_GZ_DISNEY_LV; gz = 5; } case CP_GZ_EXERCITO_LV: { property = P_GZ_EXERCITO_LV; gz = 6; } case CP_GZ_CALIGULAS_LV: { property = P_GZ_CALIGULAS_LV; gz = 7; } case CP_GZ_GOLF_LV: { property = P_GZ_GOLF_LV; gz = 8; } case CP_GZ_LV: { property = P_GZ_LV; gz = 9; } } if(gz == 999 || property == 999) { SendClientMessage(playerid, COLOR_RED, "[GZ INFO] Vб para o checkpoint e digite /gzcomprar"); return 1; } if(GetPlayerMoney(playerid) < propertyValues[property]) { SendClientMessage(playerid, COLOR_RED, "<GZ INFO> Vocк nгo tem dinheiro para comprar essa Gang Zona!"); return 1; } if(playerGang[playerid] > 0) { if(gangZonaId[gz] == playerGang[playerid]) { SendClientMessage(playerid, COLOR_RED, "[GZ]: Essa Gang Zona jб й da tua Gang!"); return 1; } new playerCor = gangInfo[playerGang[playerid]][2]; // gangInfo[playerGang[playerid]][2] = playerColors[playerid]; if(GZ_EXISTE[gz][0] == 1) { GangZoneDestroy(GZ[gz]); GZ[gz] = 555; } if(gangZonaId[gz] > 0) { gangZonaIdAnter[gz] = gangZonaId[gz]; } switch(gz) { case 0: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(1017.134948, 1222.946899, 1096.891235, 1361.736572); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 1: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2372.279052, 1832.521362, 2496.685302, 1962.471801); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 2: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2777.4753, 833.6251, 2894.6955, 1022.9479); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 3: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(918.294555, 2043.856567, 996.507202, 2182.339599); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 4: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(1638.5530, 1284.3757, 1716.3368, 1319.3700); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 5: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2079.743, 978.1417, 2329.653, 1171.545); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 6: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(81.74512, 1763.359, 362.0141, 2055.306); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 7: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2099.267, 1535.143, 2290.605, 1728.547); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 8: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(1111.341, 2718.771, 1509.635, 2842.55); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 9: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2267.176, 2235.263, 2403.845, 2409.326); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } default: return 1; } } else { SendClientMessage(playerid, COLOR_RED, "[GZ INFO] Й preciso estar em uma gang para poder comprar!"); return 1; } if(GZ_EXISTE[gz][0] == 1) { GivePlayerMoney(playerid, 0-propertyValues[property]); format(string, sizeof(string), "A gang %s comprou a %s da gang %s!", gangNames[gangZonaId[gz]], propertyNames[property], gangNames[gangZonaIdAnter[gz]]); SendClientMessageToAll(COLOR_GREEN, string); } } else { SendClientMessage(playerid, COLOR_RED, "[GZ INFO] Necessario estar no checkpoint para poder /gzcomprar"); return 1; } return 1; }
Код:
if(strcmp(cmd, "/gang", true) == 0) { new tmp[256]; new gangcmd, gangnum; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COR_ROSA, "USE: /gang [criar/entrar/convite/sair/kick] [nome/id]"); return 1; } giveplayerid = strval(tmp); if(strcmp(tmp, "criar", true)==0) gangcmd = 1; else if(strcmp(tmp, "convite", true)==0) gangcmd = 2; else if(strcmp(tmp, "entrar", true)==0) gangcmd = 3; else if(strcmp(tmp, "sair", true)==0) gangcmd = 4; else if(strcmp(tmp, "kick", true)==0) gangcmd = 5; tmp = strtok(cmdtext, idx); if(gangcmd < 3 && !strlen(tmp)) { if(gangcmd==0) SendClientMessage(playerid, COR_ROSA, "<USE> /gang [criar/entrar/convite/sair] [nome/id]"); else if(gangcmd==1) SendClientMessage(playerid, COR_ROSA, "<USE> /gang [criar] [nome]"); else if(gangcmd==2) SendClientMessage(playerid, COR_ROSA, "<USE> /gang [convite] [playerid]"); return 1; } if(gangcmd==1) { if(playerGang[playerid]>0) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Jб estб em uma gang!"); return 1; } for(new i = 1; i < MAX_GANGS; i++) { if(gangInfo[i][0]==0) { format(gangNames[i], MAX_GANG_NAME, "%s", tmp); gangInfo[i][0]=1; gangInfo[i][1]=1; gangInfo[i][2]=playerColors[playerid]; gangMembers[i][0] = playerid; format(string, sizeof(string),"GANG: Vocк criou a gang:'%s' (id: %d)", gangNames[i], i); SendClientMessage(playerid, COLOR_GREEN, string); playerGang[playerid]=i; return 1; } } return 1; } else if(gangcmd==3) { gangnum = gangInvite[playerid]; if(playerGang[playerid] > 0) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Vocк jб estб em uma gang!"); return 1; } if(gangInvite[playerid] == 0) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Vocк nгo foi convidado para estб gang."); return 1; } if(gangInfo[gangnum][0] == 0) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Essa gang nгo existe!"); return 1; } if(gangInfo[gangnum][1] < MAX_GANG_MEMBERS) { new i = gangInfo[gangnum][1]; gangInvite[playerid] = 0; gangMembers[gangnum][i] = playerid; GetPlayerName(playerid, sendername, MAX_PLAYER_NAME); for(new j = 0; j < gangInfo[gangnum][1]; j++) { format(string, sizeof(string),"GANG: %s Vocк faz parte da gang.", sendername); SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string); } gangInfo[gangnum][1]++; playerGang[playerid] = gangnum; SetPlayerColor(playerid,gangInfo[gangnum][2]); format(string, sizeof(string),"GANG: Vocк entrou na gang:'%s' (id: %d)", gangNames[gangnum], gangnum); SendClientMessage(playerid, COLOR_GREEN, string); return 1; } SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Essa gang estб cheia."); return 1; } else if(gangcmd==2) { giveplayerid = strval(tmp); if(playerGang[playerid]==0) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Vocк nгo estб em uma gang!"); return 1; } // if(gangMembers[playerGang[playerid]][0] != playerid) { // SendClientMessage(playerid, COLOR_MAGENTA, "You need to be the gang leader to send an invite."); // return 1; // } if(IsPlayerConnected(giveplayerid)) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string),"GANG: Vocк convidou %s.", giveplayer); SendClientMessage(playerid, COLOR_GREEN, string); format(string, sizeof(string),"GANG: Vocк recebeu um convite %s para se juntar a gang '%s' (id: %d)", sendername, gangNames[playerGang[playerid]],playerGang[playerid]); SendClientMessage(giveplayerid, COLOR_GREEN, string); gangInvite[giveplayerid] = playerGang[playerid]; } else { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Esse player nгo existe!"); } } else if(gangcmd==4) { PlayerLeaveGang(playerid); } else if(gangcmd==5) { giveplayerid = strval(tmp); if(playerGang[playerid] == 0) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Vocк nгo estб em uma gang!"); return 1; } if(playerGang[giveplayerid] != playerGang[playerid]) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Este player nгo estб em sua gang!"); return 1; } if(IsPlayerConnected(giveplayerid)) { gangnum = playerGang[playerid]; if(gangMembers[gangnum][0] == playerid) { PlayerLeaveGang(giveplayerid); } else { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Vocк nгo й o Lider da gang, entгo nгo pode kickar membros de sua gang!"); return 1; } for(new j = 0; j < gangInfo[gangnum][1]; j++) { format(string, sizeof(string),"GANG: %s foi kickado da gang.", PlayerName(giveplayerid)); SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string); } format(string, sizeof(string),"GANG: Vocк foi kickado da gang:'%s' (id: %d)", gangNames[gangnum], gangnum); SendClientMessage(giveplayerid, COLOR_ORANGE, string); } else { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Esse player nгo existe!"); } return 1; } return 1; } if(strcmp(cmd, "/ganginfo", true) == 0) { new tmp[256]; new gangnum; new strlider[256]; tmp = strtok(cmdtext, idx); if(!strlen(tmp) && playerGang[playerid]==0) { SendClientMessage(playerid, COLOR_YELLOW, "USE: /ganginfo [gangid]"); return 1; } else if(!strlen(tmp)) { gangnum = playerGang[playerid]; } else { gangnum = strval(tmp); } if(gangInfo[gangnum][0]==0) { SendClientMessage(playerid, COLOR_MAGENTA, "GANG: Essa gangue nгo existe"); return 1; } format(string, sizeof(string),"GANG: '%s' Membros da gang (id: %d)", gangNames[gangnum], gangnum); SendClientMessage(playerid, COLOR_GREEN, string); for(new i = 0; i < gangInfo[gangnum][1]; i++) { if(i == 0) { strlider = "Lider: "; } else { strlider = ""; } GetPlayerName(gangMembers[gangnum][i], giveplayer, sizeof(giveplayer)); format(string, sizeof(string),"GANG: %s%s (%d)", strlider, giveplayer, gangMembers[gangnum][i]); SendClientMessage(playerid, COLOR_YELLOW, string); } return 1; } if(strcmp(cmd, "/gangs", true) == 0) { new x; SendClientMessage(playerid, COLOR_GREEN, "GANGS CRIADAS"); for(new i=0; i < MAX_GANGS; i++) { if(gangInfo[i][0]==1) { format(string, sizeof(string), "%s%s(%d) - %d Membros", string,gangNames[i],i,gangInfo[i][1]); x++; if(x > 2) { SendClientMessage(playerid, COLOR_YELLOW, string); x = 0; format(string, sizeof(string), ""); } else { format(string, sizeof(string), "%s, ", string); } } } if(x <= 2 && x > 0) { string[strlen(string)-2] = '.'; SendClientMessage(playerid, COLOR_YELLOW, string); } return 1; } return SendClientMessage(playerid,COLOR_RED,"Comando Inexistente!"); }