also erste ist einfach flasch weil du da eine strign lesen willst aber du willst ja eine zahl haben also
if(strcmp(cmdtext,"/objekte",true) == 0)
{
new str[256], objekte = CountDynamicObjects();
format(str, 256, "{FFFF00}*SERVER: Der Streamer hat zur Zeit %d Objekte geladen.", objekte);
SendClientMessage(playerid,ROT,str);//objekte
return 1;
} und beim 2en genau das selbe
if(!strcmp(cmdtext, "/skin", true, 5)) //skin
{
if(!cmdtext[6])return SendClientMessage(playerid, 0xFF0000FF, "{FFFF00}*SERVER: Benutze: /skin [Id]");
new str[5];
format(str, sizeof(str), "%d", str, cmdtext[6]);
SetPlayerSkin(playerid,str);
return 1;
}
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
-
-
Also das erste funktioniert aber bei dem zweiten bekomme ich folgenden Error:
(2704) : error 035: argument type mismatch (argument 2)
Der Error bezieht sich auf -> SetPlayerSkin(playerid,str);
Edit: Neue Frage hinzugefügt
-
Keine Ahnung ob es auch eine Funktion gibt aber ich hab mal fix ne forschleife geschrieben.
new x;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i)
x++;
}
printf("[%d]Spieler connected",x); -
error 001: expected token: ")", but found "-identifier-"
Das ist die Zeile mit dem x++;
-
Möchtest du bei dem Skin den Skin rausfinden, welchen du gerade an hast, oder möchtest du den Skin changen?
Edit: Spieler:
new x;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
x++;
}
printf("[%d]Spieler connected",x); -
Ich möchte den Skin wechseln ... aber ich glaube das muss ich sowieso anders machen. Sonst könnt man ja auch /skin 1000 machen aber den gibt es ja nicht.
Hast du /jemand vielleicht ein Beispiel wie ich den Skin ändern kann?Tim
-
so vieleicht?
if(strcmp(strget(cmdtext,0),"/setskin",true) == 0)
{
if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)))//fargt ab ob die playerid und skin da ist
{
SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /setskin [spielerid][Skin]");
return 1;
}
if(pDaten[playerid][AdminLevel] >= 3)//abfrage ob der player Admin ist Ans script anpassen
{
new skin = strval(strget(cmdtext,2));
new msg1[200];
new msg2[200];
format(msg1,sizeof(msg1),"* Admin %s hat deinen Skin auf die ID %d gesetzt.",spieler,skin);
format(msg2,sizeof(msg2),"* Du hast den Skin von %s auf die ID %d gesetzt.",opfer,skin);
SendClientMessage(playerid,COLOR_WHITE,msg2);
SendClientMessage(ziel,COLOR_WHITE,msg1);
SetPlayerSkin(ziel,skin);
pDaten[ziel][Skin] = GetPlayerSkin(ziel);
return 1;
}
else
{
SendClientMessage(playerid,ADMIN_RED,"Du musst mindestens Level 3 sein für diesen Command!");
}
return 1;
} -
Benutz doch ocmd.
Code
Alles anzeigenocmd:setskin(playerid,params[]) { new pID, skin, string[128]; if(sscanf(params,"ui",pID,skin)) return SendClientMessage(playerid,GELB, "/setskin [Player ID] [Skin ID]"); if(!isPlayerAnAdmin(playerid,2)) return SendClientMessage(playerid,ROT, "Du bist kein Admin der Stufe 2"); if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der Spieler mit der angegebenen ID ist offline/nicht existent."); if(skin<0||skin>299) return SendClientMessage(playerid,ROT, "Bitte einen Skin zwischen 0 und 299 wählen"); format(string,sizeof(string),"Du hast den Skin des Spielers %s geändert.",SpielerName(pID)); SendClientMessage(playerid,GELB,string); format(string,sizeof(string),"%s hat deinen Skin geändert.",SpielerName(playerid)); SendClientMessage(pID,GELB,string); SetPlayerSkin(pID,skin); return 1; }
Du musst deine Adminanfrage natürlich noch einfügen
-
-
stock strget(strx[], pos, search = ' ')
{
new arg, ret[128], idxx;
for (new i = 0; i < strlen(strx); i++)
{
if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10)
{
arg++;
if (arg == pos + 1)
{
ret[i-idxx] = EOS;
return ret;
} else if (arg == pos)
idxx= i+1;
}
else if (arg == pos)
ret[i - idxx] = strx[i];
}
return ret;
} unten im script -
-
Das von Dawntide reicht doch?
Achja, haste meins getestet?? -
Ja habs getestet, funktioniert einwandfrei
Danke euch für die Hilfe. Die anderen Sachen funktionieren jetzt auch.
Gruß Tim
-
breadfish.de
Hat das Thema geschlossen.