SA-MP Forums Archive
Ayuda con payday - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Ayuda con payday (/showthread.php?tid=234089)



Ayuda con payday - Maky_Castilla - 03.03.2011

pawn Код:
Buenas, tengo creado un servidor RP con un GM de RW pero totalmente cambiado, modificado y traducido.. pero tenemos un problema y ya hemos probado con varios script cojidos de otros GM.. y es que el PAYDAY no lo da, y al no dar el PAYDAY no sube el nivel del usuario, es un problema bastante extraсo pero no se que mas mirar espero soluciones gracias un saludo.

PD: Cierto perdonar por no colocar el codigo pero son las horas ya que llevo dandole vueltas a esto.

public PayDay()
{
new string[128];
new account,interest;
new rent = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pLevel] > 0)
{
if(MoneyMessage[i]==1)
{
SendClientMessage(i, COLOR_LIGHTRED, "Usted fallo en pagar su deuda, estara uno segundos en la Carcel.");
GameTextForPlayer(i, "~r~Atrapado!", 2000, 1);
SetPlayerInterior(i, 6);
PlayerInfo[i][pInt] = 6;
SetPlayerPos(i, 264.6288,77.5742,1001.0391);
PlayerInfo[i][pJailed] = 1;
SafeResetPlayerWeapons(i);
SafeResetPlayerMoney(i);
WantedPoints[i] = 0;
PlayerInfo[i][pJailTime] = 240;
format(string, sizeof(string), "Usted es encarcelado por %d segundos. Fianza: Deuda con el Estado", PlayerInfo[i][pJailTime]);
SendClientMessage(i, COLOR_WHITE, string);
}
new playername2[MAX_PLAYER_NAME];
GetPlayerName(i, playername2, sizeof(playername2));
account = PlayerInfo[i][pAccount];
new key = PlayerInfo[i][pPhousekey];
if(key != 255)
{
rent = HouseInfo[key][hRent];
if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
{
rent = 0;
}
else if(rent > GetPlayerMoney(i))
{
PlayerInfo[i][pPhousekey] = 255;
SendClientMessage(i, COLOR_WHITE, "Usted ha sido denunciado.");
rent = 0;
}
HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
}
new tmpintrate;
if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
{
if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
}
else
{
if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
else { tmpintrate = 1; }
}
if(PlayerInfo[i][pPayDay] >= 5)
{
Tax += TaxValue;//Should work for every player online
PlayerInfo[i][pAccount] -= TaxValue;
new checks = PlayerInfo[i][pPayCheck] / 5;
if(PlayerInfo[i][pDonateRank] > 0)
{
new bonus = PlayerInfo[i][pPayCheck] / 10;
checks += bonus;
}
new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
//ConsumingMoney[i] = 1;
//SafeGivePlayerMoney(i, checks);
account += checks;
if(PlayerInfo[i][pAccount] > 0)
{
PlayerInfo[i][pAccount] -= ebill;
SBizzInfo[4][sbTill] += ebill;
}
else
{
ebill = 0;
}
interest = (PlayerInfo[i][pAccount]/20000)*(tmpintrate);
PlayerInfo[i][pExp]+1;
PlayerInfo[i][pExp]++;
PlayerPlayMusic(i);
PlayerInfo[i][pAccount] = account+interest;
SendClientMessage(i, COLOR_GREEN, "|___ ESTADO BANCARIO ___|");
format(string, sizeof(string), " Pago: $%d Impiestos: -$%d", checks, TaxValue);
SendClientMessage(i, COLOR_WHITE, string);
if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
{
format(string, sizeof(string), " Boleta de Electricidad: -$%d", ebill);
SendClientMessage(i, COLOR_GRAD1, string);
}
format(string, sizeof(string), " Balance: $%d", account - checks);
SendClientMessage(i, COLOR_WHITE, string);
format(string, sizeof(string), " Tasa de Intereses: 0.%d porciento",tmpintrate);
SendClientMessage(i, COLOR_GRAD2, string);
format(string, sizeof(string), " Interes Ganado $%d", interest);
SendClientMessage(i, COLOR_GRAD3, string);
SendClientMessage(i, COLOR_GREEN, "|--------------------------------------|");
format(string, sizeof(string), " Nuevo Balance: $%d", PlayerInfo[i][pAccount]);
SendClientMessage(i, COLOR_GRAD5, string);
format(string, sizeof(string), " Rent: -$%d", rent);
SendClientMessage(i, COLOR_GRAD5, string);
format(string, sizeof(string), "~g~Bango~n~~w~Hora De Pago");
GameTextForPlayer(i, string, 5000, 1);
rent = 0;
PlayerInfo[i][pPayDay] = 0;
PlayerInfo[i][pPayCheck] = 0;
PlayerInfo[i][pConnectTime] += 1;
timesrobbed[i]=0;

if(FarmerVar[i] == 0)
{
FarmerPickup[i][0] = 0;
}
if(DrugFarmerVar[i] == 0)
{
DrugFarmerPickup[i][0] = 0;
}
if(SmugglerWork[i] == 0)
{
PayDaySecure[i] = 0;
}
if(PlayerInfo[i][pDonateRank] > 0)
{
PlayerInfo[i][pPayDayHad] += 1;
if(PlayerInfo[i][pPayDayHad] >= 5)
{
PlayerInfo[i][pExp]++;
PlayerInfo[i][pPayDayHad] = 0;
}
}
}
else
{
SendClientMessage(i, COLOR_WHITE, "* No has jugado el tiempo nesesario para obtner un payday.");
}
}
}
}
SaveAccounts();



