Ayuda con payday
#1

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();
Reply
#2

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

Ah pues, їy el cуdigo?
Reply
#4

Admantis gracias por el aviso xDDDDDDDD
Reply
#5

[pawn ][/pawn ] Sin los espacios
Reply
#6

Nada no va :S
Reply
#7

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.
Reply
#8

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

Gracias chavales! si me funciona lo dire! un saludo.
Reply
#10

[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
Reply
#11

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

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

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

...
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.
Reply
#15

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... ¬¬
Reply
#16

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
Reply
#17

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

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.
Reply
#19

Muchas gracias mario lo probare y te dire! saludos.
Reply
#20

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);
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)