Beiträge von RFT
-
-
strtok(string[],&idx,seperator = ' ')
{
new ret[128], i = 0, len = strlen(string);
while(string[idx] == seperator && idx < len) idx++;
while(string[idx] != seperator && idx < len)
{
ret[i] = string[idx];
i++;
idx++;
}
while(string[idx] == seperator && idx < len) idx++;
return ret;
}das rauß ist 2 mal drinnen und wenn der Error mit C:\DOKUME~1\Kadir\Desktop\SERVER~1\GAMEMO~1\TDM.pwn(3244) : error 047: array sizes do not match, or destination array is too small dann steht liegts an der Include dann setzte den String tmp auf 256
-
Moin war mein Fehler meine strtok Funktion die ich dir gesendet hab entfernen die hast du damit doppelt drinnen.
MFG RFT
-
ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
new pos = 0;
while (text[pos] < 0x21) // Strip out leading spaces
{
if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
pos++;
}
new userid = INVALID_PLAYER_ID;
if (IsNumeric(text[pos])) // Check whole passed string
{
// If they have a numeric name you have a problem (although names are checked on id failure)
userid = strval(text[pos]);
if (userid >=0 && userid < MAX_PLAYERS)
{
if(!IsPlayerConnected(userid))
{
/*if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "User not connected");
}*/
userid = INVALID_PLAYER_ID;
}
else
{
return userid; // A player was found
}
}
/*else
{
if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
}
userid = INVALID_PLAYER_ID;
}
return userid;*/
// Removed for fallthrough code
}
// They entered [part of] a name or the id search failed (check names just incase)
new len = strlen(text[pos]);
new count = 0;
new name[MAX_PLAYER_NAME];
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerName(i, name, sizeof (name));
if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
{
if (len == strlen(name)) // Exact match
{
return i; // Return the exact player on an exact match
// Otherwise if there are two players:
// Me and MeYou any time you entered Me it would find both
// And never be able to return just Me's id
}
else // Partial match
{
count++;
userid = i;
}
}
}
}
if (count != 1)
{
if (playerid != INVALID_PLAYER_ID)
{
if (count)
{
SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
}
}
userid = INVALID_PLAYER_ID;
}
return userid; // INVALID_USER_ID for bad return
}
IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}
strtok(string[],&idx,seperator = ' ')
{
new ret[128], i = 0, len = strlen(string);
while(string[idx] == seperator && idx < len) idx++;
while(string[idx] != seperator && idx < len)
{
ret[i] = string[idx];
i++;
idx++;
}
while(string[idx] == seperator && idx < len) idx++;
return ret;
}ganz nach unten ins Script wo ist da das problem o.o
MFG RFT
-
ganz nach unten
ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
new pos = 0;
while (text[pos] < 0x21) // Strip out leading spaces
{
if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
pos++;
}
new userid = INVALID_PLAYER_ID;
if (IsNumeric(text[pos])) // Check whole passed string
{
// If they have a numeric name you have a problem (although names are checked on id failure)
userid = strval(text[pos]);
if (userid >=0 && userid < MAX_PLAYERS)
{
if(!IsPlayerConnected(userid))
{
/*if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "User not connected");
}*/
userid = INVALID_PLAYER_ID;
}
else
{
return userid; // A player was found
}
}
/*else
{
if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
}
userid = INVALID_PLAYER_ID;
}
return userid;*/
// Removed for fallthrough code
}
// They entered [part of] a name or the id search failed (check names just incase)
new len = strlen(text[pos]);
new count = 0;
new name[MAX_PLAYER_NAME];
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerName(i, name, sizeof (name));
if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
{
if (len == strlen(name)) // Exact match
{
return i; // Return the exact player on an exact match
// Otherwise if there are two players:
// Me and MeYou any time you entered Me it would find both
// And never be able to return just Me's id
}
else // Partial match
{
count++;
userid = i;
}
}
}
}
if (count != 1)
{
if (playerid != INVALID_PLAYER_ID)
{
if (count)
{
SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
}
}
userid = INVALID_PLAYER_ID;
}
return userid; // INVALID_USER_ID for bad return
}
IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}
strtok(string[],&idx,seperator = ' ')
{
new ret[128], i = 0, len = strlen(string);
while(string[idx] == seperator && idx < len) idx++;
while(string[idx] != seperator && idx < len)
{
ret[i] = string[idx];
i++;
idx++;
}
while(string[idx] == seperator && idx < len) idx++;
return ret;
}
if(strcmp(cmd, "/makeadmin", true) == 0)
{
new tmp[128], idx;
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, Orange, "Benutze: /makeadmin [ID] [Level]");
new pId = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, Orange, "Benutze: /makeadmin [ID] [Level]");
new Level = strval(tmp);
if(PlayerInfo[playerid][pAdmin] < 5)return SendClientMessage(playerid, Orange, "You are not Admin.");
if(!IsPlayerConnected(pId))return SendClientMessage(playerid, Orange, "The User is Offline.");
new pName[24], pAName[24];
PlayerInfo[pId][pAdmin] = Level;
GetPlayerName(pId, pName, 24); GetPlayerName(playerid, pAName, 24);
printf("AdmCmd: %s has promoted %s to a level %d admin.", pAName, pName, Level);
format(string, sizeof(string), " You have been promoted to a level %d admin by %s", Level, pAName);
SendClientMessage(pId, Orange, string);
format(string, sizeof(string), " You have promoted %s to a level %d admin.", pName,Level);
SendClientMessage(playerid, Orange, string);
return 1;
} -
Ich bin dagegen und der rest des Team mit sicherheit auch.
Weil man sich nach der registrierung bevor man was schreibt die Regeln durch zu lesen hat.MFG RFT
-
Moin macht das per PN aus das hier ist kein Smalltalk.
*Closed*
MFG RFT
-
-
-
if(strcmp(cmd, "/makeadmin", true) == 0)
{
new tmp[128], idx;
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, Orange, "Benutze: /makeadmin [ID] [Level]");
new pId = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, Orange, "Benutze: /makeadmin [ID] [Level]");
new Level = strval(tmp);
if(PlayerInfo[playerid][pAdmin] < 5)return SendClientMessage(playerid, Orange, "You are not Admin.");
if(!IsPlayerConnected(pId))return SendClientMessage(playerid, Orange, "The User is Offline.");
new pName[24], pAName[24];
PlayerInfo[para1][pAdmin] = Level;
GetPlayerName(pId, pName, 24); GetPlayerName(playerid, pAName, 24);
printf("AdmCmd: %s has promoted %s to a level %d admin.", pAName, pName, Level);
format(string, sizeof(string), " You have been promoted to a level %d admin by %s", Level, pAName);
SendClientMessage(pId, Orange, string);
format(string, sizeof(string), " You have promoted %s to a level %d admin.", pName,Level);
SendClientMessage(playerid, Orange, string);
return 1;
} -
Moin unter welchen Callback haste die.
new BallasCar[7];
new GrooveCar[15];
new LCNCar[10];
das ganz nach oben
GrooveCar[0] = AddStaticVehicle(522,2506.0669,-1743.7526,13.0620,356.0646,86,86); // Grove Street
GrooveCar[1] = AddStaticVehicle(579,2484.5884,-1755.1102,13.4804,3.7055,86,86); // Grove Street
GrooveCar[2] = AddStaticVehicle(579,2484.7947,-1754.6130,13.4767,358.5887,86,86); // Grove Street
GrooveCar[3] = AddStaticVehicle(560,2489.6550,-1755.2129,13.2294,359.4737,86,86); // Grove Street
GrooveCar[4] = AddStaticVehicle(560,2490.4724,-1754.8311,13.2067,359.7295,86,86); // Grove Street
GrooveCar[5] = AddStaticVehicle(560,2494.5706,-1755.0374,13.2168,0.0539,86,86); // Grove Street
GrooveCar[6] = AddStaticVehicle(424,2502.3953,-1745.7700,13.1923,90.4451,86,86); // Grove Street
GrooveCar[7] = AddStaticVehicle(522,2503.0591,-1741.5037,13.1193,86.9154,86,86); // Grove Street
GrooveCar[8] = AddStaticVehicle(411,2489.1597,-1741.0542,13.2694,91.6841,86,86); // Grove Street
GrooveCar[9] = AddStaticVehicle(468,2476.9001,-1755.9961,13.2156,5.5541,86,86); // Grove Street
GrooveCar[10]= AddStaticVehicle(468,2478.3206,-1756.0050,13.2040,4.3641,86,86); // Grove Street
GrooveCar[11]= AddStaticVehicle(559,2480.8201,-1754.9912,13.2062,356.0418,86,86); // Grove Street
GrooveCar[12]= AddStaticVehicle(567,2498.2554,-1755.0765,13.3198,0.2178,86,86); // Grove Street
GrooveCar[13]= AddStaticVehicle(567,2503.1357,-1754.9265,13.2738,8.7884,86,86); // Grove Street
GrooveCar[14]= AddStaticVehicle(565,2502.7971,-1749.4114,13.0320,92.1775,86,86); // Grove Streetdas unter OnGameModeinit
MFG RFT
-
Moin,
Setz unter OnPlayerSpawn.
TextDrawShowForPlayer(playerid, Date);und das muss so aussehen
public settime()
{
new hour,minute,second;
new string[256],year,month,day;
gettime(hour,minute,second);
if (minute <= 9)
format(string,25,"%02d:%02d",hour,minute);
TextDrawSetString(Uhr,string);
getdate(year, month, day);
format(string, sizeof string, "%02d/%s%02d/%s04%d", day, ((month < 10) ? ("0") : ("")), month, (year < 10) ? ("0") : (""), year);
TextDrawSetString(Date, string);
return 1;
}MFG RFT
-
-
Viel zu unschonend da er von der ersten Ziffer an checken will reichts wenn er nur die erste durchcheckt.
if(!inputtext[0])MFG RFT
-
Auch das geht einfacher.
if(!strcmp(cmd, "/pay", true) == 0)
{
new Parameter, String[128], pName[24];
Parameter = strtok(cmdtext, idx);
if(!Parameter[0])return SendClientMessage(playerid, GELB, "Verwendung: /pay [playerid] [Menge]");
new pId = ReturnUser(Parameter); //falls die ReturnUser Funktion exestiert
if(!IsPlayerConnected(pId))return SendClientMessage(playerid, GELB, "Info: Dieser Spieler ist offline");
Parameter = strtok(cmdtext, idx);
if(!Parameter[0])return SendClientMessage(playerid, GELB, "Verwendung: /pay [playerid] [Menge]");
new Amount = strval(Parameter);
if(Amount < 1)return SendClientMessage(playerid, Gelb, "Info: Der Betrag darf nicht unter 1$ liegen");
if(GetPlayerMoney(playerid) < Amount)return SendClientMessage(playerid, GELB, "Info: Soviel Geld besitzt du nicht");
GetPlayerName(playerid, pName, 24);
format(String, 128, "Info: Du hast von %s %d$ erhalten", pName, Amount);
SendClientMessage(pId, GELB, String);
GetPlayerName(pId, pName, 24);
format(String, 128, "Info: Du hast %s %d$ gegeben", pName, Amount);
SendClientMessage(playerid, GELB, String);
GivePlayerMoney(pId, Amount);
GivePlayerMoney(playerid, -Amount);
return true;
} -
*Closed* + Verwarnung.
MFG RFT
-
Moin,
einfach im Ordner Autostart einfügen findest du im Startmenu.
MFG RFT
-
Meine Hobbys:
RFT Tontechnik
- ich repariere die Verstärker aus der DDR Zeit aber auch neue repariere ich mit dem unterschied das die alte Technik beschaulicher ist.Kampfsport
- ThaiboxenMit Kollegen was unternehmen.
usw....usf....
MFG RFT
-
Ich hatte drauf hingewiesen diesen beleidigenden Scriptschnipsel zu entfernen ich hatte dir 2 Tage Zeit gegeben dies wurde nicht getan.
*Snip*+*Closed*+*Verwarnung*
MFG RFT
-