[Ajuda] Sistema de empresa, um bug
#1

Bom, eu sou meio novato nessa parte, e queria que alguem pudesse me ajudar, eu jб postei me outro tуpoico a um tempгo atras e ninguem ajudou, agora eu mesmo lidei arrumei umas coisas mais nгo consigo deixar do jeito que eu quero sempre buga alguem poderia me ajudar? olha,

- Olha aqui o sistema, mais oque eu queria й que pegasse mercadoria em Bayside e viesse atй a e empresa de depois de 10 ou 12 horas ela saisse algum lucro, olha como estб:


pawn Код:
if(strcmp(cmd,"/trabalho", true) == 0) {
    new preco;
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)){
        SendClientMessage(playerid, Vermelho,"/trabalho [id]");
        return 1;
    }
    preco = strval(tmp);
    if(IsPlayerConnected(preco)){
        new pname[MAX_PLAYER_NAME];
        GetPlayerName(playerid, pname, sizeof(pname));
        for(new c = 0; c < MAX_PROPS; c++)
        {

            format(string, sizeof(string),"/Props/prop%d.ini", c);
            if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string,"PosX"), dini_Float(string,"PosY"), dini_Float(string,"PosZ"))){
                if(dini_Exists(string)){
                    if(PropTEmp(c) == 1){
                        return 1;
                    }
                    if(playerid == 1)
                    {

                        SendClientMessage(playerid,COLOR_GREY," Vocк precisa esperar 10 horas para pegar a carga novamente!");
                        return true;
                    }
                    if(PropDono(playerid, c) == 1){
                        if(GetProps(preco) > 0){
                            SendClientMessage(playerid, Vermelho,"| ERRO | Este player й dono de uma Empresa!");
                            return 1;
                        }
                        format(STRX, sizeof(STRX),"| INFO | %s (ID: %d) estб convidando vocк pra trabalhar na Empresa dele.", pname, playerid);
                        SendClientMessage(preco, Amarelo, STRX);
                        SendClientMessage(preco, Amarelo,"* Para aceitar o convite, use: /aceitartrabalho   ||   Para recusar, use: /recusartrabalho");
                        SendClientMessage(playerid, Vermelho,"* Convite enviado.");
                        trabalho[preco] = 1;
                        trabalhoid[preco] = c;
                        convitede[preco] = playerid;
                        playerid = SetTimerEx("PlayerTrabalhar", 36000000, 0, "i", playerid);
                        playerid = 1;
                        SetTimerEx("Moradia", 30000, false,"d",preco);
                    } else {
                        SendClientMessage(playerid, Vermelho,"** Vocк nгo tem permissгo.");
                    }
                } else {
                    //SendClientMessage(playerid, Vermelho,"Vocк nгo estб em uma propriedade.");
                }
            }
        }
    } else {
        SendClientMessage(playerid, Vermelho,"** ID Invбlido.");
    }
    return 1;
    }

if(strcmp(cmd, "/sedemitir", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
new string2[256];
for(new c = 0; c < MAX_CASAS; c++)
{
format(string, sizeof(string), "/Props/prop%d.ini", c);
if(dini_Exists(string)){
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"))){
if(strcmp(dini_Get(string, "Morador"), pname, true) == 0 && dini_Int(string, "TMorador") == 1){
SendClientMessage(playerid, Verde, "Vocк agora nгo trabalha mais aqui !");
format(string2, sizeof(string2),"| EMPRESA | O Jogador(a) %s, se demitiu da empresa que trabalhava '%s' ID:%d.",pname);
SendClientMessageToAll(0xFFFFFFAA,string2);
dini_IntSet(string, "TEmp", 0);
dini_Set(string, "Emp", "Ninguem");
return 1;
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Vocк nгo trabalha aqui!");
return 1;
}
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Vocк nгo estб em uma propriedade.");
return 1;
}
}
}

return 1;
}

if(strcmp(cmdtext,"/demitirempregado", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
for(new p = 0; p < MAX_CASAS; p++)
{
format(string, sizeof(string),"/Props/prop%d.ini", p);
if(dini_Exists(string)){
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string,"PosX"), dini_Float(string,"PosY"), dini_Float(string,"PosZ"))){
if(dini_Int(string,"TEmp") == 1){
if(strcmp(dini_Get(string,"Dono"), pname, false) == 0 || pAdmin[playerid] >= 5){
new string2[256];
format(string2, sizeof(string2),"| EMPRESA | O jogador %s, demitiu seu empregado '%s'.",pname,dini_Get(string,"Emp"));
SendClientMessageToAll(0xFFFFFFAA,string2);
dini_IntSet(string,"TEmp", 0);
dini_Set(string,"Emp","Ninguem");
} else {
SendClientMessage(playerid, Vermelho,"Esta propriedade nгo й sua");
}
} else {
SendClientMessage(playerid, Vermelho,"Esta propriedade nгo tem empregado !");
}
}
}
}
return 1;
}

