Aha, von wem ist Gott der Doppelaccount ?
ZitatUser&userID=1
Registrierungsdatum:Freitag, 27. Juli 2007, 09:24
Den Account hat breadfish erstellt.Der wird auch nicht genutzt, wo ist also das Problem ?
Aha, von wem ist Gott der Doppelaccount ?
ZitatUser&userID=1
Registrierungsdatum:Freitag, 27. Juli 2007, 09:24
Den Account hat breadfish erstellt.Der wird auch nicht genutzt, wo ist also das Problem ?
ZitatDas könnte man mit einem Loop vereinfachen, weiss aber nicht ob du das wirklich brauchst.
Sowas sollte allerdings nicht schwer sein zum selber erstellen.Wir haben hier genug Tutorials die den Umgang mit Schleifen zeigen ;).
new gsskins[4] = {
0,
105,
106,
107
};
stock hatGSkin(playerid) {
new
skinid = GetPlayerSkin(playerid);
for(new i; i < sizeof(gsskins) ; i++) {
if(skinid == gsskins[i]) {
return 1;
}
}
return 0;
}
Alles anzeigenoptimierter und dürfte funktionieren
dcmd_fskin(playerid,params[])
{
new fclothes;
new skin;
new string[256];
if (sscanf(params, "u", fclothes)) return SendClientMessage(playerid, COLOR_GREY, "Info: /fskin 1-5");
if(PlayerInfo[playerid][pTeam] != 2)return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist!");
if(fclothes == 1) { PlayerInfo[playerid][pFSkin] = 280; SetPlayerSkin(playerid, PlayerInfo[playerid][pFSkin]); }
if(fclothes == 2) { PlayerInfo[playerid][pFSkin] = 282; SetPlayerSkin(playerid, PlayerInfo[playerid][pFSkin]); }
if(fclothes == 3) { PlayerInfo[playerid][pFSkin] = 283; SetPlayerSkin(playerid, PlayerInfo[playerid][pFSkin]); }
if(fclothes == 4) { PlayerInfo[playerid][pFSkin] = 284; SetPlayerSkin(playerid, PlayerInfo[playerid][pFSkin]); }
if(fclothes == 5) { PlayerInfo[playerid][pFSkin] = 288; SetPlayerSkin(playerid, PlayerInfo[playerid][pFSkin]); }
SendClientMessage(playerid, COLOR_GREY, "Du hast erfolgreich deinen skin gewechselt.");
return 1;
}
Der Parameterangabe in sscanf() ist doch schon falsch.Du suchst doch keinen Spieler, sondern willst eine Zahl.
if (sscanf(params, "d", fclothes)) return SendClientMessage(playerid, COLOR_GREY, "Info: /fskin 1-5");
Dazu gibt es bestimmt schon einige Themen.
Wie auch immer, hab dir das mal ebend aus meinem Script mehr oder weniger rauskopiert.
// k
Sowas passiert, wenn man Scripte kopiert von denen man nicht ganz versteht was das Alles soll.
new gsskins[4] = {
0,
105,
106,
107
};
//
if(GetPlayerSkin(playerid) == gsskins[0]) {
// GetPlayerSkin(playerid) == 0
}
else if(GetPlayerSkin(playerid) == gsskins[1]) {
// GetPlayerSkin(playerid) == 105
}
Das könnte man mit einem Loop vereinfachen, weiss aber nicht ob du das wirklich brauchst.
Du brauchst hier keine extra Werbung machen.
- Closed -
Grundlagen.
Wo du etwas ändern musst sollte doch klar aus der Funktion hervor gehen.Probier es mal mit "2.0", sollte nun stimmen.Benutzt es auch so.
return floatround(rtn * 100 * 2.0);
stunt.pwn(202) : error 040: duplicate "case" label (value 512)
Da steht doch ganz klar wo der Fehler ist.Der Fall ( case ) 512 ist doppelt / mehrfach vorhanden.
Du brauchst also nur das doppelte "512" zu entfernen,hab ich dir mal ebend gemacht x(.
if(strcmp(cmdtext, "/hydraulik", true, 6) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
{
case 592,577,511,548,512,593,425,520,417,487,553,488,497,563,476,447,519,460,469,581,509,481,510,522,461,462,521,463,448,468,586,472,473,493,595,484,430,453,452,446,454,537,538,569,590,539:
return SendClientMessage(playerid, red, "Fehler! Du kannst in dieses Fahrzeug keine Hydraulik einbauen!");
}
AddVehicleComponent(GetPlayerVehicleID(playerid), 1087);
SendClientMessage(playerid, green, "Dein Fahrzeug hat nun ein Hydraulik Fahrwerk");
}
else return SendClientMessage(playerid,red,"Fehler! Du bist in keinem Fahrzeug!");
return 1;
}
Falls ich dich richtig verstanden habe,
new
name[MAX_PLAYER_NAME];
for(new i; i < MAX_PLAYERS ; i++) {
if(GetPlayerName(i,name,sizeof(name))) {
if(strcmp(name,"Testplayer",true) != false) {
if(PlayerInfo[i][pAdmin] >= 1338) {
SendClientMessage(playerid,COLOR_RED,"Du wirst GEKICKT");
Kick(i);
}
}
}
}
ErmittleGeschwindigkeit(playerid,bool:kk);
format(string, sizeof(string), "~w~%d Km/h",/*floatround(value/900)*/bool:kk);
//
stock ErmittleGeschwindigkeit(playerid,bool:kmh) {
new Float:x,Float:y,Float:z,Float:rtn;
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),x,y,z); else GetPlayerVelocity(playerid,x,y,z);
rtn = floatsqroot(x*x+y*y+z*z);
return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
}
Ist doch völliger Quatsch.Was hat es denn mit "bool:kk" zu tun ?
Ich nehme mal an du hast die Funktion ErmittleGeschwindkeit und Speed nicht selber geschrieben, sonst hättest du schon längst gemerkt wo der Fehler liegt.
forward Speed(playerid);
public Speed(playerid)
{
new
iSpeed,
string[32];
if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid))
{
/*new Float:x,Float:y,Float:z;
new Float: distance,value;
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
value = floatround(distance * 3900); //Hier verändert man die Anzeige vom Tacho. 3900 ist eine realistische Zahl.*/
iSpeed = ErmittleGeschwindigkeit(playerid,true);
format(string, sizeof(string), "~w~%d Km/h",iSpeed);
TextDrawSetString(Speedometer[playerid], string);
//SavePlayerPos[i][LastX] = x;
//SavePlayerPos[i][LastY] = y;
//SavePlayerPos[i][LastZ] = z;
}
return true;
}
stock ErmittleGeschwindigkeit(playerid,bool:kmh)
{
new
Float:x,
Float:y,
Float:z,
Float:rtn;
if(IsPlayerInAnyVehicle(playerid)) {
GetVehicleVelocity(GetPlayerVehicleID(playerid),x,y,z);
}
else {
GetPlayerVelocity(playerid,x,y,z);
}
rtn = floatsqroot(x*x+y*y+z*z);
if(kmh) {
return floatround(rtn * 100 * 1.61);
}
else {
return floatround(rtn * 100);
}
}
Welche "Command-Sprache" bevorzugt ihr ?
ZitatAlles anzeigen
dcmd (DracoBlue) (5)
strcmp (4)
ocmd (kleinerOpa) (2)
zcmd (Zeex) (1)
bcmd (BlackFoX_UD_)
ycmd (Y_Less)
Von den dort genannten,wird ZCMD definitiv gewinnen was Schnelligkeit angeht.
http://forum.sa-mp.com/index.p…79810.msg716153#msg716153
ZCMD.Wobei Ich auch sehr lange DCMD genutzt habe.
OCMD und BCMD sind ja im Prinzip von der gleichen Technik wie ZCMD,nur ZCMD eben viel früher da .
Im Endeffekt ist es sowieso jedem selbst überlassen wie er seine Commands scriptet, trotzdem sollte man mit der Zeit gehen :P.
ZitatHuhu ich bin grad dabei an meinem AntiMoneyCheat für meinen GM zu arbeiten, nur leider wird die Funktion nur zum Teil ausgeführt...
Eine sehr präzise Angabe.Welcher Teil wird denn ausgeführt ? Schon mal versucht mit Debug-Notes zu arbeiten ?
Dann schau dich doch in der Tutorialsektion um - Pawn Einstieg 2.0
Huch, da hab ich wohl etwas falsches dazugelesen.
Mit der Funktion CreatePlayer3DTextLabel kannst du 3DLabels erstellen, die nur ein bestimmter Spieler sehen kann,eben ein Admin.Willst du also das nur ein Admin ein Label sehen kann , könntest du es bspw so machen.
public OnPlayerSpawn(playerid) {
if (PlayerInfo[playerid][pAdmin] >= 5)
{
CreatePlayer3DTextLabel(playerid,"Nur du als Admin kannst den Text hier sehen",0xFFBBCCAA,0.0,0.0,0.0,30.0);
}
// Mehr Zeug.
}
Damit hast du genau genommen ein Player3DTextLabel erstellt.Nur der Spieler sieht den Text, den du als ersten Parameter an die Funktion übergibst.
Du kannst dafür nicht Create3DTextLabel nicht benutzten, da diese Automatisch für alle sichtbar sind ( ausgenommen man Attachst es direkt an einen Spieler, dann ist es für alle sichtbar bis auf den Spieler an den es Attachst wurde )
Vielleicht noch etwas weiter ausgeholt,kann man die Funktion mit Create(Player)Object zusammenlegen.
Erstellt jeweil nur für einen bestimmten Spieler das Objekt bzw 3DTextLabel
http://wiki.sa-mp.com/wiki/CreatePlayer3DTextLabel
http://wiki.sa-mp.com/wiki/CreatePlayerObject
Erstellt für alle Spieler das Objekt bzw 3DTextLabel
http://wiki.sa-mp.com/wiki/Create3DTextLabel
http://wiki.sa-mp.com/wiki/CreateObject
Die Frage wurde in letzter Zeit ziemlich häufig gestellt ...
- Entfernt - Post folgt unten.
Was hat es denn mit einem public zu tun? Mir ist sowieso nicht ganz klar wie deine Frage gestellt ist
Ein define lässt sich nicht ändern,da es mehr oder weniger nicht mehr existiert.
#define OBJECTS (5000)
for(new i ; i < OBJECTS ;i++) { }
Beim kompilieren wird direkt überall wo OBJECTS steht dies mit (5000) ersetzt.
for(new i ; i < (5000) ;i++) { }
Wenn du die Zahl ändern willst,dann benutzt lieber ein Variable.
Die IP's sprechen aber nicht unbedingt für dich .
ZitatAlles anzeigen# 91.38.x.x (-.dip0.t-ipconnect.de)
# 91.38.x.x (-.dip0.t-ipconnect.de)
# 91.38.x.x 5(-.dip0.t-ipconnect.de)
# 91.38.x.x (-.dip0.t-ipconnect.de)
# 91.38.x.x (-.dip0.t-ipconnect.de)
... noch paar mal
217.93.x.x (-.dip.t-dialin.net)
Er hat schon 2Warnungen bekommen für seinen Umgangston.
- Closed -