As I wrote, changed and still errors.
PHP Code:
public Action:Prethink(client)
{
if(!IsValidClient(client) || IsFakeClient(client) || freeze_time)
return Plugin_Continue;
if(IsPlayerAlive(client))
{
new buttons = GetClientButtons(client);
new ile = poziom_gracza[client]-1 >= 0? doswiadczenie_poziomu[poziom_gracza[client]-1]: 0;
new Float:procent_gracza = 0.0;
procent_gracza = (float(doswiadczenie_gracza[client]-ile)/float(doswiadczenie_poziomu[poziom_gracza[client]]-ile))*100.0;
PrintHintText(client, "<font size='16'><font color='#006699'>[Klasa: <b>%s</b>]</font>\n<font color='#666699'>[Prędkość:</font> <b>%.1f</b>]\n<font color='#666699'>\n[Xp: <b>%0.1f</b>/<b>100.0%%</b><font color='#666699'> | Lv: <b>%i</b>]\n<font color='#666699'>[Item: <b>%s</b> [<b>%i%%</b>]</font>]", nazwy_klas[klasa_gracza[client]],GetPlayerSpeed(client), procent_gracza, poziom_gracza[client], nazwy_itemow[informacje_itemu_gracza[client][0]], moc_itemu[client]);
new String:weapon[32];
GetClientWeapon(client, weapon, sizeof(weapon));
switch(klasa_gracza[client])
{
case Medyk:
{
if(!oldbuttons1[client] && buttons & IN_USE)
{
if(ilosc_apteczek_gracza[client])
{
new Float:fOrigin[3];
new Float:iOrigin[3];
GetClientEyePosition(client, Float:fOrigin);
for(new i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i) || !IsPlayerAlive(i))
continue;
if(GetClientTeam(client) != GetClientTeam(i))
continue;
GetClientEyePosition(i, Float:iOrigin);
if(GetVectorDistance(fOrigin, iOrigin) <= 200.0)
{
new heal = 40+maksymalna_inteligencja_gracza[client];
SetEntData(i, FindDataMapOffs(i, "m_iHealth"), GetClientHealth(i)+heal<maksymalne_zdrowie_gracza[i]? GetClientHealth(i)+heal: maksymalne_zdrowie_gracza[i]);
}
}
TE_SetupBeamRingPoint(fOrigin, 20.0, 200.0, sprite_laser, sprite_halo, 0, 10, 0.6, 6.0, 0.0, {255, 255, 255, 128}, 10, 0);
TE_SendToAll();
ilosc_apteczek_gracza[client]--;
}
else
PrintToChat(client, "[COD:MW] Wykorzystales juz moc swojej klasy w tej rundzie!");
oldbuttons1[client] = 1;
}
else if(oldbuttons1[client] && !(buttons & IN_USE))
oldbuttons1[client] = 0;
}
case Kangur:
{
if(!oldbuttons2[client] && buttons & IN_JUMP)
{
if(GetGameTime() >= czas_skokow_gracza[client]+1.0)
{
new Float:fOrigin[3];
fOrigin[0] = GetEntDataFloat(client, FindSendPropOffs("CBasePlayer","m_vecVelocity[0]"))*0.8/2.0;
fOrigin[1] = GetEntDataFloat(client, FindSendPropOffs("CBasePlayer","m_vecVelocity[1]"))*0.8/2.0;
fOrigin[2] = 0.8*50.0;
SetEntDataVector(client, FindSendPropOffs("CBasePlayer","m_vecBaseVelocity"), fOrigin, true);
oldbuttons2[client] = 1;
czas_skokow_gracza[client] = RoundFloat(GetGameTime());
}
}
else if(oldbuttons2[client] && !(buttons & IN_JUMP))
oldbuttons2[client] = 0;
}
case Szturmen:
{
if(!oldbuttons2[client] && buttons & IN_JUMP)
{
new flags = GetEntityFlags(client);
if(!(flags & FL_ONGROUND) && skoki_gracza[client])
{
new Float:fOrigin[3];
GetEntPropVector(client, Prop_Data, "m_vecVelocity", fOrigin);
fOrigin[2] += 250.0;
TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, fOrigin);
skoki_gracza[client] = 0;
}
else if(flags & FL_ONGROUND)
skoki_gracza[client] = 1;
oldbuttons2[client] = 1;
}
else if(oldbuttons2[client] && !(buttons & IN_JUMP))
oldbuttons2[client] = 0;
}
}
switch(informacje_itemu_gracza[client][0])
{
case 3:
{
if(GetGameTime() >= informacje_itemu_gracza[client][1]+5.0)
{
SetEntData(client, FindDataMapOffs(client, "m_iHealth"), GetClientHealth(client)+10<maksymalne_zdrowie_gracza[client]? GetClientHealth(client)+10: maksymalne_zdrowie_gracza[client]);
informacje_itemu_gracza[client][1] = RoundFloat(GetGameTime());
}
}
case 4:
{
if(!oldbuttons1[client] && buttons & IN_USE)
{
if(informacje_itemu_gracza[client][1])
{
SetEntData(client, FindDataMapOffs(client, "m_iHealth"), maksymalne_zdrowie_gracza[client]);
informacje_itemu_gracza[client][1] --;
}
else
PrintToChat(client, "[COD:MW] Wykorzystales juz moc swojego itemu w tej rundzie!");
oldbuttons1[client] = 1;
}
else if(oldbuttons1[client] && !(buttons & IN_USE))
oldbuttons1[client] = 0;
}
case 13:
{
if(!oldbuttons1[client] && buttons & IN_USE)
{
if(GetEntProp(client, Prop_Send, "m_bNightVisionOn"))
SetEntProp(client, Prop_Send, "m_bNightVisionOn", 0);
else
SetEntProp(client, Prop_Send, "m_bNightVisionOn", 1);
oldbuttons1[client] = 1;
}
else if(oldbuttons1[client] && !(buttons & IN_USE))
oldbuttons1[client] = 0;
}
case 19:
{
if(!oldbuttons2[client] && buttons & IN_JUMP)
{
new flags = GetEntityFlags(client);
if(!(flags & FL_ONGROUND) && informacje_itemu_gracza[client][1])
{
new Float:fOrigin[3];
GetEntPropVector(client, Prop_Data, "m_vecVelocity", fOrigin);
fOrigin[2] += 250.0;
TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, fOrigin);
informacje_itemu_gracza[client][1] --;
}
else if(flags & FL_ONGROUND)
informacje_itemu_gracza[client][1] = 1;
oldbuttons2[client] = 1;
}
else if(oldbuttons2[client] && !(buttons & IN_JUMP))
oldbuttons2[client] = 0;
}
case 22:
{
if(!oldbuttons1[client] && buttons & IN_USE)
{
if(GetGameTime() >= informacje_itemu_gracza[client][1]+4.0)
{
new Float:velocity[3];
new Float:velocity0;
new Float:velocity1;
velocity0 = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[0]");
velocity1 = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[1]");
velocity[0] = (7.0*velocity0)*(1.0/4.1);
velocity[1] = (7.0*velocity1)*(1.0/4.1);
velocity[2] = 0.0;
SetEntPropVector(client, Prop_Send, "m_vecBaseVelocity", velocity);
informacje_itemu_gracza[client][1] = RoundFloat(GetGameTime());
}
oldbuttons1[client] = 1;
}
else if(oldbuttons1[client] && !(buttons & IN_USE))
oldbuttons1[client] = 0;
}
case 25:
{
if(!oldbuttons2[client] && buttons & IN_ATTACK2)
{
if(!StrEqual(weapon, nazwy_broni[25]) && !StrEqual(weapon, nazwy_broni[26]) && !StrEqual(weapon, nazwy_broni[27]) && !StrEqual(weapon, nazwy_broni[28]) && !StrEqual(weapon, nazwy_broni[29]) && !StrEqual(weapon, nazwy_broni[30]) && !StrEqual(weapon, nazwy_broni[33]) && !StrEqual(weapon, nazwy_broni[34]) && !StrEqual(weapon, nazwy_broni[35]) && !StrEqual(weapon, nazwy_broni[36]) && !StrEqual(weapon, nazwy_broni[37]) && !StrEqual(weapon, nazwy_broni[38]) && !StrEqual(weapon, nazwy_broni[40]) && !StrEqual(weapon, nazwy_broni[41]))
{
if(informacje_itemu_gracza[client][1])
{
informacje_itemu_gracza[client][1] --;
SetEntProp(client, Prop_Send, "m_iFOV", 270);
}
else
{
informacje_itemu_gracza[client][1] = 1;
SetEntProp(client, Prop_Send, "m_iFOV", 90);
}
}
oldbuttons2[client] = 1;
}
else if(oldbuttons2[client] && !(buttons & IN_ATTACK2))
oldbuttons2[client] = 0;
}
case 26:
{
if(GetGameTime() >= informacje_itemu_gracza[client][1]+20.0)
{
GivePlayerItem(client, nazwy_broni[34]);
informacje_itemu_gracza[client][1] = RoundFloat(GetGameTime());
}
}
case 31:
{
if(buttons & IN_ATTACK)
SetEntData(GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon"), FindSendPropOffs("CWeaponCSBase", "m_iRecoilIndex"), 0);
}
case 34:
{
if(!StrEqual(weapon, nazwy_broni[33]) && !StrEqual(weapon, nazwy_broni[34]) && !StrEqual(weapon, nazwy_broni[35]) && !StrEqual(weapon, nazwy_broni[36]) && !StrEqual(weapon, nazwy_broni[37]) && !StrEqual(weapon, nazwy_broni[38]) && !StrEqual(weapon, nazwy_broni[39]) && !StrEqual(weapon, nazwy_broni[41]))
{
if(buttons & IN_ATTACK)
SetEntData(GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon"), FindSendPropOffs("CWeaponCSBase", "m_iClip1"), 5);
}
}
case 35:
{
if(!StrEqual(weapon, nazwy_broni[33]) && !StrEqual(weapon, nazwy_broni[34]) && !StrEqual(weapon, nazwy_broni[35]) && !StrEqual(weapon, nazwy_broni[36]) && !StrEqual(weapon, nazwy_broni[37]) && !StrEqual(weapon, nazwy_broni[38]) && !StrEqual(weapon, nazwy_broni[41]))
{
if(buttons & IN_ATTACK)
{
new Float:flNextPrimaryAttack = GetEntDataFloat(GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon"), FindSendPropOffs("CBaseCombatWeapon", "m_flNextPrimaryAttack"))-GetGameTime();
SetEntDataFloat(GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon"), FindSendPropOffs("CBaseCombatWeapon", "m_flNextPrimaryAttack"), (flNextPrimaryAttack/1.4)+GetGameTime());
}
}
}
case 38:
{
if(!oldbuttons1[client] && buttons & IN_USE)
{
if(informacje_itemu_gracza[client][1])
{
new Float:fOrigin[3];
new Float:iOrigin[3];
GetClientEyePosition(client, Float:fOrigin);
for(new i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i) || !IsPlayerAlive(i))
continue;
if(GetClientTeam(client) == GetClientTeam(i))
continue;
if(informacje_itemu_gracza[i][0] == 29)
continue;
GetClientEyePosition(i, Float:iOrigin);
if(GetVectorDistance(fOrigin, iOrigin) <= 200.0)
IgniteEntity(i, 15.0);
}
TE_SetupBeamRingPoint(fOrigin, 20.0, 200.0, sprite_laser, sprite_halo, 0, 10, 0.6, 6.0, 0.0, {255, 255, 255, 128}, 10, 0);
TE_SendToAll();
informacje_itemu_gracza[client][1] --;
}
else
PrintToChat(client, "[COD:MW] Wykorzystales juz moc swojego itemu w tej rundzie!");
oldbuttons1[client] = 1;
}
else if(oldbuttons1[client] && !(buttons & IN_USE))
oldbuttons1[client] = 0;
}
}
}
else
{
new spect = GetEntProp(client, Prop_Send, "m_iObserverMode");
if(spect == 4 || spect == 5)
{
new target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
if(!(target == -1) && IsValidClient(target))
{
new ile = poziom_gracza[target]-1 >= 0? doswiadczenie_poziomu[poziom_gracza[target]-1]: 0;
new Float:procent_gracza = 0.0;
procent_gracza = (float(doswiadczenie_gracza[target]-ile)/float(doswiadczenie_poziomu[poziom_gracza[target]]-ile))*100.0;
PrintHintText(client, "[Klasa: <b>%s</b>]\n[Prędkość: <b>%.1f</b>]\n[Xp: <b>%0.1f</b>/<b>100.0%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[target]],GetPlayerSpeed(target), procent_gracza, poziom_gracza[target], nazwy_itemow[informacje_itemu_gracza[target][0]], moc_itemu[target], GetPlayerSpeed(target));
}
}
}
return Plugin_Continue;
}
stock Float:GetPlayerSpeed(iClient)
{
new Float:faVelocity[3];
GetEntPropVector(iClient, Prop_Data, "m_vecVelocity", faVelocity);
new Float:fSpeed;
fSpeed = SquareRoot(faVelocity[0] * faVelocity[0] + faVelocity[1] * faVelocity[1]);
fSpeed *= GetEntPropFloat(iClient, Prop_Data, "m_flLaggedMovementValue");
return fSpeed;
}