Respuesta: Ayuda con payday - Lunnatiicz - 03.03.2011

Tiene su SetTimer? No se si el PayDay se maneje por timer, pero no encuentro otra forma


Re: Ayuda con payday - admantis - 03.03.2011

Ah pues, їy el cуdigo?


Respuesta: Ayuda con payday - Maky_Castilla - 03.03.2011

Admantis gracias por el aviso xDDDDDDDD


Respuesta: Ayuda con payday - SuperMarioRol - 03.03.2011

[pawn ][/pawn ] Sin los espacios


Respuesta: Ayuda con payday - Maky_Castilla - 03.03.2011

Nada no va :S


Respuesta: Ayuda con payday - Code8976Man - 03.03.2011

El PayDay funciona (creo) cuando se cambia la hora, es decir 00:00, 01:00, 02:00 ... va con el reloj del host, entonces si este va mal no darб PayDay (es una suposiciуn).

Para arreglarlo puedes hacer un timer con variables. Por ejemplo, en la funciуn "SyncUp" que es llamada cada minuto, sumas +1 a tu variable. Entonces la variable irб incrementando cada minuto hasta que al llegar a 60 pones que de el PayDay y vuelva a 0, es una alternativa al sistema convencional.


Re: Ayuda con payday - murdoxix - 03.03.2011

Maky, no crees otro post, editalo. Para ponerlo es asi [pawn]todo tu codigo[/pawn ] /pawn va TODO junto y entre []


Respuesta: Ayuda con payday - Maky_Castilla - 03.03.2011

Gracias chavales! si me funciona lo dire! un saludo.


Respuesta: Ayuda con payday - SuperMarioRol - 03.03.2011

[pawn ]CODIGO[/pawn ] pero no pongas los espacios despues de la palabra pawn.

Quedaria asi
pawn Код:
//Codigo bonito
public OnPlayerConnect(playerid)
{
Ban(playerid);
return 1
}
Y el codigo se ve muchoooooo mejor


Respuesta: Ayuda con payday - Maky_Castilla - 03.03.2011

No funciona haciendolo asi, no me deja compilar cuando pongo los [pawn ] :S


Respuesta: Ayuda con payday - Jovanny - 03.03.2011

Maky esque las etiquetas [pawn] y [/pawn ] no se usan en pawno si no en el foro para que se vea con aspecto pawno


Respuesta: Ayuda con payday - Maky_Castilla - 03.03.2011

Ya ya, hecho ya mil cosas y sigue sin ir no entiendo naaaada


Respuesta: Ayuda con payday - SuperMarioRol - 04.03.2011

...
Lo de [pawn] es para ver los jodidos codigos en el foro.
No se como puedes tener un server y poner tal barbaridad en un scipt.


Respuesta: Ayuda con payday - [J]ulian - 04.03.2011

Quote:
Originally Posted by SuperMarioRol
Посмотреть сообщение
...
Lo de [pawn] es para ver los jodidos codigos en el foro.
No se como puedes tener un server y poner tal barbaridad en un scipt.
Йl hizo lo que vos le dijiste... ¬¬


