25.02.2014, 02:49
Bom eu fiz do jeito que estб abaixo, Porйm oque estiver dentro de /* */ ou // vocк retira esses sнmbolos da frente. Й porque eles estгo definidos no seu GM e aonde eu compilei eu nгo iria perder meu tempo arrumando as variбveis.
Bom abaixo estб um cуdigo feito por mim, porйm estou morrendo de sono mais tб ai. testa lб.
Ajudei? + Rep
Bom abaixo estб um cуdigo feito por mim, porйm estou morrendo de sono mais tб ai. testa lб.
Ajudei? + Rep
PHP код:
#include <a_samp>
new
RecebeuCura[MAX_PLAYERS] = 0,
TimerCurando[MAX_PLAYERS],
PlayerCurando[MAX_PLAYERS] = 0,
QuantasCuras[MAX_PLAYERS] = 0,
PrecoCobrado[MAX_PLAYERS] = 0;
enum Cargos{
pSalario
}
new PlayerInfo[MAX_PLAYERS][Cargos];
forward CuringInjuredPlayer(playerid);
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd [ 255 ], idx, tmp[255];
cmd = strtok( cmdtext, idx ) ;
if(strcmp(cmd, "/curar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new giveplayerid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, -1, "ERRO: Digite /curar [id][preзo].");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, -1, "ERRO: Digite /curar [id] [preзo].");
return 1;
}
new preco = strval(tmp);
// Retire o /*
/* if(!IsAAmbu(playerid))
{
SendClientMessage(playerid, -1, "ERRO: Vocк nгo й um mйdico.");
return 1;
}
if(!IsAnAmbulanceCar(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, -1, "ERRO: Vocк nгo estб em uma ambulвncia.");
return 1;
}
if(!IsAnAmbulanceCar(GetPlayerVehicleID(giveplayerid)))
{
SendClientMessage(playerid, -1, "ERRO: Seu cliente nгo estб em uma ambulвncia.");
return 1;
} */ // Retire o */
if(preco < 50 || preco > 150)
return SendClientMessage(playerid, -1, "ERRO: O preзo deve variar entre $ 50 e $ 150.");
if(GetPlayerMoney(giveplayerid) < preco)
{
SendClientMessage(playerid, -1, "ERRO: Seu cliente nгo tem dinheiro o suficiente");
SendClientMessage(giveplayerid, -1, "ERRO: Vocк nгo tem dinheiro o suficiente para cura.");
return 1;
}
else
{
new aname[MAX_PLAYER_NAME], string[255];
GetPlayerName(playerid,aname,sizeof(aname));
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
format(string, sizeof(string), "[MEDICO] o(a) mйdico(a) %s estб querendo te curar por %d real(ais).", aname, preco);
SendClientMessage(giveplayerid, -1, string);
SendClientMessage(giveplayerid, -1, "{00FF7F}[INFO] {FFFFFF}use: {00FF7F}/aceitarcura {FFFFFF}ou {FF0000}/recusarcura");
RecebeuCura[giveplayerid] = 1;
PlayerCurando[giveplayerid] = playerid;
format(string, sizeof(string), "[INFO] Aguarde o(a) player %s aceitar ou recusar a cura...", pname);
SendClientMessage(playerid, -1, string);
PrecoCobrado[giveplayerid] = preco;
return 1;
}
}
return 1;
}
if(strcmp(cmd, "/aceitarcura", true) == 0)
{
new aname[MAX_PLAYER_NAME], string[255];
GetPlayerName(playerid,aname,sizeof(aname));
if(RecebeuCura[playerid] == 1)
{
RecebeuCura[playerid] = 0;
format(string, sizeof(string), "{00FF7F}[INFO] O(A) player %s aceitou a cura, estamos curando ele(a).", aname);
SendClientMessage(PlayerCurando[playerid],-1,string);
TimerCurando [ playerid ] = SetTimerEx( "CuringInjuredPlayer", 1000, true, "i", playerid ) ;
SendClientMessage(playerid, -1, "[x] {00FF7F}Vocк estб sendo curado aguarde...");
SetPlayerHealth(playerid,5);
QuantasCuras[playerid] = 1;
TogglePlayerControllable(playerid,0);
}
else
{
SendClientMessage(playerid, -1, "[x] {FF0000}Vocк nгo recebeu oferta de cura de nenhum player.");
}
return 1;
}
if(strcmp(cmd, "/recusarcura", true) == 0)
{
new aname[MAX_PLAYER_NAME], string[255];
GetPlayerName(playerid,aname,sizeof(aname));
if(RecebeuCura[playerid] == 1)
{
RecebeuCura[playerid] = 0;
format(string, sizeof(string), "{00FF7F}[INFO] O(A) player %s recusou a cura.", aname);
SendClientMessage(PlayerCurando[playerid],-1,string);
SendClientMessage(playerid, -1, "[x] {FF0000}Vocк recusou a cura.");
PlayerCurando[playerid] = 0;
}
else
{
SendClientMessage(playerid, -1, "[x] {FF0000}Vocк nгo recebeu oferta de cura de nenhum player.");
}
return 1;
}
return 0;
}
public CuringInjuredPlayer(playerid)
{
new Float:health;
GetPlayerHealth(playerid,health);
if(health < 100.0)
{
if(QuantasCuras[playerid] < 19)
{
SetPlayerHealth(playerid, health+5);
QuantasCuras[playerid]++;
}
else
{
KillTimer( TimerCurando [ playerid ] );
SendClientMessage(playerid,-1,"{00FF7F}[INFO] Vocк foi curado com sucesso!");
//Retire os // abaixo
//PlayerInfo[playerid][pDoenca] = 0;
//GivePlayerMoneyEx(playerid,-PrecoCobrado[playerid]);
PlayerInfo[PlayerCurando[playerid]][pSalario] += PrecoCobrado[playerid];
QuantasCuras[playerid] = 0;
RecebeuCura[playerid] = 0;
PlayerCurando[playerid] = 0;
TogglePlayerControllable(playerid,1);
}
}
return 1;
}
strtok( const string [ ], &index )
{
new length = strlen( string ) ;
while ( ( index < length ) && ( string [ index ] <= ' ' ) )
{
index++;
}
new offset = index;
new result [ 20 ];
while ( ( index < length ) && ( string [ index ] > ' ' ) && ( ( index - offset ) < ( sizeof( result ) - 1 ) ) )
{
result [ index - offset ] = string [ index ];
index++;
}
result [ index - offset ] = EOS;
return result;
}
ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
new pos = 0;
while (text[pos] < 0x21)
{
if (text[pos] == 0) return INVALID_PLAYER_ID;
pos++;
}
new userid = INVALID_PLAYER_ID;
if (IsNumeric(text[pos])
{
userid = strval(text[pos]);
if (userid >=0 && userid < MAX_PLAYERS)
{
if(!IsPlayerConnected(userid))
{
if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "User not connected");
}
userid = INVALID_PLAYER_ID;
}
else
{
return userid;
}
}
else
{
if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
}
userid = INVALID_PLAYER_ID;
}
return userid;
}
new len = strlen(text[pos]);
new count = 0;
new name[MAX_PLAYER_NAME];
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerName(i, name, sizeof (name));
if (strcmp(name, text[pos], true, len) == 0)
{
if (len == strlen(name))
{
return i;
}
else
{
count++;
userid = i;
}
}
}
}
if (count != 1)
{
if (playerid != INVALID_PLAYER_ID)
{
if (count)
{
SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
}
}
userid = INVALID_PLAYER_ID;
}
return userid;
}
IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}