Skripta koju koristim: Nebitno jer je ovo FS
Detaljan opis problema: Ja sam u FS Spec ubacio jos ovog da se vidi kolko hp ima itd al kasd ga specam nista ne pokaze samo ga speca al nepise sa strane hp : armor : speed: itd, i kako da napravim da admin lvl 1 ili veci admin specat?
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
// ADMIN SPECTATE FILTER SCRIPT
// kyeman 2007
//
#pragma tabsize 0
#include <a_samp>
#include <core>
#include <float>
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFFF
//------------------------------------------------------------------------------------------------------
#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
#define ADMIN_SPEC_TYPE_VEHICLE 2
new gSpectateID[MAX_PLAYERS];
new gSpectateType[MAX_PLAYERS];
new Text:InfoTextDraw[MAX_PLAYERS][2], bool:isInfoTDCreated[MAX_PLAYERS], textdrawString[256];
//------------------------------------------------------------------------------------------------------
adminspec_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;
}
//------------------------------------------------------------------------------------------------------
public OnFilterScriptInit()
{
for(new u = 0; u < MAX_PLAYERS; u++)
{
if(IsPlayerConnected(u)) CreatePlayerInfo(u);
}
printf("-> Information textdraw filterscript v1.0 by Emilio \"korisnik uklonjen!\" Lovric is loaded!");
return true;
}
public OnFilterScriptExit()
{
for(new u = 0; u < MAX_PLAYERS; u++)
{
if(IsPlayerConnected(u)) DestroyPlayerInfo(u);
}
printf("-> Information textdraw filterscript v1.0 by Emilio \"korisnik uklonjen!\" Lovric is unloaded!");
return true;
}
public OnPlayerConnect(playerid)
{
CreatePlayerInfo(playerid);
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
DestroyPlayerInfo(playerid);
return true;
}
public OnPlayerUpdate(playerid)
{
format(textdrawString, 256,
"~g~Information:\
~n~~r~Name: ~y~%s\
~n~~r~IP: ~y~%s\
~n~~r~Ping: ~y~%i\
~n~~r~Health: ~y~%i\
~n~~r~Armor: ~y~%i\
~n~~r~State: ~y~%s\
~n~~r~Money: ~y~$%i,00",
PlayerName(playerid),
PlayerIp(playerid),
GetPlayerPing(playerid),
PlayerHealth(playerid),
PlayerArmor(playerid),
PlayerStateName(playerid),
GetPlayerMoney(playerid));
UpdatePlayerInfo(0, playerid, textdrawString);
return true;
}
stock CreatePlayerInfo(playerid)
{
// first text-draw.
InfoTextDraw[playerid][0] = TextDrawCreate(10.000000, 132.000000, "Information textdraw 1");
TextDrawTextSize(InfoTextDraw[playerid][0], 605.000000, 0.000000);
TextDrawAlignment(InfoTextDraw[playerid][0], 0);
TextDrawBackgroundColor(InfoTextDraw[playerid][0], 0x000000ff);
TextDrawFont(InfoTextDraw[playerid][0], 1);
TextDrawLetterSize(InfoTextDraw[playerid][0], 0.299999, 1.000000);
TextDrawColor(InfoTextDraw[playerid][0], 0x00ffffff);
TextDrawSetProportional(InfoTextDraw[playerid][0], 1);
TextDrawSetShadow(InfoTextDraw[playerid][0], 1);
// second text-draw.
InfoTextDraw[playerid][1] = TextDrawCreate(10.000000, 132.000000, "Information textdraw 2");
TextDrawTextSize(InfoTextDraw[playerid][1], 605.000000, 0.000000);
TextDrawAlignment(InfoTextDraw[playerid][1], 0);
TextDrawBackgroundColor(InfoTextDraw[playerid][1], 0x000000ff);
TextDrawFont(InfoTextDraw[playerid][1], 1);
TextDrawLetterSize(InfoTextDraw[playerid][1], 0.299999, 1.000000);
TextDrawColor(InfoTextDraw[playerid][1], 0x00ffffff);
TextDrawSetProportional(InfoTextDraw[playerid][1], 1);
TextDrawSetShadow(InfoTextDraw[playerid][1], 1);
isInfoTDCreated[playerid] = true;
return true;
}
stock DestroyPlayerInfo(playerid)
{
if(isInfoTDCreated[playerid] == true)
{
TextDrawDestroy(InfoTextDraw[playerid][0]);
TextDrawDestroy(InfoTextDraw[playerid][1]);
isInfoTDCreated[playerid] = false;
}
return true;
}
stock ShowPlayerInfo(playerid)
{
TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][0]);
TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][1]);
return true;
}
stock HidePlayerInfo(playerid)
{
TextDrawHideForPlayer(playerid, InfoTextDraw[playerid][0]);
TextDrawHideForPlayer(playerid, InfoTextDraw[playerid][1]);
return true;
}
stock UpdatePlayerInfo(id, playerid, content[])
{
if(isInfoTDCreated[playerid] == true)
{
if(id == 0 || id == 1)
{
TextDrawSetString(InfoTextDraw[playerid][id], content);
TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][id]);
}
return false;
}
return true;
}
/*----------------------------------------------------------------------------*/
stock PlayerName(playerid)
{
new
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock PlayerIp(playerid)
{
new
ip[16];
GetPlayerIp(playerid, ip, sizeof(ip));
return ip;
}
stock PlayerHealth(playerid)
{
new
Float:health;
GetPlayerHealth(playerid, health);
return floatround(health);
}
stock PlayerArmor(playerid)
{
new
Float:armor;
GetPlayerArmour(playerid, armor);
return floatround(armor);
}
stock PlayerStateName(playerid)
{
new
statename[32];
switch(GetPlayerState(playerid))
{
case PLAYER_STATE_NONE: statename = "on foot";
case PLAYER_STATE_ONFOOT: statename = "on foot";
case PLAYER_STATE_DRIVER: statename = "driver in the vehicle";
case PLAYER_STATE_PASSENGER: statename = "passenger in the vehicle";
case PLAYER_STATE_WASTED: statename = "wasted";
case PLAYER_STATE_SPAWNED: statename = "spawned";
case PLAYER_STATE_SPECTATING: statename = "spectating";
default: statename = "unknown state";
}
return statename;
}
//------------------------------------------------------------------------------------------------------
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
// IF ANYONE IS SPECTATING THIS PLAYER, WE'LL ALSO HAVE
// TO CHANGE THEIR INTERIOR ID TO MATCH
new x = 0;
while(x!=MAX_PLAYERS) {
if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
gSpectateID[x] == playerid && gSpectateType[x] == ADMIN_SPEC_TYPE_PLAYER )
{
SetPlayerInterior(x,newinteriorid);
}
x++;
}
}
//------------------------------------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new specplayerid, specvehicleid, idx;
// WE ONLY DEAL WITH COMMANDS FROM ADMINS IN THIS FILTERSCRIPT
if(!IsPlayerAdmin(playerid)) return 0;
cmd = adminspec_strtok(cmdtext, idx);
// SPECTATE A PLAYER
if(strcmp(cmd, "/specplayer", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
return 1;
}
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active.");
return 1;
}
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
return 1;
}
// SPECTATE A VEHICLE
if(strcmp(cmd, "/specvehicle", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specvehicle [vehicleid]");
return 1;
}
specvehicleid = strval(tmp);
if(specvehicleid < MAX_VEHICLES) {
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, specvehicleid);
gSpectateID[playerid] = specvehicleid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
}
return 1;
}
// STOP SPECTATING
if(strcmp(cmd, "/specoff", true) == 0) {
TogglePlayerSpectating(playerid, 0);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
return 1;
}
return 0;
}
//------------------------------------------------------------------------------------------------------
Moderator: dodan prefix iduci put ce tema biti Lockana[ ]
by L84S
Nisi pokazao(ShowPlayerTextDraw) kod komandi + Bolje ti je koristit OnFilterScriptInit umjesto CreatePlayerInfo.. jednostavnije.
Gdje da ubacim to ShowPlayerTextDraw??
Pod komandu omg :D
Ovak ili?
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new specplayerid, specvehicleid, idx;
new (ShowPlayerTextDraw)
// WE ONLY DEAL WITH COMMANDS FROM ADMINS IN THIS FILTERSCRIPT
if(!IsPlayerAdmin(playerid)) return 0;
cmd = adminspec_strtok(cmdtext, idx);
// SPECTATE A PLAYER
if(strcmp(cmd, "/specplayer", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
return 1;
}
// SPECTATE A PLAYER
if(strcmp(cmd, "/specplayer", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
return 1;
}
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active.");
return 1;
}
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
TextDrawShowForPlayer(playerid, IME_TEXTDRAWA);
return 1;
}
izbacuje 1 error i 4 warninga
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(253) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(263) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(271) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(271) : error 017: undefined symbol "IME_TEXTDRAWA"
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(273) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Citat: William Johnson poslato Avgust 30, 2011, 15:22:15 POSLE PODNE
izbacuje 1 error i 4 warninga
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(253) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(263) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(271) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(271) : error 017: undefined symbol "IME_TEXTDRAWA"
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(273) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
definisi taj textdraw i poravnaj te linije i popravit ces warninge
Et probo i opet mi izbaci druge errore sad sam opet sve undo :S
Pa trebao si postati koje ti je errore izbacao.
ma msm nije mi uopce erorre izbacilo neg je crashao compiler :S
EDIT: evo uspjeo sam al opet imaju 4 warninga
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(254) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(264) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(272) : warning 213: tag mismatch
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(274) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
254: tmp = adminspec_strtok(cmdtext, idx);
264: return 1;
272: TextDrawShowForPlayer(playerid, IME_TEXTDRAWA);
274: return 1;
Citat: William Johnson poslato Avgust 30, 2011, 15:51:46 POSLE PODNE
ma msm nije mi uopce erorre izbacilo neg je crashao compiler :S
EDIT: evo uspjeo sam al opet imaju 4 warninga
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(254) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(264) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(272) : warning 213: tag mismatch
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(274) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
254: tmp = adminspec_strtok(cmdtext, idx);
264: return 1;
272: TextDrawShowForPlayer(playerid, IME_TEXTDRAWA);
274: return 1;
Pa poravnaj linije:
tmp = adminspec_strtok(cmdtext, idx);
return 1;
TextDrawShowForPlayer(playerid, IME_TEXTDRAWA);
return 1;
Pa neznam sta tu nevalja o.O
Citat: William Johnson poslato Avgust 30, 2011, 15:59:34 POSLE PODNE
Pa neznam sta tu nevalja o.O
Nisi poravnao, zato ti warninge izbacuje
Pa popravio bi ja da znam kako..! Ocel radit komanda zbog warninga??
Citat: William Johnson poslato Avgust 30, 2011, 15:59:34 POSLE PODNE
Pa neznam sta tu nevalja o.O
Pogledaj post iznad sta ti je napisao.
Radit ce komanda ako nemas errora.
Znaci,dok imas samo warninge ,radice.
Ali ih popravi.
Daj cijelu komandu omg..
Btw. komanda nece radit jer ima return funkciju prije TextDrawShowForPlayer-a, tako da dok dode do njega, samo ce returnat nazad :)
evo vam cjela public onplayercommnad
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new specplayerid, specvehicleid, idx;
new IME_TEXTDRAWA;
// WE ONLY DEAL WITH COMMANDS FROM ADMINS IN THIS FILTERSCRIPT
if(!IsPlayerAdmin(playerid)) return 0;
cmd = adminspec_strtok(cmdtext, idx);
// SPECTATE A PLAYER
if(strcmp(cmd, "/specplayer", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
return 1;
}
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active.");
return 1;
}
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
TextDrawShowForPlayer(playerid, IME_TEXTDRAWA);
return 1;
}
// SPECTATE A VEHICLE
if(strcmp(cmd, "/specvehicle", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specvehicle [vehicleid]");
return 1;
}
specvehicleid = strval(tmp);
if(specvehicleid < MAX_VEHICLES) {
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, specvehicleid);
gSpectateID[playerid] = specvehicleid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
}
return 1;
}
// STOP SPECTATING
if(strcmp(cmd, "/specoff", true) == 0) {
TogglePlayerSpectating(playerid, 0);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
return 1;
}
return 0;
}
//------------------------------------------------------------------------------------------------------
Pa IME_TEXTDRAWA ti mora biti textdraw, tj. onaj textdraw koji si napravio u OnFilterScriptInit ili u tvom slucaju CreatePlayerInfo, znaci da tvoj textdraw koji ce se showat, tj. njegovo ime mora biti: InfoTextDraw[playerid][0] i InfoTextDraw[playerid][1].. Nemozes samo 'new IME_TEXTDRAWA;' :S. Prejednostavno.
Nekuzim :/
ovak ili TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][0], InfoTextDraw[playerid][1]);
Ne, nego 2 puta TextDrawShowForPlayer, prvi puta je 0 nakraju, drugi puta 1 nakraju :D
et uradio :P al opet 3 warninga..
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(254) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(264) : warning 217: loose indentation
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(275) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
254:tmp = adminspec_strtok(cmdtext, idx);
264: return 1;
275: return 1;
moras samo poravnati linije...
postaj cijeli do komande akoo neznas sam poravnat..
evo ..
if(!IsPlayerAdmin(playerid)) return 0;
cmd = adminspec_strtok(cmdtext, idx);
// SPECTATE A PLAYER
if(strcmp(cmd, "/specplayer", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
return 1;
}
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active.");
return 1;
}
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][0]);
TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][1]);
return 1;
}
Evo...
if(!IsPlayerAdmin(playerid)) return 0;
cmd = adminspec_strtok(cmdtext, idx);
// SPECTATE A PLAYER
if(strcmp(cmd, "/specplayer", true) == 0) {
new tmp[256];
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
return 1;
}
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active.");
return 1;
}
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][0]);
TextDrawShowForPlayer(playerid, InfoTextDraw[playerid][1]);
return 1;
}
opet warning na if(!strlen(tmp)) { :S
(256) : warning 217: loose indentation
Probaj sve linije pomaknut u lijevo (do "zida")
probo sam.. izbaci 2 warninga...!
a jbt sad mi izbacuje 3 warninga i po onom tgovom samo jer sam bio uzmako uz zid :S
edit: uspjeo sam napravit opet na 1 warning ...
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(256) : warning 217: loose indentation
if(!strlen(tmp)) { je ta linija
Citat: William Johnson poslato Avgust 30, 2011, 17:20:01 POSLE PODNE
probo sam.. izbaci 2 warninga...!
a jbt sad mi izbacuje 3 warninga i po onom tgovom samo jer sam bio uzmako uz zid :S
edit: uspjeo sam napravit opet na 1 warning ...
C:\Users\Mario Sokic\Desktop\Balkan Omega Mod 2\filterscripts\spec.pwn(256) : warning 217: loose indentation
if(!strlen(tmp)) { je ta linija
kad neznas poravnavat stavi ovo na vrh skripte
#pragma tabsize 0
stavi ispod define-ova ostalih
Imam to vec unutro..!
Rjesio moze lock