if(strcmp(cmdtext,"/aceitartrabalho", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
for(new c = 0; c < MAX_CASAS; c++)
{
format(string, sizeof(string),"/Props/prop%d.ini", c);
if(dini_Int(string,"TEmp") == 1){
if(strcmp(dini_Get(string,"Emp"), pname, true) == 0){
dini_IntSet(string,"Emp", 0);
dini_Set(string,"Emp","Ninguem");
}
}
}
format(string, sizeof(string),"/Props/prop%d.ini", trabalhoid[playerid]);
if(dini_Exists(string)){
if(trabalho[playerid] == 1){
dini_IntSet(string,"TEmp", 1);
dini_Set(string,"Emp", pname);
SendClientMessage(playerid, Amarelo,"* Agora vocк trabalha em uma propriedade!");
SendClientMessage(convitede[playerid], Amarelo,"* O jogador aceitou!");
trabalho[playerid] = 0;
trabalhoid[playerid] = 0;
convitede[playerid] = 0;
} else {
SendClientMessage(playerid, Vermelho,"** Vocк nгo foi convidado!");
}
}
return 1;
}

if(strcmp(cmdtext,"/recusartrabalho", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
if(trabalho[playerid] == 1){
SendClientMessage(playerid, Amarelo,"* Vocк recusou.");
SendClientMessage(convitede[playerid], Amarelo,"[ERRO] O Jogador(a) recusou.");
trabalho[playerid] = 0;
trabalhoid[playerid] = 0;
convitede[playerid] = 0;
} else {
SendClientMessage(playerid, Vermelho,"[ERRO] Vocк nгo foi convidado!");
}
return 1;
}
if(strcmp(cmdtext,"/pmercadoria", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
for(new p = 0; p < MAX_CASAS; p++)
{
format(string, sizeof(string),"/Props/prop%d.ini", p);
if(dini_Exists(string)){
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string,"PosX"), dini_Float(string,"PosY"), dini_Float(string,"PosZ"))){
if(PropEmp(playerid, p) == 1){
playerid = 1;
pentrega[playerid] = p;
new string2[256];
format(string2, sizeof(string2),"(PROP) Leve a entrega atй a бrea de descarga!",pname,p);
SendClientMessage(playerid, 0xFFFFFFAA,string2);
SendClientMessage(playerid, 0xFFFFFFAA,"| EMPRESA | Use /mentrega");
} else {
SendClientMessage(playerid, Vermelho,"Vocк nгo й empregado daqui");
}
} else {
SendClientMessage(playerid, Vermelho,"Vocк nгo estб em uma propriedade");
}
}
}
return 1;
}

if(strcmp(cmdtext,"/mentrega", true) == 0) {
new prc;
new valor;
//new Randum;;
new string2[256];
if(PlayerToPoint(20.0, playerid, -2185.8044,2416.1069,5.1752)){
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
if (playerid == 1){
if(dini_Int(file, "Vip") > 0){
format(string, sizeof(string),"/Props/prop%d.ini", pentrega[playerid]);
valor = (dini_Int(string, "Preco")/100)*2;
//Randum = random(valor);
//valor2 = valor+Randum;
prc = valor/100*dini_Int(string, "Renda");
format(string2, sizeof(string2),"[VCBVip]Vendido ! R$%d([%d%%] da renda da propriedade й sua)", prc*2, dini_Int(string, "Renda"));
SendClientMessage(playerid, Azul, string2);
format(string2, sizeof(string2),"[VCBVip]A empresa rendeu R$%d", (valor-prc)*2);
SendClientMessage(playerid, Azul, string2);
//SendClientMessage(playerid, Azul,"[LBVip]A empresa rendeu R$650");
GivePlayerGrana(playerid, prc*2);
if(dini_Exists(string)){
dini_IntSet(string,"Grana",dini_Int(string,"Grana" )+((valor-prc)*2));
}
pentrega[playerid] = 0;
} else {
format(string, sizeof(string),"/Props/prop%d.ini", pentrega[playerid]);
valor = (dini_Int(string, "Preco")/100)*2;
//Randum = random(valor);
//valor2 = valor+Randum;
prc = valor/100*dini_Int(string, "Renda");
format(string2, sizeof(string2),"Vendido ! R$%d([%d%%] da renda da propriedade й sua)", prc, dini_Int(string, "Renda"));
SendClientMessage(playerid, Azul, string2);
format(string2, sizeof(string2),"A empresa rendeu R$%d", valor-prc);
SendClientMessage(playerid, Azul, string2);
GivePlayerGrana(playerid, prc);
if(dini_Exists(string)){
dini_IntSet(string,"Grana",dini_Int(string,"Grana" )+valor-prc);
}
pentrega[playerid] = 0;
}
} else {
SendClientMessage(playerid, Vermelho,"Vocк estб fazendo uma entrega");
}
} else {
SendClientMessage(playerid, Vermelho,"Vocк nгo estб em Byside");
}
return 1;
}

