Den Vorschlag finde ich garnicht mal so schlecht.
Wenn sollte man einen erfahrenen Scripter als Middleman bevorzugen.
Da es ja viele gibt die ein Pase & Copy Script verkaufen und als eigenes ausgeben was natürlich Betrug ist.
LG RFT
Den Vorschlag finde ich garnicht mal so schlecht.
Wenn sollte man einen erfahrenen Scripter als Middleman bevorzugen.
Da es ja viele gibt die ein Pase & Copy Script verkaufen und als eigenes ausgeben was natürlich Betrug ist.
LG RFT
Der Code macht von hinten bis vorne keinen Sinn.
Ausserdem müssten wir wissen in welche Zeilen vom Code die Errors sind.
LG RFT
Achso oke.
Dann bedanke ich mich bei allen die geholfen haben, Thema kann geclosed werden.
//edit by RFT: Closed
Die Vorstellung lässt zu wünschen übrig.
Das Forum sieht auch nicht gerade schön aus.
Ich würde an eurer Stelle das komplette Projekt neu bearbeiten.
LG RFT
Als erstes muss das hier so aussehen:
new Text:Time, Text:Textate;
Dann poste uns mal den Code und nicht nur die Error Zeilen ab und zu kann der Fehler auch dadrüber liegen.
LG RFT
Welche SA-MP Version hast du? Welche GTA Version hast du ich gehe mal von der Version 1.0 aus die benötigt wird.
LG RFT
Laggt später, mach lieber Selfmade
Schwachsinn.
Wenn zwei richtige Hände die sich die Zeit nehmen an einem GF rum basteln.
Kann daraus was großes werden.
LG RFT
Da dieser Code so unsauber ist und man im Forum nicht viel erkennt.
Setze mal nach jeder Abfrage ein debug.
Beispiel:
if(............)
{
print("1");
if(..........)
{
print("2");
Dann lässt du das gewünschte Callback einfach vom Script aufrufen und siehst wo er stehen bleibt.
LG RFT
Hallo Henner,
für mich ist das zwar nix.
Aber für einigen Leute wird es ein super Forum sein.
Deine andere Foren sind ja auch immer gut gelungen.
Von daher wünsche ich dir viel Glück und Erfolg.
LG RFT
Möchtes du SSCanf V2 eigentlich nutzen ? Mit dem Plugin.
Oder eher das alte was man im Script einkopiert ?
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
Dazu ist dieses Forum nicht gedacht.
Aber nen Tipp von mir: Schau in seinem Thread dort werden die User ihn mit sicherheit bewertet haben.
Ausserdem ist er mir noch nicht negativ aufgefallen.
LG RFT
Du musst den TextDraw für jeden Spieler unter OnPlayerConnect oder OnPlayerSpawn erstellen lassen.
LG RFT
Zeig mal deine "Autokaufen" Funktion.
LG RFT
Ein RL Script was letzte Woche seine 95% erreicht hat.
Ansonsten gerade ein Touch Panel + Gehäuse für iphone 3Gs und ein Flexband bestellt.
LG RFT
Also ist das Problem behoben ?
Bitte beim nächsten mal die [pwn] Klammern nutzen.
LG RFT
Bei Godfather werden die Spawn Waffen unter
public SetPlayerWeapons(playerid)
vergeben. Schau dort mal um den Baseballschläger zu entfernen.
Was soll das überhaupt werden und wieso BFX_ zeig mal wies definiert oben ist.
LG RFT
Wie sieht QuestDialogB aus ? Wie wurde es definiert.
Und ohne den Abschnitt kriegste keine Errors ? Da steht aber undefined Symbol BuyUhr usw.
Ungetestet und im Forum umgeschrieben.
if(strcmp(cmd, "/annehmen", true) == 0)
{
new What[64];
What = strtok(cmdtext, idx);
if(!What[0])
{
SendClientMessage(playerid,COLOR_GREY,"Fehler, '/Annhemen [Was]'");
SendClientMessage(playerid,COLOR_GREY,"Verfügbar: Einladung");
return true;
}
if(strcmp(What,"Einladung",true)==0)
{
if(PlayerInfo[playerid][pInvite])
{
PlayerInfo[playerid][pMember] = PlayerInfo[playerid][pInvite];
PlayerInfo[playerid][pRank] = 1;
SendClientMessage(playerid,COLOR_YELLOW,"Du bist der Fraktion erfolgreich beigetreten.");
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du wurdest nicht eingeladen!");
}
}
else if(strcmp(What,"Beispiel123WTFFUCKXD",true)==0)
{
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Fehler, unbekannter parameter.");
}
return 1;
}
if(strcmp(cmd, "/uninvite", true) == 0)
{
if(PlayerInfo[playerid][pLeader])
{
new ID;
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
ID = ReturnUser(tmp);
if(!IsPlayerConnected(ID))return SendClientMessage(playerid, COLOR_YELLOW, "Info: Dieser Spieler ist offline.");
if(IsPlayerConnected(ID) && gPlayerLogged[ID])
{
if(PlayerInfo[ID][pMember] == PlayerInfo[playerid][pLeader])
{
PlayerInfo[ID][pMember] = 0;
PlayerInfo[ID][pRank] = 0;
new Text[256];
new tName[2][MAX_PLAYER_NAME];
GetPlayerName(playerid,tName[0],MAX_PLAYER_NAME);
GetPlayerName(ID,tName[1],MAX_PLAYER_NAME);
format(Text,sizeof(Text),"%s hat dich aus seiner Fraktion geworfen.",tName[0]);
SendClientMessage(ID,COLOR_YELLOW,Text);
format(Text,sizeof(Text),"Du hats %s aus deiner Fraktion geworfen.",tName[1]);
SendClientMessage(playerid,COLOR_YELLOW,Text);
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Der Spieler ist nicht in deiner Fraktion.");
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Der gewählte Spieler ist nicht online.");
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du bist kein Leader einer Fraktion!");
}
return 1;
}
if(strcmp(cmd, "/invite", true) == 0)
{
if(PlayerInfo[playerid][pLeader])
{
new ID;
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
ID = ReturnUser(tmp);
if(!IsPlayerConnected(ID))return SendClientMessage(playerid, COLOR_YELLOW, "Info: Dieser Spieler ist offline.");
if(!PlayerInfo[ID][pMember] && !PlayerInfo[ID][pLeader])
{
if(PlayerInfo[ID][pInvite])
return SendClientMessage(playerid,COLOR_GREY,"Der gewählte Spieler wurde bereits eingeladen!");
PlayerInfo[ID][pInvite] = PlayerInfo[playerid][pLeader];
new Text[256];
new tName[2][MAX_PLAYER_NAME];
GetPlayerName(playerid,tName[0],MAX_PLAYER_NAME);
GetPlayerName(ID,tName[1],MAX_PLAYER_NAME);
format(Text,sizeof(Text),"Chef %s hat dich in seine Fraktion %s eingeladen.",tName[0],berufe[PlayerInfo[playerid][pLeader]]);
SendClientMessage(ID,COLOR_YELLOW,Text);
SendClientMessage(ID,COLOR_YELLOW,"Um die Einladung anzunhemen tippe: '/Annehmen Einladung'");
format(Text,sizeof(Text),"Du hast %s in deine Fraktion eingeladen!",tName[1]);
SendClientMessage(playerid,COLOR_YELLOW,Text);
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Der gewählte Spieler ist bereits in einer Fraktion!");
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du bist kein Leader!");
}
return 1;
}
if(strcmp(cmd, "/makeleader", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] > 1)
{
new ID,Fraktion;
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
ID = ReturnUser(tmp);
if(!IsPlayerConnected(ID))return SendClientMessage(playerid, COLOR_YELLOW, "Info: Dieser Spieler ist offline.");
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
Fraktion = strval(tmp);
if(Fraktion < 0 && Fraktion > sizeof(berufe))return SendClientMessage(playerid,COLOR_GREY,"Falsche Fraktionsid!");
new Text[255];
new tName[2][MAX_PLAYER_NAME];
GetPlayerName(playerid,tName[0],MAX_PLAYER_NAME);
GetPlayerName(ID,tName[1],MAX_PLAYER_NAME);
if(Fraktion)
{
format(Text,sizeof(Text),"AmdCmd: %s hat dich zum Chef der Fraktion %s ernannt.",tName[0],berufe[Fraktion]);
SendClientMessage(ID,COLOR_YELLOW,Text);
format(Text,sizeof(Text),"AmdCmd: Du hast %s zum Chef der Fraktion %s ernannt.",tName[1],berufe[Fraktion]);
SendClientMessage(playerid,COLOR_YELLOW,Text);
PlayerInfo[ID][pRank] = 6;
}
else if(!Fraktion && PlayerInfo[playerid][pLeader])
{
format(Text,sizeof(Text),"AmdCmd: %s hat hat dir die Leitung deiner Fraktion entnommen.",tName[0]);
SendClientMessage(ID,COLOR_YELLOW,Text);
format(Text,sizeof(Text),"AmdCmd: Du hast %s die Leaderrechte genommen.",tName[1]);
SendClientMessage(playerid,COLOR_YELLOW,Text);
PlayerInfo[ID][pRank] = 0;
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Der Spieler ist kein Chef einer Fraktion!");
return 1;
}
PlayerInfo[ID][pMember] = 0;
PlayerInfo[ID][pLeader] = Fraktion;
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Gewählte Spieler nicht online.");
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Dies ist ein Adminbefehl!");
}
return 1;
}
Ausserdem gibt deine erste Funktion nur Ids zurück und keine Namen.