Jump to content

script Vytváření závodních CP přes příkaz - vylepšené


Hip

Recommended Posts

  • Globální moderátor

Ahoj,
udělal jsem nedávno script který vám vytváří CP přes příkaz a AvesX mi napsal aby to rovnou vytvářelo celé závody... to jsem nepotřeboval do dneška script vytváří:

 

case 1:
{
    SetPlayerRaceCheckpoint(...);
}
case 2:
{
    SetPlayerRaceCheckpoint(...);
}
//atd....



a opraveno pár chyb, kdyby někdo našel nějaký bug tak mi ho prosím nahlašte než to někoho nasere že sem to udělal špatně... Dík

Zde je script:

#include 
#include 
#include 
#include 

new car;
new Float:Oldx;
new Float:Oldy;
new Float:Oldz;
new CP;

stock fcreate(filename[])
{
new File:file;
if (fexist(filename)) return false;
file=fopen(filename,io_write);
fclose(file);
return true;
}

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

public OnPlayerConnect(playerid)
{
CP = 0;
if(!fexist("cp.txt")) fcreate("cp.txt");
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
return 1;
}

public OnPlayerSpawn(playerid)
{
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}

public OnVehicleSpawn(vehicleid)
{
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}

public OnPlayerText(playerid, text[])
{
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/car", cmdtext, true, 10) == 0)
{
new Float:x;
new Float:y;
new Float:z;
new Float:Angle;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,Angle);
car = CreateVehicle(603,x,y,z+1,Angle,-1,-1,500000);
PutPlayerInVehicle(playerid,car,0);
return 1;
}
if (strcmp("/cp", cmdtext, true, 10) == 0)
{
if(CP == 0) return SendClientMessage(playerid,0xFFFF00FF,"Nejdřív musíte závod založit: /startcp");
new Float:x;
new Float:y;
new Float:z;
GetPlayerPos(playerid,x,y,z);
new str[256];
new File:file;
file=fopen("cp.txt",io_append);
format(str,sizeof(str),"case %d:\n{\n\tDisablePlayerRaceCheckpoint(playerid);\n\tSetPlayerRaceCheckpoint(playerid, 0,%f,%f,%f,%f,%f,%f,4);\n\tcp[playerid]++;\n",CP,Oldx,Oldy,Oldz,x,y,z);
fwrite(file,str);
fclose(file);
Oldx = x;
Oldy = y;
Oldz = z;
new string[128];
format(string,sizeof(string),"%d. checkpoint vytvořen.",CP);
SendClientMessage(playerid,0xFFFFFFFF,string);
CP++;
return 1;
}
if (strcmp("/startcp", cmdtext, true, 10) == 0)
{
if(CP > 0) return SendClientMessage(playerid,0xFFFF00FF,"Nejdřív musíte dokončit již vytvořený závod: /finishcp");
CP = 1;
GetPlayerPos(playerid,Oldx,Oldy,Oldz);
new string[128];
format(string,sizeof(string),"Pozice pro Checkpoint 1 byla vytvořena.");
SendClientMessage(playerid,0xFFFFFFFF,string);
return 1;
}
if (strcmp("/finishcp", cmdtext, true, 10) == 0)
{
if(CP == 0 || CP == 1) return SendClientMessage(playerid,0xFFFF00FF,"Musíte mít v závodě alespoň jeden checkpoint: /cp");
new Float:x;
new Float:y;
new Float:z;
GetPlayerPos(playerid,x,y,z);
new str[256];
new str1[256];
new File:file;
file=fopen("cp.txt",io_append);
format(str,sizeof(str),"SetPlayerRaceCheckpoint(playerid, 0,%f,%f,%f,%f,%f,%f,4);\r\n\n\n",Oldx,Oldy,Oldz,x,y,z);
fwrite(file,str);
format(str1,sizeof(str1),"SetPlayerRaceCheckpoint(playerid, 1,%f,%f,%f,%f,%f,%f,4);\r\n\n\n",x,y,z,x,y,z);
fwrite(file,str1);
fclose(file);
new string1[128];
format(string1,sizeof(string1),"%d. - poslední checkpoint vytvořen. Celkový počet checkpointů: %d",CP,CP++);
SendClientMessage(playerid,0xFFFFFFFF,string1);
CP = 0;
return 1;
}
if (strcmp("/cpinfo", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid,0xFF0000FF,"Nový závod - /startcp");
SendClientMessage(playerid,0xFF0000FF,"Nový checkpoint - /cp");
SendClientMessage(playerid,0xFF0000FF,"Konec závodu - /finishcp");
return 1;
}
return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}

public OnRconCommand(cmd[])
{
return 1;
}

public OnPlayerRequestSpawn(playerid)
{
return 1;
}

public OnObjectMoved(objectid)
{
return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}

public OnPlayerExitedMenu(playerid)
{
return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}

public OnPlayerUpdate(playerid)
{
return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}




Download AMX pro 0.3e zde:
http://uloz.to/xo73Dnz/cp-amx

Heslo: createcp

tak hodnotě :)

Link to comment
Share on other sites

  • Globální moderátor
naco tam mas tolko zbytocnych publicov

 

zkopíroval jsem pawn ;):d nějak se mi to nechtělo ořezávat ... nevim jestli Martin měl namysli totéž

Link to comment
Share on other sites

naco tam mas tolko zbytocnych publicov

 

zkopíroval jsem pawn ;):d nějak se mi to nechtělo ořezávat ... nevim jestli Martin měl namysli totéž

 

nie celkom, máš tam napr. v publicu opakujúce sa new Float:x,Float:y,Float:z GetPlayerPos....

 

tebe to stačí iba jeden krát,

 

máš tam viac vecí čo sa ti tam opakujú, ale nejdem riešiť :d

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...