26.07.2016, 05:43
Quote:
Entiendo.
Lo primero es poner la lнnea del GetPlayerMoney al principio y no al final. En cuanto al SetTimer y al SendClientMessage, debes de tener en cuenta que lo que estas haciendo es comprobar si el jugador ESTБ en ese rango, pero en el ejemplo que has puesto, lo que quieres comprobar es si un jugador NO ESTБ en un rango determinado. Para eso tienes que aсadir un " ! " al if. Eso hace que todo valor que no sea 0 o false se convierte en 1 o true. Ejemplo: if(!IsPlayerInRangeOfPoint(playerid, 7.0, x,x,x,x,)) { SendClientMessage(playerid,0xFFFFFFFF,"No estas en el elevador!"); return 1; } No te tienes que olvidar de aсadir el return para evitar que el resto del script se siga ejecutando. En cualquier caso, el cуdigo deberнa de quedar asн: Код:
CMD:up(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 7.0, x.x, x.x, x.x)) return SendClientMessage(playerid, 0xFFFFFFFF, "No estas en el elevador!"); if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero."); MoveObject(elevador2, x.x, x, x.x, 0.6); MoveObject(elevador, x.x, x, x.x, 0.6); SendClientMessage(playerid, COLOR_GREEN, "UP=subes"); GivePlayerMoney(playerid, -1000); return 1; } CMD:down(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 7.0, x.x, x.x, x.x)) return SendClientMessage(playerid, 0xFFFFFFFF, "No estas en el elevador!"); if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero."); MoveObject(elevador2, x.x, x, x.x, 0.6); MoveObject(elevador, x.x, x, x.x, 0.6); GivePlayerMoney(playerid, -1000); SendClientMessage(playerid, COLOR_GREEN, "Down=Bajas"); return 1; } Код:
forward elevador(); public elevador() { if(IsObjectMoving(elevador2) || IsObjectMoving(elevador)) return 0; for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { if(IsPlayerConnected(playerid)) { if(IsPlayerInRangeOfPoint(playerid, 7.0, x.x, x.x, x.x)) { if(GetPlayerMoney(playerid) < 1000) { SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero."); continue; } MoveObject(elevador2, x.x, x, x.x, 0.6); MoveObject(elevador, x.x, x, x.x, 0.6); SendClientMessage(playerid, COLOR_GREEN, "UP=subes"); GivePlayerMoney(playerid, -1000); break; } else if(IsPlayerInRangeOfPoint(playerid, 7.0, x.x, x.x, x.x)) { if(GetPlayerMoney(playerid) < 1000) { SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero."); continue; } MoveObject(elevador2, x.x, x, x.x, 0.6); MoveObject(elevador, x.x, x, x.x, 0.6); GivePlayerMoney(playerid, -1000); SendClientMessage(playerid, COLOR_GREEN, "Down=Bajas"); break; } } } return 1; } |
Gracias el primero si me sirvio el timer no supe donde ponerlo me daba muchos errores luego veo,una pregunta le puedo poner un timer de 3 minutos a los comandos up y down? para evitar abusos,ya le puse el radio de alcanze de los comandos y funciono todo exelente,gracias
rep+