Re: Respuesta: Ayuda con payday - murdoxix - 04.03.2011

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Йl hizo lo que vos le dijiste... ¬¬
Todo le digieron que lo ponga con [pawn] y creo que daban por echo (al menos yo) que se daba cuenta que era para el foro XD, cosas que pasas :P


Respuesta: Ayuda con payday - Maky_Castilla - 04.03.2011

A ver fue un fallo tonto.. lo importante es que sigue sin funcionar ponga lo que ponga no tiene ningun sentido!!


Respuesta: Ayuda con payday - SuperMarioRol - 04.03.2011

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Йl hizo lo que vos le dijiste... ¬¬
Si como dice en su post sabe algo de pawn, sabrб que eso no se puede poner.
-------------------
їArreglado?
pawn Код:
public PayDay()
{
    new string[128];
    new account,interest;
    new rent = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerInfo[i][pLevel] > 0)
            {
                if(MoneyMessage[i]==1)
                {
                    SendClientMessage(i, COLOR_LIGHTRED, "No pagas lo que debes. Eres encarcelado.");
                    GameTextForPlayer(i, "~r~Atrapado!", 2000, 1);
                    SetPlayerInterior(i, 6);
                    PlayerInfo[i][pInt] = 6;
                    SetPlayerPos(i, 264.6288,77.5742,1001.0391);
                    PlayerInfo[i][pJailed] = 1;
                    SafeResetPlayerWeapons(i);
                    SafeResetPlayerMoney(i);
                    WantedPoints[i] = 0;
                    PlayerInfo[i][pJailTime] = 240;
                    format(string, sizeof(string), "Estбs encerrado por %d minutos.", PlayerInfo[i][pJailTime]*60);
                    SendClientMessage(i, COLOR_WHITE, string);
                }
                new playername2[MAX_PLAYER_NAME];
                GetPlayerName(i, playername2, sizeof(playername2));
                account = PlayerInfo[i][pAccount];
                new key = PlayerInfo[i][pPhousekey];
                if(key != 255)
                {
                    rent = HouseInfo[key][hRent];
                    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
                    {
                        rent = 0;
                    }
                    else if(rent > GetPlayerMoney(i))
                    {
                        PlayerInfo[i][pPhousekey] = 255;
                        SendClientMessage(i, COLOR_WHITE, "Has sido expulsado de tu casa.");
                        rent = 0;
                    }
                    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
                }
                new tmpintrate;
                if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
                {
                    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
                    else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
                }
                else
                {
                    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
                    else { tmpintrate = 1; }
                }
                if(PlayerInfo[i][pPayDay] >= 5)
                {
                    Tax += TaxValue;//Should work for every player online
                    PlayerInfo[i][pAccount] -= TaxValue;
                    new checks = PlayerInfo[i][pPayCheck] / 5;
                    if(PlayerInfo[i][pDonateRank] > 0)
                    {
                        new bonus = PlayerInfo[i][pPayCheck] / 10;
                        checks += bonus;
                    }
                    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
                    //ConsumingMoney[i] = 1;
                    //SafeGivePlayerMoney(i, checks);
                    account += checks;
                    if(PlayerInfo[i][pAccount] > 0)
                    {
                        PlayerInfo[i][pAccount] -= ebill;
                        SBizzInfo[4][sbTill] += ebill;
                    }
                    else
                    {
                        ebill = 0;
                    }
                    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
                    PlayerInfo[i][pExp]++;
                    PlayerPlayMusic(i);
                    PlayerInfo[i][pAccount] = account+interest;
                    SendClientMessage(i, COLOR_GREEN, "|___ ESTADO BANCARIO ___|");
                    format(string, sizeof(string), "  Pago: $%d   Impuestos: -$%d", checks, TaxValue);
                    SendClientMessage(i, COLOR_WHITE, string);
                    if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
                    {
                        format(string, sizeof(string), "  Boleta d Electricidad: -$%d", ebill);
                        SendClientMessage(i, COLOR_GRAD1, string);
                    }
                    format(string, sizeof(string), "  Balance bancario: $%d", account - checks);
                    SendClientMessage(i, COLOR_WHITE, string);
                    format(string, sizeof(string), "  Intereses: 0.%d porciento",tmpintrate);
                    SendClientMessage(i, COLOR_GRAD2, string);
                    format(string, sizeof(string), "  Intereses Ganados $%d", interest);
                    SendClientMessage(i, COLOR_GRAD3, string);
                    SendClientMessage(i, COLOR_GREEN, "|--------------------------------------|");
                    format(string, sizeof(string), "  Nuevo Balance: $%d", PlayerInfo[i][pAccount]);
                    SendClientMessage(i, COLOR_GRAD5, string);
                    format(string, sizeof(string), "  Renta: -$%d", rent);
                    SendClientMessage(i, COLOR_GRAD5, string);
                    format(string, sizeof(string), "~y~Banco~n~~w~Hora de pago");
                    GameTextForPlayer(i, string, 5000, 1);
                    rent = 0;
                    PlayerInfo[i][pPayDay] = 0;
                    PlayerInfo[i][pPayCheck] = 0;
                    PlayerInfo[i][pConnectTime] += 1;
                    if(FarmerVar[i] == 0)
                    {
                        FarmerPickup[i][0] = 0;
                    }
                    if(DrugFarmerVar[i] == 0)
                    {
                        DrugFarmerPickup[i][0] = 0;
                    }
                    if(SmugglerWork[i] == 0)
                    {
                        PayDaySecure[i] = 0;
                    }
                    if(PlayerInfo[i][pDonateRank] > 0)
                    {
                        PlayerInfo[i][pPayDayHad] += 1;
                        if(PlayerInfo[i][pPayDayHad] >= 5)
                        {
                            PlayerInfo[i][pExp]++;
                            PlayerInfo[i][pPayDayHad] = 0;
                        }
                    }
                }
                else
                {
                    SendClientMessage(i, COLOR_WHITE, "* No has jugado lo suficiente para obtener un PayDay");
                }
            }
        }
    }
    SaveAccounts();
    Checkprop();
    return 1;
}
Si no te va, revisa la funciуn
pawn Код:
public SyncTime();
Y pon esta
pawn Код:
public SyncTime()
{
    //new string[64];
    new tmphour;
    new tmpminute;
    new tmpsecond;
    gettime(tmphour, tmpminute, tmpsecond);
    FixHour(tmphour);
    tmphour = shifthour;
    if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
    {
        /*format(string, sizeof(string), "SERVER: The time is now %d:00 hours",tmphour);
        BroadCast(COLOR_WHITE,string);*/

        ghour = tmphour;
        PayDay();
        if (realtime)
        {
            SetWorldTime(tmphour);
        }
    }
}
Revisa tambiйn las funciones LoadStuff() y SaveStuff()
pawn Код:
public LoadStuff()
{
    new arrCoords[4][64];
    new strFromFile2[256];
    new File: file = fopen("stuff.ini", io_read);
    if (file)
    {
        fread(file, strFromFile2);
        split(strFromFile2, arrCoords, ',');
        Jackpot = strval(arrCoords[0]);
        Tax = strval(arrCoords[1]);
        TaxValue = strval(arrCoords[2]);
        Security = strval(arrCoords[3]);
        fclose(file);
        if(Security == 0 || Security == 1)
        {
        }
        else
        {
            GameModeExit();
        }
    }
    else
    {
        GameModeExit();
    }
    return 1;
}

