Einfach mal den ganzen Code posten, sind ja nur 100 Zeilen.
Kannst auch http://www.pastebin.com nehmen.
Beiträge von Jeffry
-
-
Mach du es doch richtig.. Jeffry:
So klappt es nicht, zumindest nicht mit deinen VariablenWar wohl etwas spät. Wobei ich denke, dass es wohl klar ist dass NSG = NRG ist.
Hab es trotzdem ausgebessert, Danke für den Hinweis, war natürlich ein doofer Fehler von mir. -
xGreekz7x: Fast, ein kleiner Fehler:
format(_str, 8, "%s%c", _str, chars[rand]);
Warum %c? Du willst ja nur einen Buchstabe einfügen, und nicht alle Buchstaben ab 'rand'.@ichecks: Signatur
-
In diesem Fall wäre es wesentlich besser SetPlayerAttachedObject zu benutzen, da dies die Objekte nicht massiv behält.
Damit du nicht alles per Hand ausprobieren musst, kann ich dir diesen Editor empfehlen:
http://forum.sa-mp.com/showthread.php?t=416138 -
-
for(new i = 0; i < sizeof(TaxiVeh); i++)
{
if(IsPlayerInVehicle(playerid,TaxiVeh[i]))
{
CODE
return 1;
}
}
return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Taxi.");Ein return in der Schleife, auch im "else-Zweig" führt zur sofortigen Beendigung der Schleife.
EDIT: Zusatzinfo:
Spoiler anzeigen
Falls nach der Schleife noch code folgen würde, sähe das Ganze so aus:Spoiler anzeigen new bool:intaxi = false;
for(new i = 0; i < sizeof(TaxiVeh); i++)
{
if(IsPlayerInVehicle(playerid,TaxiVeh[i]))
{
CODE
intaxi = true;
}
}
if(!intaxi) return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Taxi.");
MEHR CODE, WIRD NUR AUFGERUFEN WENN IN TAXI
-
if(strcmp(cmdtext,"/spawn",true,6) == 0)
{
if(!strlen(cmdtext[6])) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /spawn [playerid]");
if(cmdtext[6] == ' ')
{
if(PlayerInfo[playerid][pAdmin] < 1 && PlayerInfo[playerid][pSupporter] < 1) return SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!!");
if(!strlen(cmdtext[7])) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: /spawn [Name]");
new para1 = ReturnUser(cmdtext[7]);
if(!IsPlayerConnected(para1)) return SendClientMessage(playerid, 0xFF0000FF, "Spieler nicht connected.");
SetPlayerSpawn(para1);
SendClientMessage(playerid, COLOR_GREEN, "Spieler erfolgreich gespawnt!");
new str[144];
format(str, sizeof(str), "Server: %s (ID: %d) hat %s (ID: %d) gespawnt.", SpielerName(playerid), playerid, SpielerName(para1), para1);
return SendClientMessageToAll(COLOR_GREEN, str);
}
}1) Auf strtok verzichtet, da nur 1 Parameter, strtok wäre hier unnötig.
2) Die vielen Klammern weg gemacht, viel übersichtlicher so (meiner Meinung nach).
3) Den check auf INVALID_PLAYER_ID weg gemacht, da unnötig, weil IsPlayerConnected dies schon prüft.
4) Formatierte (gwünschte) Ausgabe.
5) Ich darf davon ausgehen, dass ReturnUser nur anhand des Namens eine ID zurück gibt. -
Nein, nein, nein...
if(strcmp(pName,"Airwolf003"))
Übersetzt:
Wenn der Name von Airwolf003 abweicht, dann wird überprüft ob er in einem Airwofl auto ist. -
Der 0. Bug ist nur auf Public-Sources vorhanden.
Das ist völlig falsch, auf was für Quellen und Beweise stützt sich denn diese Aussage? Ich hatte das in einem anderen Thread bereits erklärt, lies dir das mal durch: ID 0 Bug.Zum Thema: Was H4rd_B4se gesagt hat ist natürlich völlig richtig, jedoch musste obiges gesagt werden, da einige noch immer davon ausgehen dass ein ID 0 Bug "etwas bestimmtes" ist.
-
new w = GetPlayerWeapon(killerid);
if(w == 38 || w == 37 || w == 36 || w == 35 || w == 39 || w == 40 || w == 18 || w == 9 || w == 8) -
{4BB400F} => {4BB400}
{B4B4B4F} => {B4B4B4}Das F hinten hat da nichts zu suchen.
-
CreateHaus(playerid,params,x,y,z);
Array und Float wurden ja bereits definiert.
-
Nö.
Du fragst genau das Gegenteil ab...Meins:
if(Spieler[i][geld] < GetPlayerMoney(i))
Das Große wird vom Krokodil gefressen.Übersetzt: WENN Spieler[ i][geld] KLEINER GetPlayerMoney(i) DANN BAN
a > b und b < a ist das Selbe. Beides mal ist a GRÖßER b, bzw. b KLEINER a.
-
Timer passt schon. Ruf die Funktion zudem noch bei SpielerSpeichern() auf, dann bist du auf der sicheren Seite.
ABER:if(Spieler[i][geld] > GetPlayerMoney(i))
!!!
Das wäre ja ein ban wenn er sich Geld weg-cheated.
Muss so sein:
if(Spieler[i][geld] < GetPlayerMoney(i))Zudem solltest du Folgendes beachten:
- Es fehlt dir jeglicher Ausschluss von Desynchronisation. Was ist das? Geh mal in einen Server, und dann lade eine größere Datei hoch, je nach Internetverbindung bist du danach im Server nicht mehr synchronisiert, was folglich zu einem Ban führt, sobald sich dein Geld per Aufruf ändert.
- Es fehlen sämtliche Ausschlüsse, dazu zählen:
- Snack Maschinen
- Ammu Nation
- Stunt Bonus
- Tune Garagen
- Pay'n'Spray
- Casino
- (...)
Da du abfragst ob GetPlayerMoney nicht der Variable entspricht, wirst du sofort gebannt. Das ist sehr schlecht.
-
new Float:distance=floatsqroot(((x1-x)*(x1-x))+((y1-y)*(y1-y))+((z1-z)*(z1-z)));
Oder wenn du einen stock willst:
stock Float:GetDistanceBetweenPoints(Float:x, Float:y, Float:z, Float:x1, Float:y1, Float:z1)
{
return floatsqroot(((x1-x)*(x1-x))+((y1-y)*(y1-y))+((z1-z)*(z1-z)));
} -
if(strfind(text,SchimpfWoerter[i],true)!=1)
zu:
if(strfind(text,SchimpfWoerter[i],true)!=-1)-1 bedeutet nicht gefunden <=> nicht -1 bedeutet gefunden
-
Nimm den "root" Benutzer:
#define mysql_host "127.0.0.1"
#define mysql_user "root"
#define mysql_pass ""
#define mysql_db "samp" -
new SchimpfWoerter[][] =
public OnPlayerText(playerid, text[])
{
for(new i=0; i<sizeof(SchimpfWoerter); i++)
{
if(strfind(text,SchimpfWoerter[i],true)!=1)
{
//Beleidigung, Nachricht wird nicht gesendet (return 0).
return 0;
}
}
return 1;
} -
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FF0000}Hallo {00FF00}dies ist der {FFFF00}Text in der Login {0000FF}Box ","Einloggen","Abbrechen");
Zum Beispiel.
Die Sechsstelligen-Farbcodes gibts hier: http://www.colorpicker.com -