xD manchmal komme ich einfach nicht auf die einfachsten Lösungen danke schön
-closed-
Beiträge von DeathlyPhil
-
-
Hi,
Ich würde gerne die Koordinaten aus dem Command:
if (strcmp(cmd, "/zone", true) == 0)
{
new Float:X,Float:Y,Float:Z;
SetTimerEx("AntiZombieZone",100,1,"i",playerid);
GetPlayerPos(playerid, X, Y, Z);
CreateObject(16370, X, Y, Z, 0, 0, 0);
}
return 1;
}
}[/pwn]für den SetTimerEx bei IsPlayerInRangeOfPoint
public AntiZombieZone(playerid)
{
if(Spieler[playerid][team] == 3)
{
if(IsPlayerInRangeOfPoint(playerid,10.0, X, Y, Z)
{
SendClientMessage(playerid,COLOR_YELLOW," Es geht :P");
return 1;
}
}
return 1;
}
übernehmen.1.geht das überhaupt?
2.Und wenn ja wie mache ich das?ALso von Command die X;Y;Z Koords für den Timer für IsPlayerInRangeOfPoint dadrinne verwenden.
hoffe man versteht was ich meine
-
//Edit seine Idee geht nicht.
Ich hab Jetzt Wieder SetTimerEx drinnen nur wie mache ich das , dass es für alle seiten geht also nicht x,y,z sondern x,y,x,y -
Jetzt hab ich wieder das Problem dass nur Id 0 gekickt wird
-
Geht leider auch nicht ich hab das eine umgeändert da man ja alle 4 Seiten braucht aber es geht immer noch net
public check(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid, x, y, z);
if(x >= minX && x <= maxX && y >= minY && y <= maxY)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerAdmin(i))
{
if(Spieler[i][eingeloggt] == 1)
{
if(IsPlayerInArea(i,-2989.536, 1763.359, 2977.858, 2989.536) || IsPlayerInArea(i,-2989.536, -2942.825, 2977.858, -864.1628) || IsPlayerInArea(i,-1237.855, -2942.825, 2977.858, 2989.536)) //abc
{
SendClientMessage(i,COLOR_RED, " CHEATER AN DIE WAND !!!!");
Kick(i);
}
}
}
}
}
return 1;
}Oder ist das falsch?
-
Hi,
Ich hab es so gemacht dass wenn jemand in ein Ganggebiet geht, gekickt wird . Das geht ja auch alles nur ich habs dann SetTimerEx probiert aber ich werde nich gekickt wenn ich in das ganggebiet reingehe hier mal das Script: (Nur wenn ich Id 0 hab geht es :P)forward check(playerid, Float:o_x, Float:o_y, Float:o_z);
Unter OnPlayerSpawn
SetPlayerWorldBounds(playerid, -1237.855, -2977.858, 1611.547, -735.7062);
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetTimerEx("check",100,true,"ai",x,y,z);public check(playerid, Float:o_x, Float:o_y, Float:o_z)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerAdmin(i))
{
if(Spieler[i][eingeloggt] == 1)
{
if(IsPlayerInArea(i,-2989.536, 1763.359, 2977.858, 2989.536) || IsPlayerInArea(i,-2989.536, -2942.825, 2977.858, -864.1628) || IsPlayerInArea(i,-1237.855, -2942.825, 2977.858, 2989.536)) //abc
{
SendClientMessage(i,COLOR_RED, " Du wurdest gekickt!");
Kick(i);
}
}
}
}
return 1;
}Ich hoffe ihr könnt mir helfen
//Edit Ich hatte vergessen zu erwähnen dass ich vorher SetTimer hatte und es dann nur mit Id0 ging bei ExTimer geht es auch nicht mit id 0 -
Hab ich auch schon probiert geht leider auch nicht
Ich habe es wie gesagt auch schon mit Timern probiert ging leider auch nicht. -
Hi,
Also erst mal mein Problem :
Ich will das der Bot nur dann connected wenn ein neuer Spieler mit dem Team ? SPAWNT also nicht beim Connecten sondern beim Spawnen.
Ich hatte es mit einem Timer versucht aber das If wird ignoriert nur die Zeit bleibt erhalten : Also bot spawnt nach 14Sekunden egal ob der aus dem Team da ist oder nicht.1 Frage: Gibt es ein Befehl womit ein Bot auch wieder disconnectet werden kann also so in der Art wie DisConnect(playerid) ?
//Edit die eine Frage hab ich rausgenommen hatte sich erledigt nur die andere bleibt noch offen
So ich hoffe es ist verständlich
-
Stimmt ja überhaupt man bin ich blöd Danke dir
-closed-
-
Hier :
forward check();Dann unter OnPlayerSpawn: (Hab ich nach gaanz unten gemacht)
SetTimer("check",1000,1);public check()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerAdmin(i))
{
if(IsPlayerInArea(i,583.8938, -2078.662, 1074.365, -1681.614))
{
return 1;
}
if(IsPlayerInArea(i,-2989.536, 1763.359, 2977.858, 2989.536) || IsPlayerInArea(i,-2989.536, -2942.825, 2977.858, -864.1628) || IsPlayerInArea(i,-1237.855, -2942.825, 2977.858, 2989.536)) //abc
{
SendClientMessage(i,COLOR_RED, " CHEATER WEG !!!!");
Kick(i);
}
}
}
return 1;
}
Die public davonUnd der stock stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
{
new Float:pX,Float:pY,Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
else return 0;
}
//Edit hier der Login DIalog falls du ihn brauchst
case DIALOG_LOGIN: // ID Login
{
if(!strlen(inputtext) || strcmp(inputtext, " ", false) == 0)//
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Login","Abrechen");
return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
}
if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
{
Spieler[playerid][team] = 0;
Spieler[playerid][admin] = 0;
Spieler[playerid][score] = 0;
Spieler[playerid][skin] = 0;
Spieler[playerid][pwaffen] = 0;
Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
}
else
{
SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
}
}
wenn du noch mehr brauchst sag es nur
//EDIT so sry war 3 Ostsee, hab was dazu gemacht ich hatte eine Zeile vergessen -
Hi,
Ich hab 3 Gangzonen gemacht bei denen wenn jemand sie betritt man gekickt wird.
Wenn ich jetzt den Server starte dann kommt entweder der Login oder Registrierungsdialog.
So wenn ich das Erste mal auf den Server gehe werde ich nicht gekickt.
Wenn ich den Server anlasse und wieder raufgehe werde ich beim loginDialog gekickt weil der Login dialog in einer Kickzone angezeigt wird.(Bei ersten aber auch und da passiert es nicht)Hat jemand eine Idee wie ich das Fixen kann?
//EDIT: Wenn Script benötigt poste ich den Teil gerne. -
Hi,
bei mir geht es nicht also kein Bot erscheint
Hier mal das Script :
#include <a_npc>// name der recordeten datei (im beispiel war es CARBOT oder ZIVIBOT)
#define RECORDING "StartBot"
// Record typ, 1 = in einen fahrzeug, 2 = zu fuß
#define RECORDING_TYPE 1main()
{
}public OnRecordingPlaybackEnd()
StartRecordingPlayback(RECORDING_TYPE, RECORDING);public OnNPCEnterVehicle(vehicleid, seatid)
StartRecordingPlayback(RECORDING_TYPE, RECORDING);public OnNPCExitVehicle()
StopRecordingPlayback();#include "a_npc"
new STARTBOTCAR
ConnectNPC("CARBOT","StartBot");// erstes carbot steht für den namen hier im script, 2tes wie der record heißt!!!!
STARTBOTCAR = CreateVehicle(501, 2000.0, 2000.0, 2000.0, 7.0, 0, 0, -1);// im prinzip eig egal wo man die hinspawnt, die weden später geportet denke ich (war zumindest so)if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid, botname, sizeof(botname));
if(!strcmp(botname, "StartBot", true))
{
PutPlayerInVehicle(playerid, STARTBOTCAR, 0);
}
return 1;
}und server.cfg
echo Executing Server Config...
lanmode 1
rcon_password record
maxplayers 50
port 7777
hostname SA-MP 0.3 Server
gamemode0 Z
filterscripts
announce 0
query 1
weburl http://www.sa-mp.com
maxnpc
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000pls helft mir
-
Hi,
Ich hab ein problem und zwar hab ich ein Motorsystem wo man den Motor starten muss, aber wenn man dabei rausgezogen wird ist man logischer weise dann noch gefreezt.Nun will ich
if(!ispassenger)
{
TogglePlayerControllable(playerid,0);
return 1;
}so machen, nur gilt dies auch für den Fahrer? Oder könnte man das anders machen? Oder aber brauch man für den Fahrer noch etwas extra?
Danke schonmal
-
nope ich mach selfmade script hab momentan 1300Zeilen falls es wichtig ist (Ich weiß ist nicht viel aber ich hab vor 5tagen angefange und bin Anfänger xD)
-
Ich hab die Botzahl auf 10 erhhöt bloß, da kommt immer noch keiner
-
Cool dank dir 1000Tausend DANK!
-closed-
-
Warum kommt mein Bot nicht auf meinen Testserver? Keine Errors bloß er kommt net:
#include "a_npc"
new Bus;ConnectNPC("BOT","BOT");// erstes carbot steht für den namen hier im script, 2tes wie der record heißt!!!!
Bus = CreateVehicle(501, 2000.0, 2000.0, 2000.0, 7.0, 0, 0, -1);if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid, botname, sizeof(botname));
if(!strcmp(botname, "Bus", true))
{
PutPlayerInVehicle(playerid, Bus, 0);
return 1;
}
}#include <a_npc>
// name der recordeten datei (im beispiel war es CARBOT oder ZIVIBOT)
#define RECORDING "BOT"
// Record typ, 1 = in einen fahrzeug, 2 = zu fuß
#define RECORDING_TYPE 1main()
{
}public OnRecordingPlaybackEnd()
StartRecordingPlayback(RECORDING_TYPE, RECORDING);public OnNPCEnterVehicle(vehicleid, seatid)
StartRecordingPlayback(RECORDING_TYPE, RECORDING);public OnNPCExitVehicle()
StopRecordingPlayback();pls helft mir
-
Danke ich habs
-
Hi,
Ich möchte gerne ein /kick /ban system für Admins alleine versuchen ich hab mir mal von Gf das angeguckt und könnte mir jemand ein paar schritte davonb genauer erklären tmp = ? strtok = ? idx = ?if(strcmp(cmd, "/kick", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /kick [playerid/PartOfName] [reason]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
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_GRAD2, "USAGE: /kick [playerid/PartOfName] [reason]");
return 1;
}
new year, month,day;
getdate(year, month, day);
format(string, sizeof(string), "AdmCmd: %s was kicked by %s, reason: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
KickLog(string);
Kick(giveplayerid);
format(string, sizeof(string), "AdmCmd: %s was kicked by %s, reason: %s", giveplayer, sendername, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
return 1;
}
}
}
else
{
format(string, sizeof(string), " %d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}Danke schonma.
P.S Ja ich hab Sufu benutzt nur meisstens bin ich zu blöd dafür Wenn ihr n Tutorial dafür habt oder etwas ähnliches mit erklärung pls posten Danke
-
Und dann einfach die Ecke Punkte eintragen?
P.S Danke dir