so hab hier mal nen Filterscript hat aber nur ne kmh anzeige also ganz einfach
hier
Beiträge von don456
-
-
Naja egal muss ich mir ne andere Lösung suchen
Edit: habe gerade damit angefangen Ladmin zu testen es funktionier mit dem login systeme besser werde das woll nehmen und übersetzen poste es dann hier im forum wenn ich es fertig habe
-
Du brauchst nen FTp programm um es erstmal hochzuladen zB. Filezilla
Damit lädst du deine Datein vom board auf deine Seite hoch.
Wenn du das gemacht hast gehst du auf deine Hp und schreibst hinter den link install.php Beispiel: xyz.funpic.de/install.php(ich weiß nicht genau o es beim WBB install.php heißt) -
hier ist nahezu unveränder
-
mit welchem protokol habt ihr die ports freigegeben?
Probier mal TCP oder UDP als protokol
Bei meinem Alten router wars TCP was mit samp gefunzt hat bei meinem neuen geht nur UDP
-
Wie gesagt ist das das sAdmin systeme von monti nur übersetzt aber da es monti gelöscht hat muss ich mal kurz schauen ob ichs vielleicht aus meinem gamemode rausbekomme
Edit: habs nochmal rausgesucht:
hierEdit2: Und dieses adminscript hab ich nun mit allem erweitert was ich brauche freeze, unfreeze, mute, unmute mehr brauche ich nicht ich brauche nicht sowas wie wetter ändern und deswegen halte ich an deisem script so fwest mein problem ist nur das der login halt mit dem geld spinnt und sich der geldbetrag sich immmer ins plus verdreifacht oder sich auch ins minus verdreifacht
Bitte kann mir nicht irgendeiner helfen?
-
unter connect steht nichts vom GivePlayerMoney usw. war auch schon son einfall von mir das es dadran liegen könnte ist aber nichts.
Und so sieht der login aus:
public OnPlayerLogin(playerid,const string[])
{
new pname2[MAX_PLAYER_NAME];
new pname3[MAX_PLAYER_NAME];
new string2[64];
new string3[128];
GetPlayerName(playerid, pname2, sizeof(pname2));
format(string2, sizeof(string2), "%s.cer", pname2);
new File: UserFile = fopen(string2, io_read);if (UserFile)
{
new valtmp[128];
fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
{
new key[128],val[128];
new Data[128];
while(fread(UserFile,Data,sizeof(Data)))
{
key = ini_GetKey(Data);
if( strcmp( key , "Kills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
if( strcmp( key , "Deaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
if( strcmp( key , "Score" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pScore] = strval( val ); }
if( strcmp( key , "Adminlevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
}
fclose(UserFile);
gPlayerLogged[playerid] = 1;
gPlayerAccount[playerid] = 1;
new score = PlayerInfo[playerid][pScore];
SetPlayerScore(playerid, score);
GetPlayerName(playerid, pname3, sizeof(pname3));
format(string3, sizeof(string3), "Willkommen %s, du bist nun eingeloggt!", pname3);
SendClientMessage(playerid, COLOR_WHITE,string3);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Falsches Passwort!!!");
fclose(UserFile);
}
}
return 1;
} -
Ne dann muss das Interior wieder auf null gesetst werden
also
SetPlayerInterior(playerid, 0);
Sonst haste immer das Interior von LYPD drin -
Das:
public OnPlayerDisconnect(playerid, reason)
{
OnPlayerUpdate(playerid);
gPlayerLogged[playerid] = 0;
return 1;
}
und bei login das:
if (strcmp(cmd, "/login", true) ==0 )
{
if(IsPlayerConnected(playerid))
{
new tmppass[64];
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Du bist bereits eingeloggt.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutze: /register [passwort");
return 1;
}
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
return 1;
} -
Wenn das Gebäude kein Interior hat setz es auf 0
if(pickupid == lvpdeingang)
{
if(gLeader[playerid] == LsCop || gTeam[playerid] == LsCop || gLeader[playerid] == LsFbi || gTeam[playerid] == LsFbi || gLeader[playerid] == LsArmy || gTeam[playerid] == LsArmy)
{
SetPlayerPos(playerid,239.6620,142.0520,1004.0234);
SetPlayerInterior(playerid, 0);
}
SendClientMessage(playerid, 0x33AA33AA, "Du bist kein Polizist,Fbi oder Soldat!");
}Hab denn Punkt auch etwas abgeändert vielleicht gehts
-
Vielleicht ist es ein wenig weit herfholt ich hab zb. in einen CW script denn zuschauern mal die /spec funktion gegeben das sah ungefähr so aus:
und das dürfte auch ungefähr so mit jail und unjail funzen wenn du nen bisschen dranrum baust
EDIT:
Sry mir ist erstmal kein anderes beispiel eingefallen als /specEDIT2: habs mal auf jail geändert kp obs funktioniert
Also das oben hin:
#define COLOR_RED 0xFF0000AA
#define COLOR_GREEN 0x007700AA
#define COLOR_ORANGE 0xFF9900AA
#endif
forward Unjail(unjailid);
forward Jail(jailid);
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;
}Dann geht es weiter hier mit:
public Jail(jailid)
{
SetPlayerInterior(jailid,10);
SetPlayerPos(jailid,223.2217,111.1841,999.0156);
SendClientMessageToAll(COLOR_RED,"Jemand wurde gejailt(Gefängnis)");
return 1;
}public Unjail(unjailid)
{
SetPlayerInterior(unjailid,0);
SetPlayerPos(unjailid,2287.1262,2429.4392,10.8203);
SendClientMessageToAll(COLOR_GREEN,"Der wo Gejailt war ist aus dem Knast raus(Gefängnis)");
return 1;
}Und jetzt kommt das mans auch Admin und cops bezieht
public OnPlayerCommandText(playerid, cmdtext[])
{new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);if(strcmp(cmd, "/unjail", true) == 0 && IsPlayerAdmin(playerid)) {
new giveplayerid;
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_ORANGE, "Benutzung: /unjail [Player ID]");
return 1;
}
giveplayerid = strval(tmp);
if (IsPlayerConnected(giveplayerid))
{
Unjail(giveplayerid);
}
return 1;
}if(strcmp(cmd, "/unjail", true) == 0 && gTeam[playerid] == TEAM_Cops) {
new giveplayerid;
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_ORANGE, "Benutzung: /unjail [Player ID]");
return 1;
}
giveplayerid = strval(tmp);
if (IsPlayerConnected(giveplayerid))
{
Unjail(giveplayerid);
}
return 1;
}
if(strcmp(cmd, "/jail", true) == 0 && IsPlayerAdmin(playerid)) {
new giveplayerid;
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_ORANGE, "Benutzung: /jail [Player ID]");
return 1;
}
giveplayerid = strval(tmp);
if (IsPlayerConnected(giveplayerid))
{
Jail(giveplayerid);
}
return 1;
}
if(strcmp(cmd, "/jail", true) == 0 && gTeam[playerid] == TEAM_Cops) {
new giveplayerid;
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_ORANGE, "Benutzung: /jail [Player ID]");
return 1;
}
giveplayerid = strval(tmp);
if (IsPlayerConnected(giveplayerid))
{
Jail(giveplayerid);
}
return 1;
}EDIT3: Irgendwie ist es beim runter schreiben ein wenig verrutscht
-
Vielleicht gehts:
#include <a_samp>new keydown[MAX_PLAYERS] = {false, ...};
new rampid[MAX_PLAYERS] = {-1, ...};
forward Keys();
forward RemoveRamp(playerid);
forward Float:GetOptimumRampDistance(playerid);
forward Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance);new ramptypes[] = {
1503, // curvy normal one
1660, // concrete one with pipes
1245, // plank of wood against a box
1631, // water ramp with rocks
1632, // normal water ramp
1655, // wide water ramp
};new playerramptypes[MAX_PLAYERS] = {0, ...};
public OnFilterScriptInit()
{
SetTimer("Keys", 100, 1);
return 1;
}public Keys()
{
new keys, updown, leftright, playerid;
new Float:x, Float:y, Float:z, Float:angle;
for (playerid = 0; playerid < MAX_PLAYERS; playerid++) {
if (IsPlayerConnected(playerid)) {
GetPlayerKeys(playerid, keys, updown, leftright);
if (keys & KEY_ACTION && IsPlayerInAnyVehicle(playerid)) {
if (!keydown[playerid]) {
keydown[playerid] = true;
if (rampid[playerid] == -1) {
GetPlayerPos(playerid, x, y, z);
angle = GetXYInFrontOfPlayer(playerid, x, y, GetOptimumRampDistance(playerid));
switch (playerramptypes[playerid]) {
case 2:
{
angle -= 90.0;
if (angle < 0.0) angle += 360.0;
z += 0.5;
}
case 1:
{
z -= 0.5;
}
}
rampid[playerid] = CreateObject(ramptypes[playerramptypes[playerid]], x, y, z - 0.5, 0.0, 0.0, angle);
SetTimerEx("RemoveRamp", 2000, 0, "d", playerid);
}
}
} else keydown[playerid] = false;
}
}
}public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/setramp ", cmdtext, true, 9) == 0)
{
new ramp = strval(cmdtext[9]);
if (ramp < 0 || ramp >= sizeof(ramptypes)) {
SendClientMessage(playerid, 0xFFFFFFAA, "Invalid ramp ID.");
} else {
playerramptypes[playerid] = ramp;
}
return 1;
}
return 0;
}public RemoveRamp(playerid)
{
if (rampid[playerid] != -1) {
DestroyObject(rampid[playerid]);
rampid[playerid] = -1;
}
}public OnFilterScriptExit()
{
for (new i=0; i<MAX_PLAYERS; i++)
{
if (rampid[i] != -1) DestroyObject(rampid[i]);
}
}Float:GetOptimumRampDistance(playerid)
{
new ping = GetPlayerPing(playerid), Float:dist;
dist = floatpower(ping, 0.25);
dist = dist*4.0;
dist = dist+5.0;
return dist;
}Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
new Float:a;
GetPlayerPos(playerid, x, y, a);
if (IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
else GetPlayerFacingAngle(playerid, a);
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
return a;
}Stammt hier her
EDIT: habs aber selber noch nicht getestet
-
Hab ein Problem mit sAdmin von monti|spearrow.
Und zwar hat das Admin Systeme ein loginsystem, dieses speichert das Geld.
Mein Problem dabei ist das er das Geld immer nach jedem login sich ungefähr verdreifachthier gibt es das Script
-
irgendwie steht make admin auch in den pwn datein nicht drin. Könntest du das cmd vieleicht noch mal posten?
-
Naja funktioniert nur halb
Wenn man nicht als zuschauer /spec macht kommt Unknow Comment, wenn man als zuschauer /spec macht kommt du bist kein zuschauer aber es gehtEDIT: Habs hinbekommen es geht hier mit:
if(strcmp(cmd, "/spec", true) == 0 && gTeam[playerid] == TEAM_REF){
new tmp[256];
tmp = spec_strtok(cmdtext, idx);if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_GREEN, "Benutze: /spec [id] (nur für Zuschauer)");
return 1;
}
specplayerid = strval(tmp);if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: dieser player ist nicht aktiv.");
return 1;
}TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = SPEC_TYPE_PLAYER;return 1;
}
if(strcmp(cmd, "/spec", true) == 0 && gTeam[playerid] == TEAM_1)
{
SendClientMessage(playerid,0xFF0000FF,"Du bist kein Zuschauer!");
return 1;
}
if(strcmp(cmd, "/spec", true) == 0 && gTeam[playerid] == TEAM_2)
{
SendClientMessage(playerid,0xFF0000FF,"Du bist kein Zuschauer!");
return 1;
} -
Also das mit der Kamera kann man nicht beheben das es Blitz und alles stockt ok muss ich se deaktiverien.
Werde das mit gteam gleich mal testen für die /spec funktion.
Und antwort 1 von IceCube das ist einfach die /spec funktion aus admin /spec nur ihne das es auf admin begrenzt istEDIT:
So mal meine /spec funktion
if(strcmp(cmd, "/spec", true) == 0) {
new tmp[256];
tmp = TEAM_REFspec_strtok(cmdtext, idx);if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_GREEN, "Benutze: /spec [id] (nur für Zuschauer)");
return 1;
}
specplayerid = strval(tmp);if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: dieser player ist nicht aktiv.");
return 1;
}TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = SPEC_TYPE_PLAYER;return 1;
}
So wenn ich dann das mit gteam mache sieht das so aus:if(strcmp(cmd, "/spec", true) == 0) {
new tmp[256];
tmp = TEAM_REFspec_strtok(cmdtext, idx);if(gTeam[playerid] == TEAM_REF)
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_GREEN, "Benutze: /spec [id] (nur für Zuschauer)");
return 1;
}
specplayerid = strval(tmp);if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED, "specplayer: dieser player ist nicht aktiv.");
return 1;
}
else
{
SendClientMessage(playerid,0xFF0000FF,"Du bist kein Zuschauer!");
}TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = SPEC_TYPE_PLAYER;return 1;
}
So jetzt das Problem spec geht trotzdem noch für alle das einzigste was sich geändert hat ist das eine anzeige kommt "Du bist kein Zuschauer" -
Hat keiner eine Ahnung?
-
Ich bin im Moment daran ein CW script zu schreiben. Soweit ist noch alles gut, aber ich würde gerne die /spec funktion nun für die zuschauer haben, wie soll ich das angehen?
EDIT: Das mit /spec hab ich hin bekommen, aber bei mir können jetzt alle /spec machen wie bekomme ich das hin das nur die Zuschauer (TEAM_REF) /spec benutzen kann.
Und noch ne frage wenn man mit ner kamera fotografiert bleibt alles für ne kurze zeit bei allem auf dem server stehen wie deaktiviere ich dieses?
Und noch eine ich hab bei mir ein höhen limet drin, da die zuschauer auf einer plattform stehen, die die zuschauer zurücksetzt falls sie mal runter fallen. Aber diese begrenzung fast auch wenn der zuschauer /spec macht. Wie kann man diesen begrenzer nur auflösen wenn der zuschauer /spec macht, also wenn ers nicht /spec macht wirkt der begrenzer?
-
-