if(strcmp(cmd,"/criarempresa", true) == 0) {
if(pAdmin[playerid] >= 5  || IsPlayerAdmin(playerid)){
new tmp[256];
new msg[256];
new plid;
new preco;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_GREEN,"(ERRO) Use /criarempresa [preзo] [nome]");
return 1;
}
plid = strval(tmp);
msg = strrest(cmdtext, idx);
if(!strlen(msg)){
SendClientMessage(playerid, COLOR_GREEN,"(ERRO) Use /criarempresa [preзo] [nome]");
return 1;
}
preco = plid;
format(string, sizeof(string),"/Props/prop%d.ini", proximaprop);
if(!dini_Exists(string)){
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
dini_Create(string);
dini_FloatSet(string,"PosX", X);
dini_FloatSet(string,"PosY", Y);
dini_FloatSet(string,"PosZ", Z);
dini_IntSet(string,"TInt", 1);
dini_IntSet(string,"Int", 13);
dini_IntSet(string,"TEmp", 0);
dini_IntSet(string, "Renda",15000);//go testar
dini_Set(string,"Emp","Ninguem");
dini_FloatSet(string,"Mundo", proximaprop);
dini_IntSet(string,"TDono", 0);
dini_Set(string,"Dono","Ninguem");
dini_IntSet(string,"Preco", preco);
dini_Set(string,"Nome", msg);
new pickupid;// vamo tirar
pickupid = CreatePickup(1578, 1, dini_Float(string,"PosX"), dini_Float(string,"PosY"), dini_Float(string,"PosZ"), -1);
dini_IntSet(string,"Id", pickupid);
new string2[222];
format(string2, sizeof(string2),"Empresa ID %d\n/infoempresa", proximaprop);
Create3DTextLabel(string2,0xFFFFFFAA, dini_Float(string,"PosX"), dini_Float(string,"PosY"), dini_Float(string,"PosZ")+0.75,20.0,0,1);
proximaprop++;
return 1;
}
}
}


if(strcmp(cmdtext,"/comprarempresa", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
for(new p = 0; p < MAX_CASAS; p++)
{
format(string, sizeof(string),"/Props/prop%d.ini", p);
if(dini_Exists(string)){
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string,"PosX"), dini_Float(string,"PosY"), dini_Float(string,"PosZ"))){
if(dini_Int(string,"TDono") == 0){
if(GetPlayerGrana(playerid) >= dini_Int(string,"Preco")){
if((GetProps(playerid) < 1 && dini_Int(filena(playerid),"Vip") == 0) || (GetProps(playerid) < 1 && dini_Int(filena(playerid),"Vip") > 0)){
if(EEmp(playerid) == 1){
SendClientMessage(playerid, Vermelho,"Vocк nгo pode comprar uma empresa sendo empregado de outra!");
return 1;
}
dini_IntSet(string,"TDono", 1);
dini_Set(string,"Dono", pname);
GivePlayerGrana(playerid, -dini_Int(string,"Preco"));
new pickupid;
DestroyPickup(dini_Int(string,"Id"));
pickupid = CreatePickup(1580, 1, dini_Float(string,"PosX"), dini_Float(string,"PosY"), dini_Float(string,"PosZ"), -1);
dini_IntSet(string,"Id", pickupid);
new string2[256];
format(string2, sizeof(string2),"| EMPRESA | O Jogador(a) %s, comprou a Empresa nъmero '%d'.", pname,p);
SendClientMessageToAll(0xFFFFFFAA,string2);
} else {
SendClientMessage(playerid, Vermelho,"Vocк atingiu o mбximo de empresas(1 propriedade)");
}
} else {
SendClientMessage(playerid, Vermelho,"Vocк nгo tem dinheiro");
}
} else {
SendClientMessage(playerid, Vermelho,"Esta empresa nгo estб a venda !");
}
} else {
//SendClientMessage(playerid, Vermelho,"Vocк nгo estб em uma propriedade");
}
}
}
return 1;
}


