ayalon2016

Fórumozó
  • Hozzászólások

    7
  • Csatlakozott

  • Utoljára aktív

Közösségi hírnév

0 Újonc

ayalon2016 felhasználóról

  • Rang
    Újonc

Egyéb

  • Játékos név
    [SA]DarkLord
  • Skype
    No
  • Weboldal
    darkcity2.webnode.hu
  1. Sziasztok (KEZDŐ VAGYOK) Sziasztok az lenne a kérdésem hogy miért irja errort a returnál és ,hogy lehetne kijavítani!:error 010: invalid function or declaration public OnPlayerSpawn(playerid) SetPlayerPos(playerid,1076.1339,-1620.3927,20.4573,92.0244); return 1; TextDrawShowForPlayer(playerid, Textdraw0); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw2); GivePlayerMoney(playerid,0); // A pénz helyére írd azt az összeget, amelyet szeretnéd, hogy spawnoláskor megkapapsz! TogglePlayerClock(playerid,1); GivePlayerWeapon(playerid, 22, 200); GivePlayerWeapon(playerid, 29, 200); GivePlayerWeapon(playerid, 30, 200); SendClientMessage(playerid, COLOR_WHITE, "{FFAF00}[SPAWN]: {3333EE}Sikeresen {FFFF00}lespawnoltál!"); SetPlayerColor(0, 0x00BFFFAA); SetPlayerColor(1, 0x24FF0AB9); SetPlayerColor(2, 0xff0000AA); SetPlayerColor(3, 0xf5b105AA); SetPlayerColor(4, 0xa6d622AA); SetPlayerColor(5, 0x1559adAA); SetPlayerColor(6, 0x10ad61AA); SetPlayerColor(7, 0xc22ebdAA); SetPlayerColor(8, 0x150eebAA); SetPlayerColor(9, 0x6e520aAA); SetPlayerColor(10, 0x6d529eAA); SetPlayerColor(11, 0xfafafaAA); SetPlayerColor(12, 0xe0d72aAA); SetPlayerColor(13, 0x5fc273AA); SetPlayerColor(14, 0x5878d6AA); SetPlayerColor(15, 0xcc5d4aAA); SetPlayerColor(16, 0x31898cAA); SetPlayerColor(17, 0x0a8ff5AA); SetPlayerColor(18, 0xe609c5AA); SetPlayerColor(19, 0xf7ff08AA); SetPlayerColor(20, 0x180c78AA); SetPlayerColor(21, 0x7d8566AA); SetPlayerColor(22, 0x33160bAA); SetPlayerColor(23, 0x031a1aAA); SetPlayerColor(24, 0xb89847AA); SetPlayerColor(25, 0x821616AA); SetPlayerColor(26, 0x25072bAA); SetPlayerColor(27, 0x08fae6AA); SetPlayerColor(28, 0xb55bc7AA); SetPlayerColor(29, 0x2f3d3cAA); SetPlayerColor(30, 0x0808f2AA); SpawnSkin = GetPlayerSkin(playerid); SpawnColor = GetPlayerColor(playerid); PlayerData[playerid][PoliceOfficer] = 0; }
  2. Sziaztok a segítségetekre lenne szükségem ! (HÁZRENDSZER) Valaki nem tudna küldeni egy házrendszert ami működik a NEXT GEN gamemodehoz (STUNT szerver)! Már mindent probáltam de egyse ment ! Ami minimumezeket tartalmazza: /createhouse /buyhouse /gotohouse /sellhouse Köszönöm előre a segítségeteket!
  3. Szia Az lenne a kérdésem amikor megveszek egy házat nem menti le regiztrácio rendszer megy a házrendszerbe playeracount.txt elmenti accountomat playerinfo.txt vannak a házak amit ott lehet szerkeszteni csak ott a nevem helyett nobody van :( Remélem tudsz segiteni ha nem tudsz akkor is reagálj pls.
  4. Már jó a zárójel volt a gond sorry amugy mindent köszönöm! De azt megtudnád mondani vagy megtudnátok h a játékosokok minek tudnak több házat megvenni ? Ja és még egy gotoh rendszert hozzá rakni nem tudnátok abba segiteni? És szerver ujrainditás után nem menti le az adatokat.
  5. Ilyenkor mivan XD?
  6. Kérem Segitsenek
  7. Sziasztok Ezt irja a ház rendszer amikor le akarom generálni. error 029: invalid expression, assumed zero Kód: // [FS]Property-System by =>Sandra<= // Magyarosítást és kisebb átalakításokat készítette: Adamo(adams94) #include <a_samp> #define MAX_PROPERTIES 100 #define MAX_PROPERTIES_PER_PLAYER 4 #define UNBUYABLETIME 15 #define ENABLE_LOGIN_SYSTEM 0 #define ENABLE_MAP_ICON_STREAMER 1 #define REGISTER_COMMAND "/register" #define LOGIN_COMMAND "/login" new PropertiesAmount; new MP; enum propinfo { PropName[64], Float:PropX, Float:PropY, Float:PropZ, PropIsBought, PropUnbuyableTime, PropOwner[MAX_PLAYER_NAME], PropValue, PropEarning, PickupNr, } new PropInfo[MAX_PROPERTIES][propinfo]; new PlayerProps[MAX_PLAYERS]; new EarningsForPlayer[MAX_PLAYERS]; new Logged[MAX_PLAYERS]; public OnFilterScriptInit() { LoadProperties(); MP = GetMaxPlayers(); for(new i; i<MP; i++) { if(IsPlayerConnected(i)) { new pName[MAX_PLAYER_NAME]; GetPlayerName(i, pName, MAX_PLAYER_NAME); for(new propid; propid < PropertiesAmount; propid++) { if(PropInfo[propid][PropIsBought] == 1) { if(strcmp(PropInfo[propid][PropOwner], pName, true)==0) { EarningsForPlayer += PropInfo[propid][PropEarning]; PlayerProps++; } } } } } SetTimer("UpdateUnbuyableTime", 60000, 1); #if ENABLE_MAP_ICON_STREAMER == 1 SetTimer("MapIconStreamer", 500, 1); #endif SetTimer("PropertyPayout", 60000, 1); return 1; } public OnFilterScriptExit() { SaveProperties(); return 1; } public OnPlayerConnect(playerid) { PlayerProps[playerid] = 0; Logged[playerid] = 0; EarningsForPlayer[playerid] = 0; new pName[MAX_PLAYER_NAME]; GetPlayerName(playerid, pName, MAX_PLAYER_NAME); for(new propid; propid < PropertiesAmount; propid++) { if(PropInfo[propid][PropIsBought] == 1) { if(strcmp(PropInfo[propid][PropOwner], pName, true)==0) { EarningsForPlayer[playerid] += PropInfo[propid][PropEarning]; PlayerProps[playerid]++; } } } #if ENABLE_LOGIN_SYSTEM == 0 if(PlayerProps[playerid] > 0) { new str[128]; format(str, 128, "Van %d házad. /myh ezzel a parancsal megnézheted.", PlayerProps[playerid]); SendClientMessage(playerid, 0x99FF66AA, str); } #endif return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256],idx;) cmd = strtok(cmdtext, idx); //------------------------------------------------------------------------------ if(strcmp(cmd, "/helphouse", true)==0 || strcmp(cmd, "/helph", true)==0) { SendClientMessage(playerid, 0xFFFF00AA, "|=========================================================|"); #if ENABLE_LOGIN_SYSTEM == 1 format(str, 128, "%s - Regisztráció, hogy legyenek saját házaid.", REGISTER_COMMAND); SendClientMessage(playerid, 0x66CCFFAA, str); format(str, 128, "%s - Bejelentkezés.", LOGIN_COMMAND); SendClientMessage(playerid, 0x66CCFFAA, str); #endif SendClientMessage(playerid, 0x33AA33AA, "/buyhouse, /buyh - Házvásárlás."); SendClientMessage(playerid, 0x33AA33AA, "/sellhouse, /sellh - Házeladás."); SendClientMessage(playerid, 0x33AA33AA, "/myhouse, /myh - Házaid megtekintése."); // if(IsPlayerAdmin(playerid)) // { // SendClientMessage(playerid, 0x66CCFFAA, "/sellallproperties [Admin Only] ==>> To sell all properties for all players"); // } SendClientMessage(playerid, 0xFFFF00AA, "|=========================================================|"); return 1; } //------------------------------------------------------------------------------ if(strcmp(cmd, "/buyhouse", true)==0 || strcmp(cmd, "/buyh", true)==0) { new str[128]; #if ENABLE_LOGIN_SYSTEM == 1 if(Logged[playerid] == 0) { format(str, 128, "Elöbb jelentkezbe: %s", LOGIN_COMMAND); SendClientMessage(playerid, 0xFF0000AA, str); return 1; } #endif new propid = IsPlayerNearProperty(playerid); if(propid == -1) { SendClientMessage(playerid, 0xFF0000AA, "Nincs ház a közelben!"); return 1; } if(PlayerProps[playerid] == MAX_PROPERTIES_PER_PLAYER) { format(str, 128, "Neked már van %d házad, nem tudsz többet venni!!", PlayerProps[playerid]); SendClientMessage(playerid, 0xFF0000AA, str); return 1; } if(PropInfo[propid][PropIsBought] == 1) { new ownerid = GetPlayerID(PropInfo[propid][PropOwner]); if(ownerid == playerid) { SendClientMessage(playerid, 0xFF0000AA, "Ez a ház már a tied!"); return 1; } else { if(PropInfo[propid][PropUnbuyableTime] > 0) { format(str, 128, "Ez a ház %s tulajdona!. Várj %d percet és elárverezik!", PropInfo[propid][PropOwner], PropInfo[propid][PropUnbuyableTime]); SendClientMessage(playerid, 0xFF0000AA, str); return 1; } } } if(GetPlayerMoney(playerid) < PropInfo[propid][PropValue]) { format(str, 128, "Nincs elég pénzed!(%d$ szükséges!)", PropInfo[propid][PropValue]); SendClientMessage(playerid, 0xFF0000AA, str); return 1; } new pName[MAX_PLAYER_NAME]; GetPlayerName(playerid, pName, sizeof(pName)); if(PropInfo[propid][PropIsBought] && PropInfo[propid][PropUnbuyableTime] == 0) { new ownerid = GetPlayerID(PropInfo[propid][PropOwner]); format(str, 128, "%s megvette a házad! \"%s\". Te 50százalék részvényt kaptál!(%d$)", pName, PropInfo[propid][PropName], (PropInfo[propid][PropValue]/2)); GivePlayerMoney(ownerid, (PropInfo[propid][PropValue]/2)); SendClientMessage(ownerid, 0xFFFF00AA, str); PlayerProps[ownerid]--; } PropInfo[propid][PropOwner] = pName; PropInfo[propid][PropIsBought] = 1; PropInfo[propid][PropUnbuyableTime] = UNBUYABLETIME; EarningsForPlayer[playerid] += PropInfo[propid][PropEarning]; GivePlayerMoney(playerid, (0-PropInfo[propid][PropValue])); format(str, 128, "Megvetted ezt a házat: \"%s\".Ennyiért: %d$.", PropInfo[propid][PropName], PropInfo[propid][PropValue]); SendClientMessage(playerid, 0xFFFF00AA, str); format(str, 128, "%s megvette ezt a házat: \"%s\".", pName, PropInfo[propid][PropName]); SendClientMessageToAllEx(playerid, 0xFFFF00AA, str); PlayerProps[playerid]++; return 1; } //------------------------------------------------------------------------------ if(strcmp(cmd, "/sellhouse", true) == 0 || strcmp(cmd, "/sellh", true) == 0) { new str[128]; #if ENABLE_LOGIN_SYSTEM == 1 if(Logged[playerid] == 0) { format(str, 128, "Elöbb jelentkezbe: %s", LOGIN_COMMAND); SendClientMessage(playerid, 0xFF0000AA, str); return 1; } #endif new propid = IsPlayerNearProperty(playerid); if(propid == -1) { SendClientMessage(playerid, 0xFF0000AA, "Nincs ház a közelben!"); return 1; } if(PropInfo[propid][PropIsBought] == 1) { new ownerid = GetPlayerID(PropInfo[propid][PropOwner]); if(ownerid != playerid) { SendClientMessage(playerid, 0xFF0000AA, "Ez a ház nem a tied!"); return 1; } } new pName[MAX_PLAYER_NAME]; GetPlayerName(playerid, pName, sizeof(pName)); format(PropInfo[propid][PropOwner], MAX_PLAYER_NAME, "Nobody"); PropInfo[propid][PropIsBought] = 0; PropInfo[propid][PropUnbuyableTime] = 0; GivePlayerMoney(playerid, (PropInfo[propid][PropValue]/2)); format(str, 128, "Eladtad ezt a házad: \"%s\", ennyiért: %d$", PropInfo[propid][PropName], PropInfo[propid][PropValue]/2); SendClientMessage(playerid, 0xFFFF00AA, str); format(str, 128, "%s eladta ezt a házat: \"%s\".", pName, PropInfo[propid][PropName]); SendClientMessageToAllEx(playerid, 0xFFFF00AA, str); PlayerProps[playerid]--; EarningsForPlayer[playerid] -= PropInfo[propid][PropEarning]; return 1; } //------------------------------------------------------------------------------ if(strcmp(cmd, "/myhouse", true) == 0 || strcmp(cmd, "/myh", true) == 0) { new str[128], ownerid; #if ENABLE_LOGIN_SYSTEM == 1 if(Logged[playerid] == 0) { format(str, 128, "Elöbb jelentkezbe: %s", LOGIN_COMMAND); SendClientMessage(playerid, 0xFF0000AA, str); return 1; } #endif if(PlayerProps[playerid] == 0) { SendClientMessage(playerid, 0xFF0000AA, "Nincs házad!"); return 1; } format(str, 128, "|================ Van %d házad: =================|", PlayerProps[playerid]); SendClientMessage(playerid, 0x99FF66AA, str); for(new propid; propid < PropertiesAmount; propid++) { if(PropInfo[propid][PropIsBought] == 1) { ownerid = GetPlayerID(PropInfo[propid][PropOwner]); if(ownerid == playerid) { format(str, 128, "Neve: \"%s\" Értéke: %d$ Bevétel: %d$", PropInfo[propid][PropName], PropInfo[propid][PropValue], PropInfo[propid][PropEarning]); SendClientMessage(playerid, 0x99FF66AA, str); } } } SendClientMessage(playerid, 0x99FF66AA, "|============================================|"); return 1; } //------------------------------------------------------------------------------ #if ENABLE_LOGIN_SYSTEM == 1 if(strcmp(cmd, REGISTER_COMMAND, true) == 0) { new str[128]; if(Logged[playerid] == 1) return SendClientMessage(playerid, 0xFF0000AA, "Te már bevagy jelentkezve!"); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { format(str, 128, "%s <jelszó>", REGISTER_COMMAND); SendClientMessage(playerid, 0xAFAFAFAA, str); return 1; } // if(strlen(tmp) < 5) return SendClientMessage(playerid, 0xFF9966AA, "Password too short! At least 5 characters."); // if(strlen(tmp) > 20) return SendClientMessage(playerid, 0xFF9966AA, "Password too long! Max 20 characters."); new pName[MAX_PLAYER_NAME], pass; GetPlayerName(playerid, pName, MAX_PLAYER_NAME); pass = dini_Int("PropertySystem/PlayerAccounts.txt", pName); if(pass == 0) { dini_IntSet("PropertySystem/PlayerAccounts.txt", pName, encodepass(tmp)); Logged[playerid] = 1; format(str, 128, "Regisztráltál!. Mikor ujra jösz: \"%s %s\"", LOGIN_COMMAND, tmp); SendClientMessage(playerid, 0x99FF66AA, str); } else { format(str, 128, "Ez a név már regisztrált!"); SendClientMessage(playerid, 0xFF9966AA, str); } return 1; } //------------------------------------------------------------------------------ if(strcmp(cmd, LOGIN_COMMAND, true) == 0) { new str[128]; if(Logged[playerid] == 1) return SendClientMessage(playerid, 0xFF0000AA, "Te már bevagy jelentkezve!"); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { format(str, 128, "%s <jelszó>", LOGIN_COMMAND); SendClientMessage(playerid, 0xAFAFAFAA, str); return 1; } new pName[MAX_PLAYER_NAME], pass; GetPlayerName(playerid, pName, MAX_PLAYER_NAME); pass = dini_Int("PropertySystem/PlayerAccounts.txt", pName); if(pass == 0) { format(str, 128, "Te még nem regisztráltál! Regisztrálj: %s", REGISTER_COMMAND); SendClientMessage(playerid, 0xFF0000AA, str); } else { if(pass == encodepass(tmp)) { Logged[playerid] = 1; SendClientMessage(playerid, 0x99FF66AA, "Bejelentkeztél! Tudsz házat venni és eladni!"); } else { SendClientMessage(playerid, 0xFF0000AA, "Hibás jelszó!"); } } #if ENABLE_LOGIN_SYSTEM == 1 if(PlayerProps[playerid] > 0) { format(str, 128, "Van %d házad. /myh ezzel a parancsal megnézheted.", PlayerProps[playerid]); SendClientMessage(playerid, 0x99FF66AA, str); } #endif return 1; } #endif //------------------------------------------------------------------------------ if(strcmp(cmd, "/sellallproperties", true)==0) { // if(IsPlayerAdmin(playerid)) // { for(new propid; propid<PropertiesAmount; propid++) { format(PropInfo[propid][PropOwner], MAX_PLAYER_NAME, "Nobody"); PropInfo[propid][PropIsBought] = 0; PropInfo[propid][PropUnbuyableTime] = 0; } for(new i; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { PlayerProps = 0; } } new str[128], pName[24]; GetPlayerName(playerid, pName, 24); format(str, 128, "Az admin: %s eldata az összes házat!", pName); SendClientMessageToAll(0xFFCC66AA, str); // } return 1; } return 0; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ public OnPlayerPickUpPickup(playerid, pickupid) { new propid = -1; for(new id; id<MAX_PROPERTIES; id++) { if(PropInfo[id][PickupNr] == pickupid) { propid = id; break; } } if(propid != -1) { new str[128]; format(str, 128, "~g~\"%s\"~n~~r~'Ara: ~y~%d$~n~~r~Kereset: ~y~%d$~n~~r~Tulajdonos: ~y~%s ~n~~w~(~y~nobody~w~ = senki)", PropInfo[propid][PropName], PropInfo[propid][PropValue], PropInfo[propid][PropEarning], PropInfo[propid][PropOwner]); GameTextForPlayer(playerid, str, 6000, 3); } return 1; } stock LoadProperties() { if(fexist("PropertySystem/PropertyInfo.txt")) { CountProperties(); new Argument[9][70]; new entry[256], BoughtProps; new File: propfile = fopen("PropertySystem/PropertyInfo.txt", io_read); if (propfile) { for(new id; id<PropertiesAmount; id++) { fread(propfile, entry); split(entry, Argument, ','); format(PropInfo[id][PropName], 64, "%s", Argument[0]); PropInfo[id][PropX] = floatstr(Argument[1]); PropInfo[id][PropY] = floatstr(Argument[2]); PropInfo[id][PropZ] = floatstr(Argument[3]); PropInfo[id][PropValue] = strval(Argument[4]); PropInfo[id][PropEarning] = strval(Argument[5]); format(PropInfo[id][PropOwner], MAX_PLAYER_NAME, "%s", Argument[6]); PropInfo[id][PropIsBought] = strval(Argument[7]); PropInfo[id][PropUnbuyableTime] = strval(Argument[8]); PropInfo[id][PickupNr] = CreatePickup(1273, 1, PropInfo[id][PropX], PropInfo[id][PropY], PropInfo[id][PropZ]); if(PropInfo[id][PropIsBought] == 1) { BoughtProps++; } } fclose(propfile); // printf("==================================="); // printf("|| Created %d Properties ||", PropertiesAmount); // printf("||%d of the properties are bought||", BoughtProps); // printf("==================================="); } } } stock SaveProperties() { new entry[256]; new File: propfile = fopen("PropertySystem/PropertyInfo.txt", io_write); for(new id; id<PropertiesAmount; id++) { format(entry, 128, "%s,%.2f,%.2f,%.2f,%d,%d,%s,%d,%d \r\n",PropInfo[id][PropName], PropInfo[id][PropX], PropInfo[id][PropY], PropInfo[id][PropZ], PropInfo[id][PropValue], PropInfo[id][PropEarning], PropInfo[id][PropOwner], PropInfo[id][PropIsBought], PropInfo[id][PropUnbuyableTime]); fwrite(propfile, entry); } // printf("Saved %d Properties!", PropertiesAmount); fclose(propfile); } forward split(const strsrc[], strdest[][], delimiter); public split(const strsrc[], strdest[][], delimiter) { new i, li; new aNum; new len; while(i <= strlen(strsrc)){ if(strsrc==delimiter || i==strlen(strsrc)){ len = strmid(strdest[aNum], strsrc, li, i, 128); strdest[aNum][len] = 0; li = i+1; aNum++; } i++; } return 1; } stock CountProperties() { new entry[256]; new File: propfile = fopen("PropertySystem/PropertyInfo.txt", io_read); while(fread(propfile, entry, 256)) { PropertiesAmount++; } fclose(propfile); } forward IsPlayerNearProperty(playerid); public IsPlayerNearProperty(playerid) { new Float:Distance; for(new prop; prop<PropertiesAmount; prop++) { Distance = GetDistanceToProperty(playerid, prop); if(Distance < 1.0) { return prop; } } return -1; } forward Float:GetDistanceToProperty(playerid, Property); public Float:GetDistanceToProperty(playerid, Property) { new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2; GetPlayerPos(playerid,x1,y1,z1); x2 = PropInfo[Property][PropX]; y2 = PropInfo[Property][PropY]; z2 = PropInfo[Property][PropZ]; return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2)); } stock GetPlayerID(const Name[]) { for(new i; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { new pName[MAX_PLAYER_NAME]; GetPlayerName(i, pName, sizeof(pName)); if(strcmp(Name, pName, true)==0) { return i; } } } return -1; } stock SendClientMessageToAllEx(exeption, color, const message[]) { for(new i; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(i != exeption) { SendClientMessage(i, color, message); } } } } forward UpdateUnbuyableTime(); public UpdateUnbuyableTime() { for(new propid; propid<PropertiesAmount; propid++) { if(PropInfo[propid][PropIsBought] == 1) { if(PropInfo[propid][PropUnbuyableTime] > 0) { PropInfo[propid][PropUnbuyableTime]--; } } } } stock encodepass(buf[]) { new length=strlen(buf); new s1 = 1; new s2 = 0; new n; for (n=0; n<length; n++) { s1 = (s1 + buf[n]) % 65521; s2 = (s2 + s1) % 65521; } return (s2 << 16) + s1; } forward MapIconStreamer(); public MapIconStreamer() { for(new i; i<MP; i++) { if(IsPlayerConnected(i)) { new Float:SmallestDistance = 99999.9; new CP, Float:OldDistance; for(new propid; propid<PropertiesAmount; propid++) { OldDistance = GetDistanceToProperty(i, propid); if(OldDistance < SmallestDistance) { SmallestDistance = OldDistance; CP = propid; } } RemovePlayerMapIcon(i, 31); if(PropInfo[CP][PropIsBought] == 1) { SetPlayerMapIcon(i, 31, PropInfo[CP][PropX], PropInfo[CP][PropY], PropInfo[CP][PropZ], 32, 0); } else { SetPlayerMapIcon(i, 31, PropInfo[CP][PropX], PropInfo[CP][PropY], PropInfo[CP][PropZ], 31, 0); } } } } forward PropertyPayout(); public PropertyPayout() { new str[64]; for(new i; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerProps > 0) { GivePlayerMoney(i, EarningsForPlayer); format(str, 64, "Házaid bevétele: %d$", EarningsForPlayer); SendClientMessage(i, 0x99FF66AA, str); } } } } stock strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }