Du kannst keine 2 returns unter einander setzen ![]()
mfg. ![]()
Du kannst keine 2 returns unter einander setzen ![]()
mfg. ![]()
Schreibe es so:
if(!isPlayerAnAdmin(playerid,2))
{
if(GetVehicleModel(vehicleid) == 520)
{
if(PlayerInfo[playerid][pLevel] < 3)
{
SendClientMessage(playerid,COLOR_RED,"Du weißt nicht wie du in das Fahrzeug kommen sollst!");
TogglePlayerControllable(playerid,false);
TogglePlayerControllable(playerid,true);
}
}
}
mfg. ![]()
Zitatnew PlayerInfo[MAX_PLAYERS][pInfo];
Das musst du unter das enum schreiben ![]()
mfg. ![]()
Also willst du es in der Datei verschlüsseln oder wenn man es eintippt ?
mfg. ![]()
So ungefähr:
md5(string);
mfg. ![]()
Schreibe das ganz alles ganz unten in dein Script, sollte soweit funzen ![]()
stock anty(string[])
{
if (!isnull (text))
{
new
idx,
i,
ipstring [128],
string [128],
len = strlen (text);
for (i = 0; i < len; ++i)
if (text [i] != ' ')
string [idx++] = text [i];
if (!(len = strlen (string)))
return false;
if (!strfind (string, "www.", false) || !strfind (string, "http://", false) || !strfind (string, ".com", false) || !strfind (string, ".net", false)
|| !strfind (string, ".de", false) || !strfind (string, ".org", false) || !strfind (string, "|", false))
return true;
for (i = 0, idx = 0; i < len; ++i)
{
if (string [i] == ':')
{
ipstring [idx] = '\0';
if (ipstring [0] && SplitIp (ipstring) != 0xFFFFFFFF)
return true;
idx = 0;
ipstring [0] = '\0';
}
else if ('0' <= string [i] <= '9' || string [i] == '.')
ipstring [idx++] = string [i];
}
ipstring [idx] = '\0';
if (ipstring [0] && SplitIp (ipstring) != 0xFFFFFFFF)
return true;
}
return false;
}
stock BytesToWord (byte0, byte1, byte2, byte3, &word, mode = 0)
{
switch (mode)
{
case 0:
{
new bytes [4 char]; // 4 char = 1
bytes {0} = byte3;
bytes {1} = byte2;
bytes {2} = byte1;
bytes {3} = byte0;
word = bytes [0];
}
default:
{
word = byte0; // & 0xFF;
word |= (byte1 << 8); // & 0xFF00;
word |= (byte2 << 16); // & 0xFF0000;
word |= (byte3 << 24); // & 0xFF000000;
}
}
}
stock SplitIp(ipstring [])
{
new
j,
bytes [4],
word;
for (new i = 0, len = strlen (ipstring); i < len; ++i)
{
if (j > 3)
return 0xFFFFFFFF;
if (ipstring [i] == ' ')
continue;
if (ipstring [i] == '*')
bytes [j] = 0xFF;
else if (ipstring [i] == '.')
{
++j;
}
else if ('0' <= ipstring [i] <= '9')
{
bytes [j] = 10 * bytes [j] + ipstring [i] - '0';
if (bytes [j] > 0xFF || bytes [j] < 0)
return 0xFFFFFFFF;
}
else
return 0xFFFFFFFF;
}
BytesToWord (bytes [0], bytes [1], bytes [2], bytes [3], word);
return word;
}
mfg. ![]()
InternetInk macht seine Arbeit wirklich super.
Da kann ich nur zustimmen ![]()
Großes Lob an Internetink aka Benjamin ![]()
mfg. ![]()
Schreibe einfach das ganz unten in dein Script:
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
mfg. ![]()
In der Tat, sehr privat
Das kann ich nur noch mal wiederholen ![]()
Und der weiße Hintergrund mit der hell grünen schrift ist übertrieben, nimm einfach einen anderen schwarz ton oder so ![]()
mfg. ![]()
#define MAX_BIZZES 50
enum bInt
{
Float:bX,
Float:bY,
Float:bZ,
Interior,//Int kannste net schreiben, das ist eine definition für eine Zahl in Visual C ( C++ )
};
new BizInfo[MAX_BIZZES][bInt];
Machs doch so ?
mfg. ![]()
Mit ForceClassSelection könnt ihr Spieler dazu bringen in diese Auswahl zu bringen mit: " << " " >> " oder " spawn "
mfg. ![]()
Ehm...
1. Was ist ein Cooldown ?!
2. Hier der Code für den Repair:
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
RepairVehicle(GetPlayerVehicleID(playerid));
mfg. ![]()
Finde so eine Brille hammer ![]()
Kostet aber bestimmt ne schöne Stange Geld...
Naja, aber schon eine geile idee ![]()
mfg. ![]()
new string[3500],string2[50];
format(string2,sizeof(string2),"Verbrechen/%s.txt",SpielerName(strval(inputtext)));
new File:f = fopen(string2, io_read);
fread(f, string);
fclose(f);
Also 1. Frage, wieso verwendest du strval(inputtext) ?
Sinnlos mach nur inputtext, da du ja keine Zahl auslesen willst ?!
So und nur die 1. Zeile wird ausgelesen, weil glaube ich der string zu klein ist von string2 setzte den mal am besten auf 256 ![]()
mfg. ![]()
//EDIT:
Mach das mal so:
new string[256];
format(string,sizeof(string),"Verbrechen/%s.txt",SpielerName(inputtext));
new File:f = fopen(string, io_read);
fread(f, string);
fclose(f);
Setze das ganz unten in dein Script:
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
und dieses pTban
trägst du in dein enum ein ![]()
mfg. ![]()
Na super ![]()
Hier alle skinids: Klick
so und nun nochmal, der Code muss unter:
public OnPlayerCommandText(playerid, cmdtext[])
mfg. ![]()
das kannst du sicherlich im Script einstellen.
Klar wo auch sonst ![]()
ne Spaß, also wenn du da einen Befehl willst hier mal ein Codeschnipsel:
if(strcmp(cmd, "/skinchange", true) == 0)
{
if(PlayerInfo[playerid][pLeader] == 1) //halt angeben in welcher Frak man ist
{
SetPlayerSkin(playerid, 1); // 1 ist nur ein bsp musste halt mir der gewünschten skinid ersetzen
}
return 1;
}
So ist das wenn du GF benutzt.. weiß halt nicht wie das in deinem Script ist, aber hoffe du kannst gut genug scripten um dir das selber einzurichten ![]()
mfg. ![]()
Sieht gut aus ![]()
Besonders das hier:
Warum haue ich euch nicht über den Tisch (ja, warum eigentlich nicht? :D)?
Ne, Spaß, nur zu empfehlen ![]()
mfg. ![]()