if(strcmp(cmdtext, "/venderempresa", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), PASTA_CONTAS, pname);
for(new p = 0; p < MAX_PROPS; p++)
{
format(string, sizeof(string), "/Props/prop%d.ini", p);
if(dini_Exists(string)){
// new Float:X, Float:Y, Float:Z;
//GetPlayerPos(playerid, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"))){
if(dini_Int(string, "TDono") == 1){
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0 || pAdmin[playerid] == 5 || IsPlayerAdmin(playerid)){
dini_IntSet(string, "TDono", 0);
dini_Set(string, "Dono", "Ninguem");
dini_Set(file, "Tprop", "0");
GivePlayerGrana(playerid, dini_Int(string, "Preco"));
new pickupid;
DestroyPickup(dini_Int(file, "Id"));
pickupid = CreatePickup(1578, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1);//perae
dini_IntSet(string, "Id", pickupid);
new string2[256];
if(pAdmin[playerid] < 5){
format(string2, sizeof(string2), "| EMPRESA | O Jogador(a) %s, vendeu a sua Empresa nъmero '%d'.",pname,p);
SendClientMessageToAll(0xFFFFFFAA,string2);
} else {
format(string, sizeof(string), "* O Administrador(a) %s liberou a Empresa '%d'", pname,p);
SendClientMessageToAll(AdminCor, string);
}
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Esta empresa nгo й sua!");
}
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Esta empresa jб estб a venda!");
}
} else {
// SendClientMessage(playerid, Vermelho, "Vocк nгo estб em uma propriedade.");
}
}
}
return 1;
}

if(strcmp(cmdtext, "/retirarlucro", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
for(new p = 0; p < MAX_PROPS; p++)
{
format(string, sizeof(string), "/Props/prop%d.ini", p);
if(dini_Exists(string)){
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"))){
if(dini_Int(string, "TDono") == 1){
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
GivePlayerGrana(playerid, dini_Int(string, "Grana"));
new strx[256];
format(strx, sizeof(strx), "* Vocк pegou R$%d de sua empresa!", dini_Int(string, "Grana"));
SendClientMessage(playerid, Amarelo, strx);
dini_IntSet(string, "Grana", 0);
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Esta empresa nгo й sua!");
}
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Esta empresa nгo tem dono!");
}
} else {
// SendClientMessage(playerid, Vermelho, "Vocк nгo estб em uma propriedade.");
}
}
}
return 1;
}

if(strcmp(cmd,"/lozin",true)==0){
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
for(new p = 0; p < MAX_PROPS; p++)
{
format(string, sizeof(string), "/Props/prop%d.ini", p);
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"))){
if(dini_Int(string, "TDono") == 1 || pAdmin[playerid] == 5 || IsPlayerAdmin(playerid)){
if(strcmp(dini_Get(string, "Dono"), aname, false) == 0 || pAdmin[playerid] == 5 || IsPlayerAdmin(playerid)){
new tmp[256];
//new msg[256];
strmid(tmp,cmdtext,8,strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid,COLOR_RED,"/propnm [nome]");
return 1;
} else {
dini_Set(string, "Nome", tmp);
format(string, sizeof(string), "* Agora sua propriedade chama-se %s", tmp);
SendClientMessage(playerid, Violeta, string);
return 1;
}
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Esta propriedade nгo й sua!");
return 1;
}
} else {
SendClientMessage(playerid, Vermelho, "[ERRO] Esta propriedade nгo tem dono!");
}
}
}
}

Por favor alguem me ajuda eu teintei de tudo mais nгo consigo, eu vou em Bayside e digito /MEntrega e parace vc recebeu 0 eu digito varias vezes e sempre aparece isso alguem poderia me ajudar por favor
Reply
#2

Ae colega sei que jб tem muito tempo esse tуpico, porйm eu tenho um problema parecido com o seu.Primeiro pelo que sei sobre esse sistema de empresa voce vai em bayside e digita /pmercadoria e quando entrega na empresa digita /mentrega
O bug aqui ocorre no /retirarlucro que quando й feito pela primeira vez faz a info da empresa cair para 0reais
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)