Skripta:Cyber RP(radimo update)
Opis problema: Pravio sam war i sada inace se koristi strcpm , i imamo tri komande sa DCMD i war komande sam ubacio u DCMD radi paramsa, i sad kad kucam komandu pise unknow command kao da nepostoji i dodao sam ono dcmd(war,4,cmdtext)
dio skripte:
komande:
dcmd_war(playerid, params[])
{
if(!WarAdmin(playerid, 2)) return SEM
new id, tim;
if(sscanf(params,"ui",id,tim)) return SendClientMessage(playerid, COLOR_GREY, "*Koristi: /war [id igraca] [tim (0-2)]");
else if(id == INVALID_PLAYER_ID) return ID_INVALID
WarTim[id] = tim;
if(WarTim[id] == 0) { SetPlayerColor(playerid, 0xffffffff); }
else if(WarTim[id] == 1) { SetPlayerColor(playerid, 0xff0000aa); }
else if(WarTim[id] == 2) { SetPlayerColor(playerid, 0x0000ffaa); }
new str[256];
new ime[MAX_PLAYER_NAME]; GetPlayerName(playerid,ime,sizeof(ime));
new igrac[MAX_PLAYER_NAME]; GetPlayerName(id,igrac,sizeof(igrac));
format(str,256," War | Prozvani ste na war od admina %s!", ime);
SendClientMessage(id, COLOR_LB, str);
format(str,256," War | Prozvali ste igraca %s na war!", igrac);
SendClientMessage(playerid, COLOR_LB, str);
return 1;
}
dcmd_warpokreni(playerid, params[])
{
if(!WarAdmin(playerid,2)) return SEM
new mapa, vreme;
if(sscanf(params,"ii",mapa,vreme)) return SendClientMessage(playerid, COLOR_GREY, "*Koristi: /warpokreni [id mape] [vreme (u minutima)]"), SendClientMessage(playerid, COLOR_GREY, "*IDevi mapa: 0) Ime mape");
War1_x = -35.3919; War1_y = 129.8716; War1_z = 3.1172; War1_r = 175.5216;
War2_x = -115.4858; War2_y = -136.0644; War2_z = 3.1172; War2_r = 349.4232;
war = SetTimer("WarTimer", vreme*60000, false);
warbrojanje = SetTimer("WarBrojanje", 3000, true);
foreach(Player,i)
{
if(WarTim[i] > 0)
{
SpawnPlayer(i);
}
}
WarZapocet = 1;
return 1;
}
dcmd_warzaustavi(playerid, params[])
{
if(!WarAdmin(playerid,2)) return SEM
new str[256];
format(str,256," War | War je zavrsen! TIM 1: %d, TIM 2: %d", WarBrojanje1, WarBrojanje2);
SendWarMessage(COLOR_RED, str);
KillTimer(war);
WarTimer();
return 1;
}
onaj dio dcmd(komanda,4,cmdtext)
dcmd(war,4,cmdtext);
dcmd(warpokreni,4,cmdtext);
dcmd(warzaustavi,4,cmdtext);
Eto i neradi :S a ev od ostalih komandi
dcmd(specplayer, 10, cmdtext);
dcmd(specoff, 7, cmdtext);
dcmd(warn,4,cmdtext);
i ev ostale dcmd komande
dcmd_specplayer(playerid, params[])
{
new Giveplayerid, Name[256], String[256], Name2[256];
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][php] >= 1)
{
if (sscanf(params, "d", Giveplayerid)) SendClientMessage(playerid,COLOR_WHITE, "SERVER: /specplayer [Playerid]");
else if (!IsPlayerConnected(Giveplayerid)) SendClientMessage(playerid,COLOR_PURPLE,"Player not connected?");
else
{
if ( Specing[Giveplayerid] == 1 )
{
SendClientMessage(playerid, COLOR_RED, " The person you have tried to spec is spectating someone else.");
}
else
{
GetPlayerName(playerid, Name, 256);
GetPlayerName(Giveplayerid, Name2, 256);
format(String, 256, "[%i] %s is now spectating [%i] %s",playerid, Name,Giveplayerid, Name2);
CallLocalFunction("ircRemoteSay", "iss", 1, "#FSE", String);
Specing[playerid] = 1;
}
if ( !IsPlayerInAnyVehicle(Giveplayerid) )
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, Giveplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(Giveplayerid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Giveplayerid));
return 1;
}
else
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Giveplayerid));
SetPlayerInterior(playerid,GetPlayerInterior(Giveplayerid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Giveplayerid));
return 1;
}
}
}
return 1;
}
dcmd_specoff(playerid, params[])
{
#pragma unused params
TogglePlayerSpectating(playerid, 0);
SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][php] >= 1)
{
if(Specing[playerid] != 0)
{
Specing[playerid] = 0;
GivePlayerMoney(playerid,100)
}
else
{
SendClientMessage(playerid,COLOR_WHITE,"Trenutno nikoga ne specujete");
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}CG:AC |{FFFFFF}Niste ovlasteni da koristite tu komandu !");
}
return 1;
}
//warn cmd
dcmd_warn(playerid,params[]) {
if(PlayerInfo[playerid][pAdmin] >= 1) {
new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /warn [playerid] [reason]");
new warned = strval(tmp), str[128];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
// if(PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
if(IsPlayerConnected(warned) && warned != INVALID_PLAYER_ID) {
if(warned != playerid) {
ABroadCast(warned,"WARN",1);
PlayerInfo[warned][pWarns]++;
if( PlayerInfo[warned][pWarns] == MAX_WARNINGS) {
GetPlayerName(warned, sendername, sizeof(sendername));
format(str, sizeof (str), "*** \"%s\" je banovan zbog opomena \"%s\". (Razlog: %s) (Warn: %d/5)***",sendername, params[1+strlen(tmp)], PlayerInfo[warned][pWarns]);
SendClientMessageToAll(COLOR_RED, str);
BanLog(str);
Ban(warned);
return PlayerInfo[warned][pWarns] = 0;
} else {
GetPlayerName(warned, sendername, sizeof(sendername));
GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
format(str, sizeof (str), "***Admin \"%s\" je dao \"%s\" a warn. (Reason: %s) (Warning: %d/5)***",giveplayer,sendername, params[1+strlen(tmp)], PlayerInfo[warned][pWarns]);
return SendClientMessageToAll(COLOR_YELLOW, str);
}
} else return SendClientMessage(playerid, COLOR_RED, "ERROR: You cannot warn yourself");
} else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected");
} else return SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command");
}
slika//
je l si stavio ovo dcmd(war,4,cmdtext);
dcmd(warpokreni,4,cmdtext);
dcmd(warzaustavi,4,cmdtext);
pod onplayercommandtext ?
da
kazi mi je l si stavio dcmd komande na kraj skripte ? tacnije izvan svakog callbacka
Citat: Blaeks poslato Maj 10, 2013, 13:40:34 POSLE PODNE
kazi mi je l si stavio dcmd komande na kraj skripte ? tacnije izvan svakog callbacka
logicno da jesam :S dali moze biti do streamera i ak nije problem da prebacis ove war komande u strcpm bez sscanfa jer ja nez kako raditi ono bez sscanfa :S
Citat: [Cyber]Master.amx poslato Maj 10, 2013, 13:41:53 POSLE PODNE
Citat: Blaeks poslato Maj 10, 2013, 13:40:34 POSLE PODNE
kazi mi je l si stavio dcmd komande na kraj skripte ? tacnije izvan svakog callbacka
logicno da jesam :S dali moze biti do streamera i ak nije problem da prebacis ove war komande u strcpm bez sscanfa jer ja nez kako raditi ono bez sscanfa :S
pa nebi trebalo, ali ne znam zasto koristis dcmd pored npr malo savremenijih principa kao sto su zcmd ili mozda ycmd ?
Citat: Blaeks poslato Maj 10, 2013, 13:43:35 POSLE PODNE
Citat: [Cyber]Master.amx poslato Maj 10, 2013, 13:41:53 POSLE PODNE
Citat: Blaeks poslato Maj 10, 2013, 13:40:34 POSLE PODNE
kazi mi je l si stavio dcmd komande na kraj skripte ? tacnije izvan svakog callbacka
logicno da jesam :S dali moze biti do streamera i ak nije problem da prebacis ove war komande u strcpm bez sscanfa jer ja nez kako raditi ono bez sscanfa :S
pa nebi trebalo, ali ne znam zasto koristis dcmd pored npr malo savremenijih principa kao sto su zcmd ili mozda ycmd ?
vidi mod je davno editovan pa je na strcpm a ja nebi volio mjesati zcmd i strcpm al sta ti predlazes da stavim zcmd?
i kad stavljam komande zcmda gdje da ih stavljam posto ima i strcpm
stavljas na kraj skripte i uzput napravis onplayercommandperfomed
koje komande da stavljam pod onplayercommandperfomed strcpm ?
ne, tu nista ne stavljas, tu samo returnas
Citat: Blaeks poslato Maj 10, 2013, 13:50:16 POSLE PODNE
ne, tu nista ne stavljas, tu samo returnas
ok i ostalo sve normala zcmd komande na kraj i strcpm pod onplayercommandtext jel tako?
sry na dp imam sad drugi problem sve radi al kad odem /warpokreni ne spawna me na farmu gdje i treba vec tam gdje mi je namjesten spawn tj kuca baza zavisi...
ovo imam pod onplayerspawn
if(WarTim[playerid] == 0) { SetPlayerColor(playerid, 0xffffffff); }
else if(WarTim[playerid] == 1) { SetPlayerColor(playerid, 0xff0000aa); }
else if(WarTim[playerid] == 2) { SetPlayerColor(playerid, 0x0000ffaa); }
if(WarZapocet == 1)
{
if(WarTim[playerid] == 1)
{
SetPlayerVirtualWorld(playerid, War_VW);
SetPlayerPos(playerid, War1_x, War1_y, War1_z);
SetPlayerFacingAngle(playerid, War1_r);
GivePlayerWeapon(playerid, 24, 600);
GivePlayerWeapon(playerid, 31, 800);
SetPlayerHealth(playerid, 100);
SetPlayerVirtualWorld(playerid, 7);
return 1;
}
else if(WarTim[playerid] == 2)
{
SetPlayerVirtualWorld(playerid, War_VW);
SetPlayerPos(playerid, War2_x, War2_y, War2_z);
SetPlayerFacingAngle(playerid, War2_r);
GivePlayerWeapon(playerid, 24, 200);
GivePlayerWeapon(playerid, 31, 500);
SetPlayerHealth(playerid, 100);
SetPlayerVirtualWorld(playerid, 7);
return 1;
}
a ev i war i warpokreni komande
WAR:
CMD:war(playerid,params[])
{
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][php] >= 1)
{
new id, tim;
if(sscanf(params,"ui",id,tim)) return SendClientMessage(playerid, COLOR_GREY, "*Koristi: /war [id igraca] [tim (0-2)]");
else if(id == INVALID_PLAYER_ID) return ID_INVALID
WarTim[id] = tim;
if(WarTim[id] == 0) { SetPlayerColor(playerid, 0xffffffff); }
else if(WarTim[id] == 1) { SetPlayerColor(playerid, 0xff0000aa); }
else if(WarTim[id] == 2) { SetPlayerColor(playerid, 0x0000ffaa); }
new str[256];
new ime[MAX_PLAYER_NAME]; GetPlayerName(playerid,ime,sizeof(ime));
new igrac[MAX_PLAYER_NAME]; GetPlayerName(id,igrac,sizeof(igrac));
format(str,256," War | Prozvani ste na war od admina %s!", ime);
SendClientMessage(id, COLOR_LB, str);
format(str,256," War | Prozvali ste igraca %s na war!", igrac);
SendClientMessage(playerid, COLOR_LB, str);
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}CYBER |{FFFFFF}Niste ovlasteni da koristite tu komandu !");
}
return 1;
}
WARPOKRENI
CMD:warpokreni(playerid,params[])
{
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][php] >= 1)
{
new mapa, vreme;
if(sscanf(params,"ii",mapa,vreme)) return SendClientMessage(playerid, COLOR_GREY, "*Koristi: /warpokreni [id mape] [vreme (u minutima)]"), SendClientMessage(playerid, COLOR_GREY, "*IDevi mapa: 0) Ime mape");
War1_x = -35.3919; War1_y = 129.8716; War1_z = 3.1172; War1_r = 175.5216;
War2_x = -115.4858; War2_y = -136.0644; War2_z = 3.1172; War2_r = 349.4232;
war = SetTimer("WarTimer", vreme*60000, false);
warbrojanje = SetTimer("WarBrojanje", 3000, true);
foreach(Player,i)
{
if(WarTim[i] > 0)
{
SpawnPlayer(i);
}
}
WarZapocet = 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}CYBER|{FFFFFF}Niste ovlasteni da koristite tu komandu !");
}
return 1;
}
zasto jednostavno u komandi za pokretanje wara ne postavis direktnu poziciju igracu ?
Citat: Blaeks poslato Maj 10, 2013, 15:18:07 POSLE PODNE
zasto jednostavno u komandi za pokretanje wara ne postavis direktnu poziciju igracu ?
uradio sam to al ev sad sam skontao kako sam ubacio ZCMD nerade mi strcpm komande :S
je l imas callback onplayercommandperfomed ?
Citat: Blaeks poslato Maj 10, 2013, 15:45:20 POSLE PODNE
je l imas callback onplayercommandperfomed ?
mislis na ovo?
forward OnPlayerCommandPerformed(playerid, cmdtext[], success)
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success)
{
new string[128];
format(string, sizeof(string), "%s ne postoji! Upisite /help za pomoc oko komandi!", cmdtext);
SendClientMessage(playerid, -1, string);
}
return true;
}
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(success) return 1;
else return OnPlayerCommandText(playerid, cmdtext);
}
na mobu sam probacu kada dodjem kuci
to radi neg me zanima sad kako napraviti da direktno spawna igraca na waru pokusavo sam nesto al neradi :S objavio sam komande vvec pa ak nije prob da mi pomognes napraviti
pa stavis setplayerpos i direktne koordinate, usejvovane