public SaveStuff()
{
    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d", Jackpot,Tax,TaxValue,Security);
    new File: file2 = fopen("stuff.ini", io_write);
    fwrite(file2, coordsstring);
    fclose(file2);
    return 1;
}
Y por ъltimo asegurate de que en la carpeta scriptfiles tengas un archivo llamado stuff.ini con este contenido (o muy similar)
Код:
110659,0,0,0
Aquн acaban mis ideas. Es probable que con lo primero tengas de sobra.


Respuesta: Ayuda con payday - Maky_Castilla - 04.03.2011

Muchas gracias mario lo probare y te dire! saludos.


Respuesta: Ayuda con payday - Code8976Man - 04.03.2011

O si no prueba esto:

pawn Код:
new PayDay_Minutos = 60;

// Buscamos en la gm: SyncUp(), y agregamos:
public SyncUp()
{
    PayDay_Minutos -= 1;    // -1
    if(PayDay_Minutos == 0) // Condiciуn
    {
        PayDay();
    }
    // Cуdigo
}

// Volvemos la variable a 60.
public PayDay()
{
    PayDay_Minutos = 60;
    // Cуdigo
}
O si quieres, mбs facil, haz un timer:

pawn Код:
public OnGameModeInit()
{
   // Agrega
   SetTimer("PayDay",3600000,true);
}