weiß einer wie ich es mache das man z.b. /explosion id macht und der spieler dann explodiert?
explosion
- Reno
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
CreateExplosion...Im Command siehst so aus:
if(strcmp(cmd, "/nuke", true) == 0) // Nuke a player (explode)
{
if (AccountInfo[playerid][AdminLevel] >= 3)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, ORANGE, "USAGE: /nuke [playerid]");
SendClientMessage(playerid, ORANGE, "FUNCTION: Player will explode.");
return 1;
}
new Float:X,Float:Y,Float:Z;
new giveplayerid = ReturnUser(tmp, playerid);
if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerPos(giveplayerid, X,Y,Z);
CreateExplosion(X,Y,Z,2,3.0);
SetPlayerHealth(giveplayerid, 0.0);
format(string, sizeof(string), "-| Administrator %s nuked %s |-",sendername,giveplayername);
SendClientMessageToAdmins(ADMIN_RED, string,1);
}
else if (!IsPlayerConnected(giveplayerid))
{
format(string, sizeof(string), "%d is not an active player.", giveplayerid);
SendClientMessage(playerid, RED, string);
}
}
else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
return 1;
}
Quelle: http://forum.sa-mp.com/index.php?topic=40940.0 -
gehts auch ganz ohne admin lvl und so?
einfach player A schreibt z.b. /boom [ID] und player b explodiert?
-
Geht natürlich auch...Habs hochgeladen, weil sonst die ganze Indention am Arsch is
-
error 017: undefined symbol "tmp"
error 017: undefined symbol "tmp"
error 017: undefined symbol "ORANGE"
error 017: undefined symbol "ReturnUser"
error 017: undefined symbol "giveplayername"
error 017: undefined symbol "giveplayername"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line -
Versuchs mal so!
//public OnPlayerCommandTextnew index, cmd[128];
cmd = strtok(cmdtext, index);
if (!strcmp("/explode",cmd,true,8))
{
new tmp[128];
tmp = strtok(cmdtext, index);
if (IsPlayerAdmin(playerid))
{
new id=strval(tmp);
if(!IsPlayerConnected(id))
{
return SendClientMessage(playerid,COLOR_RED,"Diesen Spieler gibt es nicht!"); }
else
{
SendClientMessage(id,COLOR_RED,"Admin exploded you!");
new Float:x,Float:y,Float:z;
GetPlayerPos(id,Float:x,Float:y,Float:z);
CreateExplosion(Float:x,Float:y,Float:z,0,10);
printf("id is %d",id);
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"You aren't admin");
}
return 1;
}//Ganz unten
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;
} -
error 021: symbol already defined: "cmd"
warning 204: symbol is assigned a value that is never used: "cmd"
error 021: symbol already defined: "strtok" -
Hi
Mach ma nur das:
if (!strcmp("/explode",cmd,true,8))
{
new tmp[128];
tmp = strtok(cmdtext, index);
if (IsPlayerAdmin(playerid))
{
new id=strval(tmp);
if(!IsPlayerConnected(id))
{
return SendClientMessage(playerid,COLOR_RED,"Diesen Spieler gibt es nicht!"); }
else
{
SendClientMessage(id,COLOR_RED,"Admin exploded you!");
new Float:x,Float:y,Float:z;
GetPlayerPos(id,Float:x,Float:y,Float:z);
CreateExplosion(Float:x,Float:y,Float:z,0,10);
printf("id is %d",id);
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"You aren't admin");
}
return 1;
}unter OnPlayerCommandText
-
error 021: symbol already defined: "cmd"
warning 204: symbol is assigned a value that is never used: "cmd" -
Also ich könnt dir was zum /explode geben aber hab da drinne das es für admins is.. kannste ja evtl. abändern..
if(strcmp(cmd, "/explode", true) == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
tmp = strtok(cmdtext, idx);
if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
{
SendClientMessage(playerid, COLOR_GREY, "/explode [ID]");
return 1;
}
giveplayerid = strval(tmp);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(IsPlayerConnected(giveplayerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
format(string, sizeof(string), "AdmCmd: %s ist durch %s explodiert",giveplayer, sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
//SendClientMessageToAll(COLOR_DBLUE, string);
SetPlayerHealth(giveplayerid, 10);
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(giveplayerid,boomx, boomy, boomz);
CreateExplosion(boomx, boomy , boomz, 7, 10);
new PlayerName[30];
GetPlayerName(playerid, PlayerName, 30);
printf("[Command] %s hat /explode verwendet um %s explodieren zu lassen", PlayerName, giveplayer);
}
else
{
format(string, sizeof(string), "%d ist kein aktiver Spieler.", giveplayerid);
SendClientMessage(playerid, COLOR_RED, string);
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Sie sind nicht befugt, dieses Kommando zu verwenden!");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Sie müssen sich einloggen um dieses Kommando zu verwenden!");
}
return 1; } -
-
Er bekommt doch nur Errors und will die weg haben
Warum dann immer neue Code Teile ? ? Oo
-------------------------------------------------------
Du hast cmd 2x definiert.
Lösch eins davon.MfG
Ed_Hardy -
Vileicht hast du cmd irgendwo doppelt?
-
breadfish.de
Hat das Thema geschlossen.