Hallo leute.
Wie viele wissen, bin ich ja neu im scripten.
Ich habe mich momentan an ein paar Haupt systeme gesetzt zb /pay und /gotols [id].
Ich würde gerne wissen wie ihr das für anfänger findet, und was man daran verbessern könnte.
fagen wir mal mit /pay an
--------------------------------[/pay]-------------------------------
if(strcmp(cmd, "/pay", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
return 1;
}
//giveplayerid = strval(tmp);
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
return 1;
}
moneys = strval(tmp);
if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 1)
{
SendClientMessage(playerid, 0xFF00C3FF, "Du musst mindestens Level 3 sein, um über $1000 abgeben zu können.");
return 1;
}
if(moneys < 1 || moneys > 99999)
{
SendClientMessage(playerid, 0xFF00C3FF, "Der Betrag muss zwischen $1 und $99999 sein!");
return 1;
}
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pLocal] == 106)
{
SendClientMessage(playerid, COLOR_GRAD1, "Der Befehl ist nicht erlaubt.");
return 1;
}
if (ProxDetectorS(5.0, playerid, giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys)
{
ConsumingMoney[giveplayerid] = 1;
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), " Du hast %s(Spieler ID: %d), $%d auf die Hand gegeben.", giveplayer,giveplayerid, moneys);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
SendClientMessage(playerid, COLOR_GRAD1, string);
format(string, sizeof(string), " Du hast $%d von %s(Spieler ID: %d) auf die Hand gegeben.", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_GRAD1, string);
format(string, sizeof(string), "%s hat $%d dem Spieler %s auf die Hand gegeben.", sendername, moneys, giveplayer);
PayLog(string);
if(moneys >= 1000000)
{
ABroadCast(COLOR_YELLOW,string,1);
}
PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
format(string, sizeof(string), "* %s nimmt etwas Geld aus seiner Tasche und gibt es %s.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, 0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF);
}
else
{
SendClientMessage(playerid, 0xFF00C3FF, "Ungültiger Betrag.");
}
}
else
{
SendClientMessage(playerid, 0xFF00C3FF, "Du musst näher an dem Spieler sein!");
}
}
}
else
{
format(string, sizeof(string), "%d ist kein aktiver Spieler.", giveplayerid);
SendClientMessage(playerid, 0xFF00C3FF, string);
}
}
return 1;
}
--------------------------------[/gotols]-------------------------------
if(strcmp(cmd, "/gotols", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pSupporter] >= 1)
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 1514.1854,-1707.9962,14.0469);
LinkVehicleToInterior(tmpcar,0);
SetPlayerVirtualWorld(playerid,0);
TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
}
else
{
SetPlayerPos(playerid, 1514.1854,-1707.9962,14.0469);
SetPlayerVirtualWorld(playerid,0);
}
SendClientMessage(playerid, 0xFF00C3FF, "Du hast dich nach Los Santos geportet.");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s hat sich nach Los Santos geportet.", sendername);
ABroadCast(0xFF00C3FF,string,4);
SetPlayerInterior(playerid,0);
PlayerInfo[playerid][pInt] = 0;
SetPlayerVirtualWorld(playerid,0);
}
else
{
SendClientMessage(playerid, 0xFF00C3FF, "Du bist nicht befugt !");
}
}
return 1;
}
Ich habe diese Befehle nach ein paar tutorial ALLEINE nachgemacht.
Was kann man da besser machen?
MFG