Deejva 36 Odesláno: 9. Leden, 2013 Share Odesláno: 9. Leden, 2013 Ahoj, máme tu kamarádovo admin script, tomu to dělal další kámoš, a nemůžeme přijít na chybu, proč je tato chyba. Jaká chyba ? Vše fungune, ale chyba je v tom, že nejde psát do CHATU ! PS: MAM TO JAKO FILTERSCRIPT #include <a_samp> #define COLOR_GREY 0xAFAFAFAA #define COLOR_RED 0xFF0000AA #define COLOR_ORANZOVA 0xFF8C00AA #define MAX_SLOTS 30 #define dcmd(%1,%2,%3) if ((!strcmp((%3)[1], #%1, true, (%2))) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return true #include <dini> #pragma tabsize 0 new Muted[MAX_SLOTS]; //new Car[MAX_SLOTS]; forward SendReportMessage(color, string[], level); enum IfAdmin { Admin, }; new PlayerAdmin[MAX_SLOTS][ifAdmin]; public OnPlayerConnect(playerid) { PlayerAdmin[playerid][Admin] = 0; return 1; } public OnPlayerRequestSpawn(playerid) { new cesta[128]; format(cesta,128,"/AS/%s.ini",meno(playerid)); if(PlayerAdmin[playerid][Admin] > 0) return true; if(!dini_Exists(cesta)) { dini_Create(cesta); dini_IntSet(cesta, "Level",0); } else { PlayerAdmin[playerid][Admin] = dini_Int(cesta, "Level"); } return 1; } public OnPlayerText(playerid, text[]) { if (Muted[playerid] == 1) { SendClientMessage(playerid,COLOR_ORANZOVA,"Nemůžeš psát protože jsi umlčený!"); } return 0; } public OnPlayerCommandText(playerid, cmdtext[]) { new string[128]; new playerid2; new cmd[32]; new tmp[32]; new idx; new name [MAX_PLAYER_NAME]; new name1 [MAX_PLAYER_NAME]; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/mute", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /mute [iD] abys umlčel daného hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); Muted[playerid2] = 1; format(string, sizeof(string), "%s je umlčený administrátorem %s",name1 ,name); SendClientMessageToAll(COLOR_ORANZOVA, string); } return 1; } if(strcmp(cmd, "/unmute", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /unmute [iD] abys odmlčel daného hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); Muted[playerid2] = 0; format(string, sizeof(string), "%s byl odmčený administrátorem %s",name1 ,name); SendClientMessageToAll(COLOR_ORANZOVA, string); } return 1; } if(strcmp(cmd, "/freeze", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /freeze [iD] abys zmrazil daného hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); TogglePlayerControllable(playerid2,0); format(string, sizeof(string), "%s zrazen administrátorem %s",name1 ,name); SendClientMessageToAll(COLOR_ORANZOVA, string); } return 1; } if(strcmp(cmd, "/unfreeze", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /unfreeze [iD] abys odmrazil daného hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); TogglePlayerControllable(playerid2,1); format(string, sizeof(string), "%s byl odmražený administrátorem %s",name1 ,name); SendClientMessageToAll(COLOR_ORANZOVA, string); } return 1; } if(strcmp(cmd, "/jail", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /jail [iD] abys zatknul daného hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { ResetPlayerWeapons(playerid2); SetPlayerVirtualWorld(playerid, 6); SetPlayerInterior(playerid, 3); SetPlayerPos(playerid2,193.7394,174.8765,1003.0234); } return 1; } if(strcmp(cmd, "/unjail", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GREY, "Použíj /unjail [iD] abys propustil daného hráče z vězení."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { SetPlayerVirtualWorld(playerid, 6); SetPlayerInterior(playerid, 3); SetPlayerPos(playerid2,208.7293,177.9966,1003.0313); } return 1; } if(strcmp(cmd, "/setscore", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /setscore [iD] [body] abys hráči přidělil body."); return 1; } playerid2 = strval(tmp); tmp = strtok(cmdtext, idx); new score = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 2) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); SetPlayerScore(playerid2, score); format(string, sizeof(string), "%s dostal %d bodů od administrátora %s.", name1, score,name); SendClientMessageToAll(COLOR_ORANZOVA, string); return 1; } else { SendClientMessage(playerid, COLOR_ORANZOVA, "Nemáš dostatečně vyskoký admin lvl"); } return 1; } if(strcmp(cmd, "/ban", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /ban [iD] abys daného zabanoval hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 2) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); format(string, sizeof(string), "%s byl zabanovaný adminisrátorem %s",name1 ,name); SendClientMessageToAll(COLOR_ORANZOVA, string); Ban( playerid2 ); } return 1; } if(strcmp(cmd, "/kick", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GREY, "Použíj /kick [iD] pro kicknutí daného hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); format(string, sizeof(string), "%s byl kicknutý administrátorem %s",name1 ,name); SendClientMessageToAll(COLOR_ORANZOVA, string); Kick( playerid2 ); } return 1; } if(strcmp(cmd, "/spec", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /spec [iD] aby jsi specoval daného hráče."); return 1; } playerid2 = strval(tmp); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, playerid2); SetPlayerInterior(playerid,GetPlayerInterior(playerid2)); } return 1; } if(strcmp(cmd, "/specoff", true) == 0) { TogglePlayerSpectating(playerid, 0); SetCameraBehindPlayer(playerid); } if(strcmp(cmd, "/report", true) == 0) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /report [informace]"); return 1; } SendClientMessage(playerid, COLOR_ORANZOVA, "Report byl úspěšně odeslán online administrátorům."); format(string, sizeof(string), "Report napsal: %s(%d): %s",name, playerid, result); SendReportMessage(COLOR_RED, string, 101); printf("[info] %s oznámil (%s)", name, result); return 1; } if(strcmp(cmd, "/admin", true) == 0) { SendClientMessage(playerid,COLOR_GREY,"_________________Admin Příkazy:____________________"); SendClientMessage(playerid,COLOR_ORANZOVA,"Nejsi administrátor, tvoje příkazy: /report /admins"); if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1) { SendClientMessage(playerid,COLOR_ORANZOVA,"Admin lvl 1:/jail /unjail /freeze /spec /specoff"); SendClientMessage(playerid,COLOR_ORANZOVA,"Admin lvl 1:/mute /unmute /unfreeze /kick"); } if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 2) { SendClientMessage(playerid,COLOR_ORANZOVA,"Admin lvl2: /setscore /ban "); } if(IsPlayerAdmin(playerid)) { SendClientMessage(playerid,COLOR_ORANZOVA,"Rcon Admin: /setadmin"); } SendClientMessage(playerid,COLOR_GREY,"________________________________________________________________"); return 1; } if(strcmp(cmd, "/setadmin", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /setadmin [iD] [level]"); return 1; } playerid2 = strval(tmp); tmp = strtok(cmdtext, idx); new level = strval(tmp); if (IsPlayerAdmin(playerid)) { GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid2, name1, sizeof(name1)); PlayerAdmin[playerid2][Admin] = level; new cesta[128]; format(cesta,128,"/AS/%s.ini",meno(playerid2)); format(string, sizeof(string), "%s byl udělen admin lvl %d od administrátora %s", name1, level,name); SendClientMessageToAll(COLOR_ORANZOVA, string); dini_IntSet(cesta,"Level",level); return 1; } else { SendClientMessage(playerid, COLOR_ORANZOVA, "Nemůžeš použít tento příkaz."); } return 1; } return 0; } public SendReportMessage(color, string[], level) { for(new i=0; i<MAX_SLOTS; i++) { if(PlayerAdmin[i][Admin] >= level || IsPlayerAdmin(i)) { SendClientMessage(i, color, string); } } } 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; } stock meno(playerid) { new m[50]; GetPlayerName(playerid,m,50); return m; } 1 Link to comment Share on other sites More sharing options...
0 Deejva 36 Odesláno: 9. Leden, 2013 Author Share Odesláno: 9. Leden, 2013 Je, ale je to upravený protože to s půlky nefungovalo + se to neukládalo 1 Link to comment Share on other sites More sharing options...
0 rhsCZ 19 Odesláno: 9. Leden, 2013 Share Odesláno: 9. Leden, 2013 omg tot může udělat jen k***t public OnPlayerText(playerid, text[]) { if (Muted[playerid] == 1) { SendClientMessage(playerid,COLOR_ORANZOVA,"Nemůžeš psát protože jsi umlčený!"); } return 0; } return 0 u tohoto callbacku je že se text nepošle takhle: public OnPlayerText(playerid, text[]) { if (Muted[playerid] == 1) { SendClientMessage(playerid,COLOR_ORANZOVA,"Nemůžeš psát protože jsi umlčený!"); return 0; } return 1; } takhle je to dobře Link to comment Share on other sites More sharing options...
0 Deejva 36 Odesláno: 10. Leden, 2013 Author Share Odesláno: 10. Leden, 2013 Fuguje, díky moc Link to comment Share on other sites More sharing options...
0 Deleted User 295 Odesláno: 11. Leden, 2013 Share Odesláno: 11. Leden, 2013 Doplneno oznaceni tematu Tag [TAG] uz se nepouziva! Priste vyber pro tema oznaceni! Diky. Téma bylo uzavřeno, problém byl vyřešen. Toto téma bylo uzavřeno, jelikož zakladatel tématu již problém vyřešil. Pokud máte další dotazy ohledně tohoto tématu, založte si téma nové. Link to comment Share on other sites More sharing options...
Dotaz
Deejva 36
Ahoj, máme tu kamarádovo admin script, tomu to dělal další kámoš, a nemůžeme přijít na chybu, proč je tato chyba. Jaká chyba ? Vše fungune, ale chyba je v tom, že nejde psát do CHATU !
PS: MAM TO JAKO FILTERSCRIPT
Link to comment
Share on other sites
4 odpovědí na tuto otázku
Recommended Posts